{-# 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 "") !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 "") !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")))