shentong 0.3.1 → 0.3.2
raw patch · 31 files changed
+22132/−17960 lines, 31 files
Files
- Shentong/Backend/Core.hs +5019/−4004
- Shentong/Backend/Declarations.hs +1021/−866
- Shentong/Backend/FunctionTable.hs +708/−674
- Shentong/Backend/Load.hs +276/−235
- Shentong/Backend/LoadShen.hs +3/−3
- Shentong/Backend/Macros.hs +1628/−941
- Shentong/Backend/PortInfo.hs +6/−6
- Shentong/Backend/Prolog.hs too large to diff
- Shentong/Backend/Reader.hs +2962/−2799
- Shentong/Backend/Sequent.hs +2205/−1872
- Shentong/Backend/Sys.hs +2021/−1572
- Shentong/Backend/TStar.hs too large to diff
- Shentong/Backend/Toplevel.hs +1128/−1052
- Shentong/Backend/Track.hs +598/−443
- Shentong/Backend/Types.hs +1635/−1088
- Shentong/Backend/Utils.hs +3/−3
- Shentong/Backend/Writer.hs +950/−814
- Shentong/Backend/Yacc.hs +1225/−849
- Shentong/Bootstrap.hs +3/−3
- Shentong/Core/Primitives.hs +444/−0
- Shentong/Core/Types.hs +176/−0
- Shentong/Core/Utils.hs +100/−0
- Shentong/Environment.hs +4/−4
- Shentong/Interpreter/AST.hs +2/−2
- Shentong/Interpreter/Interpreter.hs +2/−2
- Shentong/Primitives.hs +0/−444
- Shentong/Shen.hs +1/−1
- Shentong/Types.hs +0/−176
- Shentong/Utils.hs +0/−100
- Shentong/Wrap.hs +1/−1
- shentong.cabal +11/−6
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