{-# LANGUAGE BangPatterns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE Strict #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE ViewPatterns #-} module Backend.Prolog where import Control.Monad.Except import Control.Parallel import Environment import Core.Primitives as Primitives import Backend.Utils import Core.Types import Core.Utils import Wrap import Backend.Toplevel import Backend.Core import Backend.Sys import Backend.Sequent import Backend.Yacc import Backend.Reader {- 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_LBdefprologRB :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_LBdefprologRB (!kl_V1618) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpredicateMultRB) -> do !appl_1 <- kl_fail !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBpredicateMultRB `pseq` eq appl_1 kl_Parse_shen_LBpredicateMultRB) !kl_if_3 <- appl_2 `pseq` kl_not appl_2 case kl_if_3 of Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBclausesMultRB) -> do !appl_5 <- kl_fail !appl_6 <- appl_5 `pseq` (kl_Parse_shen_LBclausesMultRB `pseq` eq appl_5 kl_Parse_shen_LBclausesMultRB) !kl_if_7 <- appl_6 `pseq` kl_not appl_6 case kl_if_7 of Atom (B (True)) -> do !appl_8 <- kl_Parse_shen_LBclausesMultRB `pseq` hd kl_Parse_shen_LBclausesMultRB let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_10 <- kl_Parse_shen_LBpredicateMultRB `pseq` kl_shen_hdtl kl_Parse_shen_LBpredicateMultRB appl_10 `pseq` (kl_Parse_X `pseq` kl_shen_insert_predicate appl_10 kl_Parse_X)))) !appl_11 <- kl_Parse_shen_LBclausesMultRB `pseq` kl_shen_hdtl kl_Parse_shen_LBclausesMultRB !appl_12 <- appl_9 `pseq` (appl_11 `pseq` kl_map appl_9 appl_11) !appl_13 <- appl_12 `pseq` kl_shen_prolog_RBshen appl_12 !appl_14 <- appl_13 `pseq` hd appl_13 appl_8 `pseq` (appl_14 `pseq` kl_shen_pair appl_8 appl_14) Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_15 <- kl_Parse_shen_LBpredicateMultRB `pseq` kl_shen_LBclausesMultRB kl_Parse_shen_LBpredicateMultRB appl_15 `pseq` applyWrapper appl_4 [appl_15] Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_16 <- kl_V1618 `pseq` kl_shen_LBpredicateMultRB kl_V1618 appl_16 `pseq` applyWrapper appl_0 [appl_16] kl_shen_prolog_error :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_prolog_error (!kl_V1627) (!kl_V1628) = do !kl_if_0 <- let pat_cond_1 kl_V1628 kl_V1628h kl_V1628t = do !kl_if_2 <- let pat_cond_3 kl_V1628t kl_V1628th kl_V1628tt = do let !appl_4 = Atom Nil !kl_if_5 <- appl_4 `pseq` (kl_V1628tt `pseq` eq appl_4 kl_V1628tt) 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_V1628t of !(kl_V1628t@(Cons (!kl_V1628th) (!kl_V1628tt))) -> pat_cond_3 kl_V1628t kl_V1628th kl_V1628tt _ -> 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_V1628 of !(kl_V1628@(Cons (!kl_V1628h) (!kl_V1628t))) -> pat_cond_1 kl_V1628 kl_V1628h kl_V1628t _ -> pat_cond_7 case kl_if_0 of Atom (B (True)) -> do !appl_8 <- kl_V1628 `pseq` hd kl_V1628 !appl_9 <- appl_8 `pseq` kl_shen_next_50 (Core.Types.Atom (Core.Types.N (Core.Types.KI 50))) appl_8 let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.app") !appl_11 <- appl_9 `pseq` applyWrapper aw_10 [appl_9, 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 " here:\n\n ")) appl_11 let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "shen.app") !appl_14 <- kl_V1627 `pseq` (appl_12 `pseq` applyWrapper aw_13 [kl_V1627, appl_12, Core.Types.Atom (Core.Types.UnboundSym "shen.a")]) !appl_15 <- appl_14 `pseq` cn (Core.Types.Atom (Core.Types.Str "prolog syntax error in ")) appl_14 appl_15 `pseq` simpleError appl_15 Atom (B (False)) -> do do let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "shen.app") !appl_17 <- kl_V1627 `pseq` applyWrapper aw_16 [kl_V1627, Core.Types.Atom (Core.Types.Str "\n"), Core.Types.Atom (Core.Types.UnboundSym "shen.a")] !appl_18 <- appl_17 `pseq` cn (Core.Types.Atom (Core.Types.Str "prolog syntax error in ")) appl_17 appl_18 `pseq` simpleError appl_18 _ -> throwError "if: expected boolean" kl_shen_next_50 :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_next_50 (!kl_V1635) (!kl_V1636) = do let !appl_0 = Atom Nil !kl_if_1 <- appl_0 `pseq` (kl_V1636 `pseq` eq appl_0 kl_V1636) case kl_if_1 of Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.Str "")) Atom (B (False)) -> do let pat_cond_2 = do return (Core.Types.Atom (Core.Types.Str "")) pat_cond_3 = do let pat_cond_4 kl_V1636 kl_V1636h kl_V1636t = do !appl_5 <- kl_V1636h `pseq` kl_shen_decons_string kl_V1636h !appl_6 <- kl_V1635 `pseq` Primitives.subtract kl_V1635 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) !appl_7 <- appl_6 `pseq` (kl_V1636t `pseq` kl_shen_next_50 appl_6 kl_V1636t) appl_5 `pseq` (appl_7 `pseq` cn appl_5 appl_7) pat_cond_8 = do do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_9 [ApplC (wrapNamed "shen.next-50" kl_shen_next_50)] in case kl_V1636 of !(kl_V1636@(Cons (!kl_V1636h) (!kl_V1636t))) -> pat_cond_4 kl_V1636 kl_V1636h kl_V1636t _ -> pat_cond_8 in case kl_V1635 of kl_V1635@(Atom (N (KI 0))) -> pat_cond_2 _ -> pat_cond_3 _ -> throwError "if: expected boolean" kl_shen_decons_string :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_decons_string (!kl_V1638) = do !kl_if_0 <- let pat_cond_1 kl_V1638 kl_V1638h kl_V1638t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1638t kl_V1638th kl_V1638tt = do !kl_if_6 <- let pat_cond_7 kl_V1638tt kl_V1638tth kl_V1638ttt = do let !appl_8 = Atom Nil !kl_if_9 <- appl_8 `pseq` (kl_V1638ttt `pseq` eq appl_8 kl_V1638ttt) 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_V1638tt of !(kl_V1638tt@(Cons (!kl_V1638tth) (!kl_V1638ttt))) -> pat_cond_7 kl_V1638tt kl_V1638tth kl_V1638ttt _ -> 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_V1638t of !(kl_V1638t@(Cons (!kl_V1638th) (!kl_V1638tt))) -> pat_cond_5 kl_V1638t kl_V1638th kl_V1638tt _ -> 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_V1638h of kl_V1638h@(Atom (UnboundSym "cons")) -> pat_cond_3 kl_V1638h@(ApplC (PL "cons" _)) -> pat_cond_3 kl_V1638h@(ApplC (Func "cons" _)) -> pat_cond_3 _ -> pat_cond_12 case kl_if_2 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_13 = do do return (Atom (B False)) in case kl_V1638 of !(kl_V1638@(Cons (!kl_V1638h) (!kl_V1638t))) -> pat_cond_1 kl_V1638 kl_V1638h kl_V1638t _ -> pat_cond_13 case kl_if_0 of Atom (B (True)) -> do !appl_14 <- kl_V1638 `pseq` kl_shen_eval_cons kl_V1638 let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "shen.app") appl_14 `pseq` applyWrapper aw_15 [appl_14, Core.Types.Atom (Core.Types.Str " "), Core.Types.Atom (Core.Types.UnboundSym "shen.s")] Atom (B (False)) -> do do let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "shen.app") kl_V1638 `pseq` applyWrapper aw_16 [kl_V1638, Core.Types.Atom (Core.Types.Str " "), Core.Types.Atom (Core.Types.UnboundSym "shen.r")] _ -> throwError "if: expected boolean" kl_shen_insert_predicate :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_insert_predicate (!kl_V1641) (!kl_V1642) = do !kl_if_0 <- let pat_cond_1 kl_V1642 kl_V1642h kl_V1642t = do !kl_if_2 <- let pat_cond_3 kl_V1642t kl_V1642th kl_V1642tt = do let !appl_4 = Atom Nil !kl_if_5 <- appl_4 `pseq` (kl_V1642tt `pseq` eq appl_4 kl_V1642tt) 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_V1642t of !(kl_V1642t@(Cons (!kl_V1642th) (!kl_V1642tt))) -> pat_cond_3 kl_V1642t kl_V1642th kl_V1642tt _ -> 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_V1642 of !(kl_V1642@(Cons (!kl_V1642h) (!kl_V1642t))) -> pat_cond_1 kl_V1642 kl_V1642h kl_V1642t _ -> pat_cond_7 case kl_if_0 of Atom (B (True)) -> do !appl_8 <- kl_V1642 `pseq` hd kl_V1642 !appl_9 <- kl_V1641 `pseq` (appl_8 `pseq` klCons kl_V1641 appl_8) !appl_10 <- kl_V1642 `pseq` tl kl_V1642 !appl_11 <- appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":-")) appl_10 appl_9 `pseq` (appl_11 `pseq` klCons appl_9 appl_11) Atom (B (False)) -> do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_12 [ApplC (wrapNamed "shen.insert-predicate" kl_shen_insert_predicate)] _ -> throwError "if: expected boolean" kl_shen_LBpredicateMultRB :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_LBpredicateMultRB (!kl_V1644) = do !appl_0 <- kl_V1644 `pseq` hd kl_V1644 !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_V1644 `pseq` hd kl_V1644 !appl_4 <- appl_3 `pseq` tl appl_3 !appl_5 <- kl_V1644 `pseq` kl_shen_hdtl kl_V1644 !appl_6 <- appl_4 `pseq` (appl_5 `pseq` kl_shen_pair appl_4 appl_5) !appl_7 <- appl_6 `pseq` hd appl_6 appl_7 `pseq` (kl_Parse_X `pseq` kl_shen_pair appl_7 kl_Parse_X)))) !appl_8 <- kl_V1644 `pseq` hd kl_V1644 !appl_9 <- appl_8 `pseq` hd appl_8 appl_9 `pseq` applyWrapper appl_2 [appl_9] Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean" kl_shen_LBclausesMultRB :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_LBclausesMultRB (!kl_V1646) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1) case kl_if_2 of Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_4 <- kl_fail !appl_5 <- appl_4 `pseq` (kl_Parse_LBeRB `pseq` eq appl_4 kl_Parse_LBeRB) !kl_if_6 <- appl_5 `pseq` kl_not appl_5 case kl_if_6 of Atom (B (True)) -> do !appl_7 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB let !appl_8 = Atom Nil appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8) Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_9 <- kl_V1646 `pseq` kl_LBeRB kl_V1646 appl_9 `pseq` applyWrapper appl_3 [appl_9] Atom (B (False)) -> do do return kl_YaccParse _ -> throwError "if: expected boolean"))) let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBclauseMultRB) -> do !appl_11 <- kl_fail !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBclauseMultRB `pseq` eq appl_11 kl_Parse_shen_LBclauseMultRB) !kl_if_13 <- appl_12 `pseq` kl_not appl_12 case kl_if_13 of Atom (B (True)) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBclausesMultRB) -> do !appl_15 <- kl_fail !appl_16 <- appl_15 `pseq` (kl_Parse_shen_LBclausesMultRB `pseq` eq appl_15 kl_Parse_shen_LBclausesMultRB) !kl_if_17 <- appl_16 `pseq` kl_not appl_16 case kl_if_17 of Atom (B (True)) -> do !appl_18 <- kl_Parse_shen_LBclausesMultRB `pseq` hd kl_Parse_shen_LBclausesMultRB !appl_19 <- kl_Parse_shen_LBclauseMultRB `pseq` kl_shen_hdtl kl_Parse_shen_LBclauseMultRB !appl_20 <- kl_Parse_shen_LBclausesMultRB `pseq` kl_shen_hdtl kl_Parse_shen_LBclausesMultRB !appl_21 <- appl_19 `pseq` (appl_20 `pseq` klCons appl_19 appl_20) appl_18 `pseq` (appl_21 `pseq` kl_shen_pair appl_18 appl_21) Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_22 <- kl_Parse_shen_LBclauseMultRB `pseq` kl_shen_LBclausesMultRB kl_Parse_shen_LBclauseMultRB appl_22 `pseq` applyWrapper appl_14 [appl_22] Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_23 <- kl_V1646 `pseq` kl_shen_LBclauseMultRB kl_V1646 !appl_24 <- appl_23 `pseq` applyWrapper appl_10 [appl_23] appl_24 `pseq` applyWrapper appl_0 [appl_24] kl_shen_LBclauseMultRB :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_LBclauseMultRB (!kl_V1648) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBheadMultRB) -> do !appl_1 <- kl_fail !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBheadMultRB `pseq` eq appl_1 kl_Parse_shen_LBheadMultRB) !kl_if_3 <- appl_2 `pseq` kl_not appl_2 case kl_if_3 of Atom (B (True)) -> do !appl_4 <- kl_Parse_shen_LBheadMultRB `pseq` hd kl_Parse_shen_LBheadMultRB !kl_if_5 <- appl_4 `pseq` consP appl_4 !kl_if_6 <- case kl_if_5 of Atom (B (True)) -> do !appl_7 <- kl_Parse_shen_LBheadMultRB `pseq` hd kl_Parse_shen_LBheadMultRB !appl_8 <- appl_7 `pseq` hd appl_7 !kl_if_9 <- appl_8 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "<--")) appl_8 case kl_if_9 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_6 of Atom (B (True)) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbodyMultRB) -> do !appl_11 <- kl_fail !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBbodyMultRB `pseq` eq appl_11 kl_Parse_shen_LBbodyMultRB) !kl_if_13 <- appl_12 `pseq` kl_not appl_12 case kl_if_13 of Atom (B (True)) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBendMultRB) -> do !appl_15 <- kl_fail !appl_16 <- appl_15 `pseq` (kl_Parse_shen_LBendMultRB `pseq` eq appl_15 kl_Parse_shen_LBendMultRB) !kl_if_17 <- appl_16 `pseq` kl_not appl_16 case kl_if_17 of Atom (B (True)) -> do !appl_18 <- kl_Parse_shen_LBendMultRB `pseq` hd kl_Parse_shen_LBendMultRB !appl_19 <- kl_Parse_shen_LBheadMultRB `pseq` kl_shen_hdtl kl_Parse_shen_LBheadMultRB !appl_20 <- kl_Parse_shen_LBbodyMultRB `pseq` kl_shen_hdtl kl_Parse_shen_LBbodyMultRB let !appl_21 = Atom Nil !appl_22 <- appl_20 `pseq` (appl_21 `pseq` klCons appl_20 appl_21) !appl_23 <- appl_19 `pseq` (appl_22 `pseq` klCons appl_19 appl_22) appl_18 `pseq` (appl_23 `pseq` kl_shen_pair appl_18 appl_23) Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_24 <- kl_Parse_shen_LBbodyMultRB `pseq` kl_shen_LBendMultRB kl_Parse_shen_LBbodyMultRB appl_24 `pseq` applyWrapper appl_14 [appl_24] Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_25 <- kl_Parse_shen_LBheadMultRB `pseq` hd kl_Parse_shen_LBheadMultRB !appl_26 <- appl_25 `pseq` tl appl_25 !appl_27 <- kl_Parse_shen_LBheadMultRB `pseq` kl_shen_hdtl kl_Parse_shen_LBheadMultRB !appl_28 <- appl_26 `pseq` (appl_27 `pseq` kl_shen_pair appl_26 appl_27) !appl_29 <- appl_28 `pseq` kl_shen_LBbodyMultRB appl_28 appl_29 `pseq` applyWrapper appl_10 [appl_29] Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean" Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_30 <- kl_V1648 `pseq` kl_shen_LBheadMultRB kl_V1648 appl_30 `pseq` applyWrapper appl_0 [appl_30] kl_shen_LBheadMultRB :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_LBheadMultRB (!kl_V1650) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1) case kl_if_2 of Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_4 <- kl_fail !appl_5 <- appl_4 `pseq` (kl_Parse_LBeRB `pseq` eq appl_4 kl_Parse_LBeRB) !kl_if_6 <- appl_5 `pseq` kl_not appl_5 case kl_if_6 of Atom (B (True)) -> do !appl_7 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB let !appl_8 = Atom Nil appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8) Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_9 <- kl_V1650 `pseq` kl_LBeRB kl_V1650 appl_9 `pseq` applyWrapper appl_3 [appl_9] Atom (B (False)) -> do do return kl_YaccParse _ -> throwError "if: expected boolean"))) let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBtermMultRB) -> do !appl_11 <- kl_fail !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBtermMultRB `pseq` eq appl_11 kl_Parse_shen_LBtermMultRB) !kl_if_13 <- appl_12 `pseq` kl_not appl_12 case kl_if_13 of Atom (B (True)) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBheadMultRB) -> do !appl_15 <- kl_fail !appl_16 <- appl_15 `pseq` (kl_Parse_shen_LBheadMultRB `pseq` eq appl_15 kl_Parse_shen_LBheadMultRB) !kl_if_17 <- appl_16 `pseq` kl_not appl_16 case kl_if_17 of Atom (B (True)) -> do !appl_18 <- kl_Parse_shen_LBheadMultRB `pseq` hd kl_Parse_shen_LBheadMultRB !appl_19 <- kl_Parse_shen_LBtermMultRB `pseq` kl_shen_hdtl kl_Parse_shen_LBtermMultRB !appl_20 <- kl_Parse_shen_LBheadMultRB `pseq` kl_shen_hdtl kl_Parse_shen_LBheadMultRB !appl_21 <- appl_19 `pseq` (appl_20 `pseq` klCons appl_19 appl_20) appl_18 `pseq` (appl_21 `pseq` kl_shen_pair appl_18 appl_21) Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_22 <- kl_Parse_shen_LBtermMultRB `pseq` kl_shen_LBheadMultRB kl_Parse_shen_LBtermMultRB appl_22 `pseq` applyWrapper appl_14 [appl_22] Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_23 <- kl_V1650 `pseq` kl_shen_LBtermMultRB kl_V1650 !appl_24 <- appl_23 `pseq` applyWrapper appl_10 [appl_23] appl_24 `pseq` applyWrapper appl_0 [appl_24] kl_shen_LBtermMultRB :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_LBtermMultRB (!kl_V1652) = do !appl_0 <- kl_V1652 `pseq` hd kl_V1652 !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_Parse_X `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "<--")) kl_Parse_X !kl_if_4 <- appl_3 `pseq` kl_not appl_3 !kl_if_5 <- case kl_if_4 of Atom (B (True)) -> do !kl_if_6 <- kl_Parse_X `pseq` kl_shen_legitimate_termP kl_Parse_X case kl_if_6 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_5 of Atom (B (True)) -> do !appl_7 <- kl_V1652 `pseq` hd kl_V1652 !appl_8 <- appl_7 `pseq` tl appl_7 !appl_9 <- kl_V1652 `pseq` kl_shen_hdtl kl_V1652 !appl_10 <- appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9) !appl_11 <- appl_10 `pseq` hd appl_10 !appl_12 <- kl_Parse_X `pseq` kl_shen_eval_cons kl_Parse_X appl_11 `pseq` (appl_12 `pseq` kl_shen_pair appl_11 appl_12) Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_13 <- kl_V1652 `pseq` hd kl_V1652 !appl_14 <- appl_13 `pseq` hd appl_13 appl_14 `pseq` applyWrapper appl_2 [appl_14] Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean" kl_shen_legitimate_termP :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_legitimate_termP (!kl_V1658) = do !kl_if_0 <- let pat_cond_1 kl_V1658 kl_V1658h kl_V1658t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1658t kl_V1658th kl_V1658tt = do !kl_if_6 <- let pat_cond_7 kl_V1658tt kl_V1658tth kl_V1658ttt = do let !appl_8 = Atom Nil !kl_if_9 <- appl_8 `pseq` (kl_V1658ttt `pseq` eq appl_8 kl_V1658ttt) 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_V1658tt of !(kl_V1658tt@(Cons (!kl_V1658tth) (!kl_V1658ttt))) -> pat_cond_7 kl_V1658tt kl_V1658tth kl_V1658ttt _ -> 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_V1658t of !(kl_V1658t@(Cons (!kl_V1658th) (!kl_V1658tt))) -> pat_cond_5 kl_V1658t kl_V1658th kl_V1658tt _ -> 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_V1658h of kl_V1658h@(Atom (UnboundSym "cons")) -> pat_cond_3 kl_V1658h@(ApplC (PL "cons" _)) -> pat_cond_3 kl_V1658h@(ApplC (Func "cons" _)) -> pat_cond_3 _ -> pat_cond_12 case kl_if_2 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_13 = do do return (Atom (B False)) in case kl_V1658 of !(kl_V1658@(Cons (!kl_V1658h) (!kl_V1658t))) -> pat_cond_1 kl_V1658 kl_V1658h kl_V1658t _ -> pat_cond_13 case kl_if_0 of Atom (B (True)) -> do !appl_14 <- kl_V1658 `pseq` tl kl_V1658 !appl_15 <- appl_14 `pseq` hd appl_14 !kl_if_16 <- appl_15 `pseq` kl_shen_legitimate_termP appl_15 case kl_if_16 of Atom (B (True)) -> do !appl_17 <- kl_V1658 `pseq` tl kl_V1658 !appl_18 <- appl_17 `pseq` tl appl_17 !appl_19 <- appl_18 `pseq` hd appl_18 !kl_if_20 <- appl_19 `pseq` kl_shen_legitimate_termP appl_19 case kl_if_20 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do !kl_if_21 <- let pat_cond_22 kl_V1658 kl_V1658h kl_V1658t = do !kl_if_23 <- let pat_cond_24 = do !kl_if_25 <- let pat_cond_26 kl_V1658t kl_V1658th kl_V1658tt = do !kl_if_27 <- let pat_cond_28 kl_V1658tt kl_V1658tth kl_V1658ttt = do !kl_if_29 <- let pat_cond_30 = do let !appl_31 = Atom Nil !kl_if_32 <- appl_31 `pseq` (kl_V1658ttt `pseq` eq appl_31 kl_V1658ttt) case kl_if_32 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_33 = do do return (Atom (B False)) in case kl_V1658tth of kl_V1658tth@(Atom (UnboundSym "+")) -> pat_cond_30 kl_V1658tth@(ApplC (PL "+" _)) -> pat_cond_30 kl_V1658tth@(ApplC (Func "+" _)) -> pat_cond_30 _ -> pat_cond_33 case kl_if_29 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_34 = do do return (Atom (B False)) in case kl_V1658tt of !(kl_V1658tt@(Cons (!kl_V1658tth) (!kl_V1658ttt))) -> pat_cond_28 kl_V1658tt kl_V1658tth kl_V1658ttt _ -> pat_cond_34 case kl_if_27 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_35 = do do return (Atom (B False)) in case kl_V1658t of !(kl_V1658t@(Cons (!kl_V1658th) (!kl_V1658tt))) -> pat_cond_26 kl_V1658t kl_V1658th kl_V1658tt _ -> pat_cond_35 case kl_if_25 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_36 = do do return (Atom (B False)) in case kl_V1658h of kl_V1658h@(Atom (UnboundSym "mode")) -> pat_cond_24 kl_V1658h@(ApplC (PL "mode" _)) -> pat_cond_24 kl_V1658h@(ApplC (Func "mode" _)) -> pat_cond_24 _ -> pat_cond_36 case kl_if_23 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_37 = do do return (Atom (B False)) in case kl_V1658 of !(kl_V1658@(Cons (!kl_V1658h) (!kl_V1658t))) -> pat_cond_22 kl_V1658 kl_V1658h kl_V1658t _ -> pat_cond_37 case kl_if_21 of Atom (B (True)) -> do !appl_38 <- kl_V1658 `pseq` tl kl_V1658 !appl_39 <- appl_38 `pseq` hd appl_38 appl_39 `pseq` kl_shen_legitimate_termP appl_39 Atom (B (False)) -> do !kl_if_40 <- let pat_cond_41 kl_V1658 kl_V1658h kl_V1658t = do !kl_if_42 <- let pat_cond_43 = do !kl_if_44 <- let pat_cond_45 kl_V1658t kl_V1658th kl_V1658tt = do !kl_if_46 <- let pat_cond_47 kl_V1658tt kl_V1658tth kl_V1658ttt = do !kl_if_48 <- let pat_cond_49 = do let !appl_50 = Atom Nil !kl_if_51 <- appl_50 `pseq` (kl_V1658ttt `pseq` eq appl_50 kl_V1658ttt) case kl_if_51 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_V1658tth of kl_V1658tth@(Atom (UnboundSym "-")) -> pat_cond_49 kl_V1658tth@(ApplC (PL "-" _)) -> pat_cond_49 kl_V1658tth@(ApplC (Func "-" _)) -> pat_cond_49 _ -> pat_cond_52 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_53 = do do return (Atom (B False)) in case kl_V1658tt of !(kl_V1658tt@(Cons (!kl_V1658tth) (!kl_V1658ttt))) -> pat_cond_47 kl_V1658tt kl_V1658tth kl_V1658ttt _ -> pat_cond_53 case kl_if_46 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_54 = do do return (Atom (B False)) in case kl_V1658t of !(kl_V1658t@(Cons (!kl_V1658th) (!kl_V1658tt))) -> pat_cond_45 kl_V1658t kl_V1658th kl_V1658tt _ -> pat_cond_54 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_55 = do do return (Atom (B False)) in case kl_V1658h of kl_V1658h@(Atom (UnboundSym "mode")) -> pat_cond_43 kl_V1658h@(ApplC (PL "mode" _)) -> pat_cond_43 kl_V1658h@(ApplC (Func "mode" _)) -> pat_cond_43 _ -> pat_cond_55 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_56 = do do return (Atom (B False)) in case kl_V1658 of !(kl_V1658@(Cons (!kl_V1658h) (!kl_V1658t))) -> pat_cond_41 kl_V1658 kl_V1658h kl_V1658t _ -> pat_cond_56 case kl_if_40 of Atom (B (True)) -> do !appl_57 <- kl_V1658 `pseq` tl kl_V1658 !appl_58 <- appl_57 `pseq` hd appl_57 appl_58 `pseq` kl_shen_legitimate_termP appl_58 Atom (B (False)) -> do let pat_cond_59 kl_V1658 kl_V1658h kl_V1658t = do return (Atom (B False)) pat_cond_60 = do do return (Atom (B True)) in case kl_V1658 of !(kl_V1658@(Cons (!kl_V1658h) (!kl_V1658t))) -> pat_cond_59 kl_V1658 kl_V1658h kl_V1658t _ -> pat_cond_60 _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_eval_cons :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_eval_cons (!kl_V1660) = do !kl_if_0 <- let pat_cond_1 kl_V1660 kl_V1660h kl_V1660t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1660t kl_V1660th kl_V1660tt = do !kl_if_6 <- let pat_cond_7 kl_V1660tt kl_V1660tth kl_V1660ttt = do let !appl_8 = Atom Nil !kl_if_9 <- appl_8 `pseq` (kl_V1660ttt `pseq` eq appl_8 kl_V1660ttt) 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_V1660tt of !(kl_V1660tt@(Cons (!kl_V1660tth) (!kl_V1660ttt))) -> pat_cond_7 kl_V1660tt kl_V1660tth kl_V1660ttt _ -> 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_V1660t of !(kl_V1660t@(Cons (!kl_V1660th) (!kl_V1660tt))) -> pat_cond_5 kl_V1660t kl_V1660th kl_V1660tt _ -> 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_V1660h of kl_V1660h@(Atom (UnboundSym "cons")) -> pat_cond_3 kl_V1660h@(ApplC (PL "cons" _)) -> pat_cond_3 kl_V1660h@(ApplC (Func "cons" _)) -> pat_cond_3 _ -> pat_cond_12 case kl_if_2 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_13 = do do return (Atom (B False)) in case kl_V1660 of !(kl_V1660@(Cons (!kl_V1660h) (!kl_V1660t))) -> pat_cond_1 kl_V1660 kl_V1660h kl_V1660t _ -> pat_cond_13 case kl_if_0 of Atom (B (True)) -> do !appl_14 <- kl_V1660 `pseq` tl kl_V1660 !appl_15 <- appl_14 `pseq` hd appl_14 !appl_16 <- appl_15 `pseq` kl_shen_eval_cons appl_15 !appl_17 <- kl_V1660 `pseq` tl kl_V1660 !appl_18 <- appl_17 `pseq` tl appl_17 !appl_19 <- appl_18 `pseq` hd appl_18 !appl_20 <- appl_19 `pseq` kl_shen_eval_cons appl_19 appl_16 `pseq` (appl_20 `pseq` klCons appl_16 appl_20) Atom (B (False)) -> do !kl_if_21 <- let pat_cond_22 kl_V1660 kl_V1660h kl_V1660t = do !kl_if_23 <- let pat_cond_24 = do !kl_if_25 <- let pat_cond_26 kl_V1660t kl_V1660th kl_V1660tt = do !kl_if_27 <- let pat_cond_28 kl_V1660tt kl_V1660tth kl_V1660ttt = do let !appl_29 = Atom Nil !kl_if_30 <- appl_29 `pseq` (kl_V1660ttt `pseq` eq appl_29 kl_V1660ttt) case kl_if_30 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_31 = do do return (Atom (B False)) in case kl_V1660tt of !(kl_V1660tt@(Cons (!kl_V1660tth) (!kl_V1660ttt))) -> pat_cond_28 kl_V1660tt kl_V1660tth kl_V1660ttt _ -> pat_cond_31 case kl_if_27 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_32 = do do return (Atom (B False)) in case kl_V1660t of !(kl_V1660t@(Cons (!kl_V1660th) (!kl_V1660tt))) -> pat_cond_26 kl_V1660t kl_V1660th kl_V1660tt _ -> pat_cond_32 case kl_if_25 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_33 = do do return (Atom (B False)) in case kl_V1660h of kl_V1660h@(Atom (UnboundSym "mode")) -> pat_cond_24 kl_V1660h@(ApplC (PL "mode" _)) -> pat_cond_24 kl_V1660h@(ApplC (Func "mode" _)) -> pat_cond_24 _ -> pat_cond_33 case kl_if_23 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_34 = do do return (Atom (B False)) in case kl_V1660 of !(kl_V1660@(Cons (!kl_V1660h) (!kl_V1660t))) -> pat_cond_22 kl_V1660 kl_V1660h kl_V1660t _ -> pat_cond_34 case kl_if_21 of Atom (B (True)) -> do !appl_35 <- kl_V1660 `pseq` tl kl_V1660 !appl_36 <- appl_35 `pseq` hd appl_35 !appl_37 <- appl_36 `pseq` kl_shen_eval_cons appl_36 !appl_38 <- kl_V1660 `pseq` tl kl_V1660 !appl_39 <- appl_38 `pseq` tl appl_38 !appl_40 <- appl_37 `pseq` (appl_39 `pseq` klCons appl_37 appl_39) appl_40 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_40 Atom (B (False)) -> do do return kl_V1660 _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_LBbodyMultRB :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_LBbodyMultRB (!kl_V1662) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1) case kl_if_2 of Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_4 <- kl_fail !appl_5 <- appl_4 `pseq` (kl_Parse_LBeRB `pseq` eq appl_4 kl_Parse_LBeRB) !kl_if_6 <- appl_5 `pseq` kl_not appl_5 case kl_if_6 of Atom (B (True)) -> do !appl_7 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB let !appl_8 = Atom Nil appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8) Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_9 <- kl_V1662 `pseq` kl_LBeRB kl_V1662 appl_9 `pseq` applyWrapper appl_3 [appl_9] Atom (B (False)) -> do do return kl_YaccParse _ -> throwError "if: expected boolean"))) let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBliteralMultRB) -> do !appl_11 <- kl_fail !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBliteralMultRB `pseq` eq appl_11 kl_Parse_shen_LBliteralMultRB) !kl_if_13 <- appl_12 `pseq` kl_not appl_12 case kl_if_13 of Atom (B (True)) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbodyMultRB) -> do !appl_15 <- kl_fail !appl_16 <- appl_15 `pseq` (kl_Parse_shen_LBbodyMultRB `pseq` eq appl_15 kl_Parse_shen_LBbodyMultRB) !kl_if_17 <- appl_16 `pseq` kl_not appl_16 case kl_if_17 of Atom (B (True)) -> do !appl_18 <- kl_Parse_shen_LBbodyMultRB `pseq` hd kl_Parse_shen_LBbodyMultRB !appl_19 <- kl_Parse_shen_LBliteralMultRB `pseq` kl_shen_hdtl kl_Parse_shen_LBliteralMultRB !appl_20 <- kl_Parse_shen_LBbodyMultRB `pseq` kl_shen_hdtl kl_Parse_shen_LBbodyMultRB !appl_21 <- appl_19 `pseq` (appl_20 `pseq` klCons appl_19 appl_20) appl_18 `pseq` (appl_21 `pseq` kl_shen_pair appl_18 appl_21) Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_22 <- kl_Parse_shen_LBliteralMultRB `pseq` kl_shen_LBbodyMultRB kl_Parse_shen_LBliteralMultRB appl_22 `pseq` applyWrapper appl_14 [appl_22] Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean"))) !appl_23 <- kl_V1662 `pseq` kl_shen_LBliteralMultRB kl_V1662 !appl_24 <- appl_23 `pseq` applyWrapper appl_10 [appl_23] appl_24 `pseq` applyWrapper appl_0 [appl_24] kl_shen_LBliteralMultRB :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_LBliteralMultRB (!kl_V1664) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1) case kl_if_2 of Atom (B (True)) -> do !appl_3 <- kl_V1664 `pseq` hd kl_V1664 !kl_if_4 <- appl_3 `pseq` consP appl_3 case kl_if_4 of Atom (B (True)) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let pat_cond_6 kl_Parse_X kl_Parse_Xh kl_Parse_Xt = do !appl_7 <- kl_V1664 `pseq` hd kl_V1664 !appl_8 <- appl_7 `pseq` tl appl_7 !appl_9 <- kl_V1664 `pseq` kl_shen_hdtl kl_V1664 !appl_10 <- appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9) !appl_11 <- appl_10 `pseq` hd appl_10 appl_11 `pseq` (kl_Parse_X `pseq` kl_shen_pair appl_11 kl_Parse_X) pat_cond_12 = do do kl_fail in case kl_Parse_X of !(kl_Parse_X@(Cons (!kl_Parse_Xh) (!kl_Parse_Xt))) -> pat_cond_6 kl_Parse_X kl_Parse_Xh kl_Parse_Xt _ -> pat_cond_12))) !appl_13 <- kl_V1664 `pseq` hd kl_V1664 !appl_14 <- appl_13 `pseq` hd appl_13 appl_14 `pseq` applyWrapper appl_5 [appl_14] Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return kl_YaccParse _ -> throwError "if: expected boolean"))) !appl_15 <- kl_V1664 `pseq` hd kl_V1664 !kl_if_16 <- appl_15 `pseq` consP appl_15 !kl_if_17 <- case kl_if_16 of Atom (B (True)) -> do !appl_18 <- kl_V1664 `pseq` hd kl_V1664 !appl_19 <- appl_18 `pseq` hd appl_18 !kl_if_20 <- appl_19 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "!")) appl_19 case kl_if_20 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" !appl_21 <- case kl_if_17 of Atom (B (True)) -> do !appl_22 <- kl_V1664 `pseq` hd kl_V1664 !appl_23 <- appl_22 `pseq` tl appl_22 !appl_24 <- kl_V1664 `pseq` kl_shen_hdtl kl_V1664 !appl_25 <- appl_23 `pseq` (appl_24 `pseq` kl_shen_pair appl_23 appl_24) !appl_26 <- appl_25 `pseq` hd appl_25 !appl_27 <- intern (Core.Types.Atom (Core.Types.Str "Throwcontrol")) let !appl_28 = Atom Nil !appl_29 <- appl_27 `pseq` (appl_28 `pseq` klCons appl_27 appl_28) !appl_30 <- appl_29 `pseq` klCons (ApplC (wrapNamed "cut" kl_cut)) appl_29 appl_26 `pseq` (appl_30 `pseq` kl_shen_pair appl_26 appl_30) Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean" appl_21 `pseq` applyWrapper appl_0 [appl_21] kl_shen_LBendMultRB :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_LBendMultRB (!kl_V1666) = do !appl_0 <- kl_V1666 `pseq` hd kl_V1666 !kl_if_1 <- appl_0 `pseq` consP appl_0 case kl_if_1 of Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let pat_cond_3 = do !appl_4 <- kl_V1666 `pseq` hd kl_V1666 !appl_5 <- appl_4 `pseq` tl appl_4 !appl_6 <- kl_V1666 `pseq` kl_shen_hdtl kl_V1666 !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6) !appl_8 <- appl_7 `pseq` hd appl_7 appl_8 `pseq` (kl_Parse_X `pseq` kl_shen_pair appl_8 kl_Parse_X) pat_cond_9 = do do kl_fail in case kl_Parse_X of kl_Parse_X@(Atom (UnboundSym ";")) -> pat_cond_3 kl_Parse_X@(ApplC (PL ";" _)) -> pat_cond_3 kl_Parse_X@(ApplC (Func ";" _)) -> pat_cond_3 _ -> pat_cond_9))) !appl_10 <- kl_V1666 `pseq` hd kl_V1666 !appl_11 <- appl_10 `pseq` hd appl_10 appl_11 `pseq` applyWrapper appl_2 [appl_11] Atom (B (False)) -> do do kl_fail _ -> throwError "if: expected boolean" kl_cut :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_cut (!kl_V1670) (!kl_V1671) (!kl_V1672) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Result) -> do let pat_cond_1 = do return kl_V1670 pat_cond_2 = do do return kl_Result in case kl_Result of kl_Result@(Atom (UnboundSym "false")) -> pat_cond_1 kl_Result@(Atom (B (False))) -> pat_cond_1 _ -> pat_cond_2))) !appl_3 <- kl_V1672 `pseq` kl_thaw kl_V1672 appl_3 `pseq` applyWrapper appl_0 [appl_3] kl_shen_insert_modes :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_insert_modes (!kl_V1674) = do !kl_if_0 <- let pat_cond_1 kl_V1674 kl_V1674h kl_V1674t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1674t kl_V1674th kl_V1674tt = do !kl_if_6 <- let pat_cond_7 kl_V1674tt kl_V1674tth kl_V1674ttt = do let !appl_8 = Atom Nil !kl_if_9 <- appl_8 `pseq` (kl_V1674ttt `pseq` eq appl_8 kl_V1674ttt) 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_V1674tt of !(kl_V1674tt@(Cons (!kl_V1674tth) (!kl_V1674ttt))) -> pat_cond_7 kl_V1674tt kl_V1674tth kl_V1674ttt _ -> 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_V1674t of !(kl_V1674t@(Cons (!kl_V1674th) (!kl_V1674tt))) -> pat_cond_5 kl_V1674t kl_V1674th kl_V1674tt _ -> 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_V1674h of kl_V1674h@(Atom (UnboundSym "mode")) -> pat_cond_3 kl_V1674h@(ApplC (PL "mode" _)) -> pat_cond_3 kl_V1674h@(ApplC (Func "mode" _)) -> pat_cond_3 _ -> pat_cond_12 case kl_if_2 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_13 = do do return (Atom (B False)) in case kl_V1674 of !(kl_V1674@(Cons (!kl_V1674h) (!kl_V1674t))) -> pat_cond_1 kl_V1674 kl_V1674h kl_V1674t _ -> pat_cond_13 case kl_if_0 of Atom (B (True)) -> do return kl_V1674 Atom (B (False)) -> do let !appl_14 = Atom Nil !kl_if_15 <- appl_14 `pseq` (kl_V1674 `pseq` eq appl_14 kl_V1674) case kl_if_15 of Atom (B (True)) -> do return (Atom Nil) Atom (B (False)) -> do let pat_cond_16 kl_V1674 kl_V1674h kl_V1674t = do let !appl_17 = Atom Nil !appl_18 <- appl_17 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_17 !appl_19 <- kl_V1674h `pseq` (appl_18 `pseq` klCons kl_V1674h appl_18) !appl_20 <- appl_19 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_19 !appl_21 <- kl_V1674t `pseq` kl_shen_insert_modes kl_V1674t let !appl_22 = Atom Nil !appl_23 <- appl_22 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_22 !appl_24 <- appl_21 `pseq` (appl_23 `pseq` klCons appl_21 appl_23) !appl_25 <- appl_24 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_24 appl_20 `pseq` (appl_25 `pseq` klCons appl_20 appl_25) pat_cond_26 = do do return kl_V1674 in case kl_V1674 of !(kl_V1674@(Cons (!kl_V1674h) (!kl_V1674t))) -> pat_cond_16 kl_V1674 kl_V1674h kl_V1674t _ -> pat_cond_26 _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_s_prolog :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_s_prolog (!kl_V1676) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_eval kl_X))) !appl_1 <- kl_V1676 `pseq` kl_shen_prolog_RBshen kl_V1676 appl_0 `pseq` (appl_1 `pseq` kl_map appl_0 appl_1) kl_shen_prolog_RBshen :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_prolog_RBshen (!kl_V1678) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_compile_prolog_procedure kl_X))) let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_s_prolog_clause kl_X))) let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_head_abstraction kl_X))) !appl_3 <- appl_2 `pseq` (kl_V1678 `pseq` kl_mapcan appl_2 kl_V1678) !appl_4 <- appl_1 `pseq` (appl_3 `pseq` kl_map appl_1 appl_3) !appl_5 <- appl_4 `pseq` kl_shen_group_clauses appl_4 appl_0 `pseq` (appl_5 `pseq` kl_map appl_0 appl_5) kl_shen_s_prolog_clause :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_s_prolog_clause (!kl_V1680) = do !kl_if_0 <- let pat_cond_1 kl_V1680 kl_V1680h kl_V1680t = do !kl_if_2 <- let pat_cond_3 kl_V1680t kl_V1680th kl_V1680tt = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1680tt kl_V1680tth kl_V1680ttt = do let !appl_8 = Atom Nil !kl_if_9 <- appl_8 `pseq` (kl_V1680ttt `pseq` eq appl_8 kl_V1680ttt) 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_V1680tt of !(kl_V1680tt@(Cons (!kl_V1680tth) (!kl_V1680ttt))) -> pat_cond_7 kl_V1680tt kl_V1680tth kl_V1680ttt _ -> 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_V1680th of kl_V1680th@(Atom (UnboundSym ":-")) -> pat_cond_5 kl_V1680th@(ApplC (PL ":-" _)) -> pat_cond_5 kl_V1680th@(ApplC (Func ":-" _)) -> pat_cond_5 _ -> pat_cond_11 case kl_if_4 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_12 = do do return (Atom (B False)) in case kl_V1680t of !(kl_V1680t@(Cons (!kl_V1680th) (!kl_V1680tt))) -> pat_cond_3 kl_V1680t kl_V1680th kl_V1680tt _ -> 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_V1680 of !(kl_V1680@(Cons (!kl_V1680h) (!kl_V1680t))) -> pat_cond_1 kl_V1680 kl_V1680h kl_V1680t _ -> pat_cond_13 case kl_if_0 of Atom (B (True)) -> do !appl_14 <- kl_V1680 `pseq` hd kl_V1680 let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_s_prolog_literal kl_X))) !appl_16 <- kl_V1680 `pseq` tl kl_V1680 !appl_17 <- appl_16 `pseq` tl appl_16 !appl_18 <- appl_17 `pseq` hd appl_17 !appl_19 <- appl_15 `pseq` (appl_18 `pseq` kl_map appl_15 appl_18) let !appl_20 = Atom Nil !appl_21 <- appl_19 `pseq` (appl_20 `pseq` klCons appl_19 appl_20) !appl_22 <- appl_21 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":-")) appl_21 appl_14 `pseq` (appl_22 `pseq` klCons appl_14 appl_22) Atom (B (False)) -> do do let !aw_23 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_23 [ApplC (wrapNamed "shen.s-prolog_clause" kl_shen_s_prolog_clause)] _ -> throwError "if: expected boolean" kl_shen_head_abstraction :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_head_abstraction (!kl_V1682) = do !kl_if_0 <- let pat_cond_1 kl_V1682 kl_V1682h kl_V1682t = do !kl_if_2 <- let pat_cond_3 kl_V1682t kl_V1682th kl_V1682tt = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1682tt kl_V1682tth kl_V1682ttt = do let !appl_8 = Atom Nil !kl_if_9 <- appl_8 `pseq` (kl_V1682ttt `pseq` eq appl_8 kl_V1682ttt) !kl_if_10 <- case kl_if_9 of Atom (B (True)) -> do !appl_11 <- kl_V1682h `pseq` kl_shen_complexity_head kl_V1682h !appl_12 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*maxcomplexity*")) !kl_if_13 <- appl_11 `pseq` (appl_12 `pseq` lessThan appl_11 appl_12) case kl_if_13 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_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_14 = do do return (Atom (B False)) in case kl_V1682tt of !(kl_V1682tt@(Cons (!kl_V1682tth) (!kl_V1682ttt))) -> pat_cond_7 kl_V1682tt kl_V1682tth kl_V1682ttt _ -> pat_cond_14 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_15 = do do return (Atom (B False)) in case kl_V1682th of kl_V1682th@(Atom (UnboundSym ":-")) -> pat_cond_5 kl_V1682th@(ApplC (PL ":-" _)) -> pat_cond_5 kl_V1682th@(ApplC (Func ":-" _)) -> pat_cond_5 _ -> pat_cond_15 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_16 = do do return (Atom (B False)) in case kl_V1682t of !(kl_V1682t@(Cons (!kl_V1682th) (!kl_V1682tt))) -> pat_cond_3 kl_V1682t kl_V1682th kl_V1682tt _ -> pat_cond_16 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_17 = do do return (Atom (B False)) in case kl_V1682 of !(kl_V1682@(Cons (!kl_V1682h) (!kl_V1682t))) -> pat_cond_1 kl_V1682 kl_V1682h kl_V1682t _ -> pat_cond_17 case kl_if_0 of Atom (B (True)) -> do let !appl_18 = Atom Nil kl_V1682 `pseq` (appl_18 `pseq` klCons kl_V1682 appl_18) Atom (B (False)) -> do !kl_if_19 <- let pat_cond_20 kl_V1682 kl_V1682h kl_V1682t = do !kl_if_21 <- let pat_cond_22 kl_V1682h kl_V1682hh kl_V1682ht = do !kl_if_23 <- let pat_cond_24 kl_V1682t kl_V1682th kl_V1682tt = do !kl_if_25 <- let pat_cond_26 = do !kl_if_27 <- let pat_cond_28 kl_V1682tt kl_V1682tth kl_V1682ttt = do let !appl_29 = Atom Nil !kl_if_30 <- appl_29 `pseq` (kl_V1682ttt `pseq` eq appl_29 kl_V1682ttt) case kl_if_30 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_31 = do do return (Atom (B False)) in case kl_V1682tt of !(kl_V1682tt@(Cons (!kl_V1682tth) (!kl_V1682ttt))) -> pat_cond_28 kl_V1682tt kl_V1682tth kl_V1682ttt _ -> pat_cond_31 case kl_if_27 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_32 = do do return (Atom (B False)) in case kl_V1682th of kl_V1682th@(Atom (UnboundSym ":-")) -> pat_cond_26 kl_V1682th@(ApplC (PL ":-" _)) -> pat_cond_26 kl_V1682th@(ApplC (Func ":-" _)) -> pat_cond_26 _ -> pat_cond_32 case kl_if_25 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_33 = do do return (Atom (B False)) in case kl_V1682t of !(kl_V1682t@(Cons (!kl_V1682th) (!kl_V1682tt))) -> pat_cond_24 kl_V1682t kl_V1682th kl_V1682tt _ -> pat_cond_33 case kl_if_23 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_34 = do do return (Atom (B False)) in case kl_V1682h of !(kl_V1682h@(Cons (!kl_V1682hh) (!kl_V1682ht))) -> pat_cond_22 kl_V1682h kl_V1682hh kl_V1682ht _ -> pat_cond_34 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_35 = do do return (Atom (B False)) in case kl_V1682 of !(kl_V1682@(Cons (!kl_V1682h) (!kl_V1682t))) -> pat_cond_20 kl_V1682 kl_V1682h kl_V1682t _ -> pat_cond_35 case kl_if_19 of Atom (B (True)) -> do let !appl_36 = ApplC (Func "lambda" (Context (\(!kl_Terms) -> do let !appl_37 = ApplC (Func "lambda" (Context (\(!kl_XTerms) -> do let !appl_38 = ApplC (Func "lambda" (Context (\(!kl_Literal) -> do let !appl_39 = ApplC (Func "lambda" (Context (\(!kl_Clause) -> do let !appl_40 = Atom Nil kl_Clause `pseq` (appl_40 `pseq` klCons kl_Clause appl_40)))) !appl_41 <- kl_V1682 `pseq` hd kl_V1682 !appl_42 <- appl_41 `pseq` hd appl_41 !appl_43 <- appl_42 `pseq` (kl_Terms `pseq` klCons appl_42 kl_Terms) !appl_44 <- kl_V1682 `pseq` tl kl_V1682 !appl_45 <- appl_44 `pseq` tl appl_44 !appl_46 <- appl_45 `pseq` hd appl_45 !appl_47 <- kl_Literal `pseq` (appl_46 `pseq` klCons kl_Literal appl_46) let !appl_48 = Atom Nil !appl_49 <- appl_47 `pseq` (appl_48 `pseq` klCons appl_47 appl_48) !appl_50 <- appl_49 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":-")) appl_49 !appl_51 <- appl_43 `pseq` (appl_50 `pseq` klCons appl_43 appl_50) appl_51 `pseq` applyWrapper appl_39 [appl_51]))) !appl_52 <- kl_Terms `pseq` kl_shen_cons_form kl_Terms let !appl_53 = Atom Nil !appl_54 <- kl_XTerms `pseq` (appl_53 `pseq` klCons kl_XTerms appl_53) !appl_55 <- appl_52 `pseq` (appl_54 `pseq` klCons appl_52 appl_54) !appl_56 <- appl_55 `pseq` klCons (ApplC (wrapNamed "unify" kl_unify)) appl_55 appl_56 `pseq` applyWrapper appl_38 [appl_56]))) !appl_57 <- kl_V1682 `pseq` hd kl_V1682 !appl_58 <- appl_57 `pseq` tl appl_57 !appl_59 <- appl_58 `pseq` kl_shen_remove_modes appl_58 !appl_60 <- appl_59 `pseq` kl_shen_rcons_form appl_59 appl_60 `pseq` applyWrapper appl_37 [appl_60]))) let !appl_61 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "V"))))) !appl_62 <- kl_V1682 `pseq` hd kl_V1682 !appl_63 <- appl_62 `pseq` tl appl_62 !appl_64 <- appl_61 `pseq` (appl_63 `pseq` kl_map appl_61 appl_63) appl_64 `pseq` applyWrapper appl_36 [appl_64] Atom (B (False)) -> do do let !aw_65 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_65 [ApplC (wrapNamed "shen.head_abstraction" kl_shen_head_abstraction)] _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_complexity_head :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_complexity_head (!kl_V1688) = do let pat_cond_0 kl_V1688 kl_V1688h kl_V1688t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_complexity kl_X))) !appl_2 <- appl_1 `pseq` (kl_V1688t `pseq` kl_map appl_1 kl_V1688t) appl_2 `pseq` kl_shen_product appl_2 pat_cond_3 = do do let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_4 [ApplC (wrapNamed "shen.complexity_head" kl_shen_complexity_head)] in case kl_V1688 of !(kl_V1688@(Cons (!kl_V1688h) (!kl_V1688t))) -> pat_cond_0 kl_V1688 kl_V1688h kl_V1688t _ -> pat_cond_3 kl_shen_complexity :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_complexity (!kl_V1697) = do !kl_if_0 <- let pat_cond_1 kl_V1697 kl_V1697h kl_V1697t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1697t kl_V1697th kl_V1697tt = do !kl_if_6 <- let pat_cond_7 kl_V1697th kl_V1697thh kl_V1697tht = do !kl_if_8 <- let pat_cond_9 = do !kl_if_10 <- let pat_cond_11 kl_V1697tht kl_V1697thth kl_V1697thtt = do !kl_if_12 <- let pat_cond_13 kl_V1697thtt kl_V1697thtth kl_V1697thttt = do let !appl_14 = Atom Nil !kl_if_15 <- appl_14 `pseq` (kl_V1697thttt `pseq` eq appl_14 kl_V1697thttt) !kl_if_16 <- case kl_if_15 of Atom (B (True)) -> do !kl_if_17 <- let pat_cond_18 kl_V1697tt kl_V1697tth kl_V1697ttt = do let !appl_19 = Atom Nil !kl_if_20 <- appl_19 `pseq` (kl_V1697ttt `pseq` eq appl_19 kl_V1697ttt) 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_21 = do do return (Atom (B False)) in case kl_V1697tt of !(kl_V1697tt@(Cons (!kl_V1697tth) (!kl_V1697ttt))) -> pat_cond_18 kl_V1697tt kl_V1697tth kl_V1697ttt _ -> pat_cond_21 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_16 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_22 = do do return (Atom (B False)) in case kl_V1697thtt of !(kl_V1697thtt@(Cons (!kl_V1697thtth) (!kl_V1697thttt))) -> pat_cond_13 kl_V1697thtt kl_V1697thtth kl_V1697thttt _ -> pat_cond_22 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_23 = do do return (Atom (B False)) in case kl_V1697tht of !(kl_V1697tht@(Cons (!kl_V1697thth) (!kl_V1697thtt))) -> pat_cond_11 kl_V1697tht kl_V1697thth kl_V1697thtt _ -> pat_cond_23 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_24 = do do return (Atom (B False)) in case kl_V1697thh of kl_V1697thh@(Atom (UnboundSym "mode")) -> pat_cond_9 kl_V1697thh@(ApplC (PL "mode" _)) -> pat_cond_9 kl_V1697thh@(ApplC (Func "mode" _)) -> pat_cond_9 _ -> pat_cond_24 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_25 = do do return (Atom (B False)) in case kl_V1697th of !(kl_V1697th@(Cons (!kl_V1697thh) (!kl_V1697tht))) -> pat_cond_7 kl_V1697th kl_V1697thh kl_V1697tht _ -> pat_cond_25 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_26 = do do return (Atom (B False)) in case kl_V1697t of !(kl_V1697t@(Cons (!kl_V1697th) (!kl_V1697tt))) -> pat_cond_5 kl_V1697t kl_V1697th kl_V1697tt _ -> pat_cond_26 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_27 = do do return (Atom (B False)) in case kl_V1697h of kl_V1697h@(Atom (UnboundSym "mode")) -> pat_cond_3 kl_V1697h@(ApplC (PL "mode" _)) -> pat_cond_3 kl_V1697h@(ApplC (Func "mode" _)) -> pat_cond_3 _ -> pat_cond_27 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_28 = do do return (Atom (B False)) in case kl_V1697 of !(kl_V1697@(Cons (!kl_V1697h) (!kl_V1697t))) -> pat_cond_1 kl_V1697 kl_V1697h kl_V1697t _ -> pat_cond_28 case kl_if_0 of Atom (B (True)) -> do !appl_29 <- kl_V1697 `pseq` tl kl_V1697 !appl_30 <- appl_29 `pseq` hd appl_29 appl_30 `pseq` kl_shen_complexity appl_30 Atom (B (False)) -> do !kl_if_31 <- let pat_cond_32 kl_V1697 kl_V1697h kl_V1697t = do !kl_if_33 <- let pat_cond_34 = do !kl_if_35 <- let pat_cond_36 kl_V1697t kl_V1697th kl_V1697tt = do !kl_if_37 <- let pat_cond_38 kl_V1697th kl_V1697thh kl_V1697tht = do !kl_if_39 <- let pat_cond_40 kl_V1697tt kl_V1697tth kl_V1697ttt = do !kl_if_41 <- let pat_cond_42 = do let !appl_43 = Atom Nil !kl_if_44 <- appl_43 `pseq` (kl_V1697ttt `pseq` eq appl_43 kl_V1697ttt) 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_V1697tth of kl_V1697tth@(Atom (UnboundSym "+")) -> pat_cond_42 kl_V1697tth@(ApplC (PL "+" _)) -> pat_cond_42 kl_V1697tth@(ApplC (Func "+" _)) -> pat_cond_42 _ -> 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_V1697tt of !(kl_V1697tt@(Cons (!kl_V1697tth) (!kl_V1697ttt))) -> pat_cond_40 kl_V1697tt kl_V1697tth kl_V1697ttt _ -> 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_V1697th of !(kl_V1697th@(Cons (!kl_V1697thh) (!kl_V1697tht))) -> pat_cond_38 kl_V1697th kl_V1697thh kl_V1697tht _ -> 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_V1697t of !(kl_V1697t@(Cons (!kl_V1697th) (!kl_V1697tt))) -> pat_cond_36 kl_V1697t kl_V1697th kl_V1697tt _ -> pat_cond_48 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" pat_cond_49 = do do return (Atom (B False)) in case kl_V1697h of kl_V1697h@(Atom (UnboundSym "mode")) -> pat_cond_34 kl_V1697h@(ApplC (PL "mode" _)) -> pat_cond_34 kl_V1697h@(ApplC (Func "mode" _)) -> pat_cond_34 _ -> pat_cond_49 case kl_if_33 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_50 = do do return (Atom (B False)) in case kl_V1697 of !(kl_V1697@(Cons (!kl_V1697h) (!kl_V1697t))) -> pat_cond_32 kl_V1697 kl_V1697h kl_V1697t _ -> pat_cond_50 case kl_if_31 of Atom (B (True)) -> do !appl_51 <- kl_V1697 `pseq` tl kl_V1697 !appl_52 <- appl_51 `pseq` hd appl_51 !appl_53 <- appl_52 `pseq` hd appl_52 !appl_54 <- kl_V1697 `pseq` tl kl_V1697 !appl_55 <- appl_54 `pseq` tl appl_54 !appl_56 <- appl_53 `pseq` (appl_55 `pseq` klCons appl_53 appl_55) !appl_57 <- appl_56 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_56 !appl_58 <- appl_57 `pseq` kl_shen_complexity appl_57 !appl_59 <- kl_V1697 `pseq` tl kl_V1697 !appl_60 <- appl_59 `pseq` hd appl_59 !appl_61 <- appl_60 `pseq` tl appl_60 !appl_62 <- kl_V1697 `pseq` tl kl_V1697 !appl_63 <- appl_62 `pseq` tl appl_62 !appl_64 <- appl_61 `pseq` (appl_63 `pseq` klCons appl_61 appl_63) !appl_65 <- appl_64 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_64 !appl_66 <- appl_65 `pseq` kl_shen_complexity appl_65 !appl_67 <- appl_58 `pseq` (appl_66 `pseq` multiply appl_58 appl_66) appl_67 `pseq` multiply (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_67 Atom (B (False)) -> do !kl_if_68 <- let pat_cond_69 kl_V1697 kl_V1697h kl_V1697t = do !kl_if_70 <- let pat_cond_71 = do !kl_if_72 <- let pat_cond_73 kl_V1697t kl_V1697th kl_V1697tt = do !kl_if_74 <- let pat_cond_75 kl_V1697th kl_V1697thh kl_V1697tht = do !kl_if_76 <- let pat_cond_77 kl_V1697tt kl_V1697tth kl_V1697ttt = do !kl_if_78 <- let pat_cond_79 = do let !appl_80 = Atom Nil !kl_if_81 <- appl_80 `pseq` (kl_V1697ttt `pseq` eq appl_80 kl_V1697ttt) case kl_if_81 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_V1697tth of kl_V1697tth@(Atom (UnboundSym "-")) -> pat_cond_79 kl_V1697tth@(ApplC (PL "-" _)) -> pat_cond_79 kl_V1697tth@(ApplC (Func "-" _)) -> pat_cond_79 _ -> pat_cond_82 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_83 = do do return (Atom (B False)) in case kl_V1697tt of !(kl_V1697tt@(Cons (!kl_V1697tth) (!kl_V1697ttt))) -> pat_cond_77 kl_V1697tt kl_V1697tth kl_V1697ttt _ -> pat_cond_83 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" pat_cond_84 = do do return (Atom (B False)) in case kl_V1697th of !(kl_V1697th@(Cons (!kl_V1697thh) (!kl_V1697tht))) -> pat_cond_75 kl_V1697th kl_V1697thh kl_V1697tht _ -> pat_cond_84 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_85 = do do return (Atom (B False)) in case kl_V1697t of !(kl_V1697t@(Cons (!kl_V1697th) (!kl_V1697tt))) -> pat_cond_73 kl_V1697t kl_V1697th kl_V1697tt _ -> pat_cond_85 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_86 = do do return (Atom (B False)) in case kl_V1697h of kl_V1697h@(Atom (UnboundSym "mode")) -> pat_cond_71 kl_V1697h@(ApplC (PL "mode" _)) -> pat_cond_71 kl_V1697h@(ApplC (Func "mode" _)) -> pat_cond_71 _ -> pat_cond_86 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_87 = do do return (Atom (B False)) in case kl_V1697 of !(kl_V1697@(Cons (!kl_V1697h) (!kl_V1697t))) -> pat_cond_69 kl_V1697 kl_V1697h kl_V1697t _ -> pat_cond_87 case kl_if_68 of Atom (B (True)) -> do !appl_88 <- kl_V1697 `pseq` tl kl_V1697 !appl_89 <- appl_88 `pseq` hd appl_88 !appl_90 <- appl_89 `pseq` hd appl_89 !appl_91 <- kl_V1697 `pseq` tl kl_V1697 !appl_92 <- appl_91 `pseq` tl appl_91 !appl_93 <- appl_90 `pseq` (appl_92 `pseq` klCons appl_90 appl_92) !appl_94 <- appl_93 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_93 !appl_95 <- appl_94 `pseq` kl_shen_complexity appl_94 !appl_96 <- kl_V1697 `pseq` tl kl_V1697 !appl_97 <- appl_96 `pseq` hd appl_96 !appl_98 <- appl_97 `pseq` tl appl_97 !appl_99 <- kl_V1697 `pseq` tl kl_V1697 !appl_100 <- appl_99 `pseq` tl appl_99 !appl_101 <- appl_98 `pseq` (appl_100 `pseq` klCons appl_98 appl_100) !appl_102 <- appl_101 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_101 !appl_103 <- appl_102 `pseq` kl_shen_complexity appl_102 appl_95 `pseq` (appl_103 `pseq` multiply appl_95 appl_103) Atom (B (False)) -> do !kl_if_104 <- let pat_cond_105 kl_V1697 kl_V1697h kl_V1697t = do !kl_if_106 <- let pat_cond_107 = do !kl_if_108 <- let pat_cond_109 kl_V1697t kl_V1697th kl_V1697tt = do !kl_if_110 <- let pat_cond_111 kl_V1697tt kl_V1697tth kl_V1697ttt = do let !appl_112 = Atom Nil !kl_if_113 <- appl_112 `pseq` (kl_V1697ttt `pseq` eq appl_112 kl_V1697ttt) !kl_if_114 <- case kl_if_113 of Atom (B (True)) -> do !kl_if_115 <- kl_V1697th `pseq` kl_variableP kl_V1697th case kl_if_115 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_114 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_V1697tt of !(kl_V1697tt@(Cons (!kl_V1697tth) (!kl_V1697ttt))) -> pat_cond_111 kl_V1697tt kl_V1697tth kl_V1697ttt _ -> pat_cond_116 case kl_if_110 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_V1697t of !(kl_V1697t@(Cons (!kl_V1697th) (!kl_V1697tt))) -> pat_cond_109 kl_V1697t kl_V1697th kl_V1697tt _ -> pat_cond_117 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" pat_cond_118 = do do return (Atom (B False)) in case kl_V1697h of kl_V1697h@(Atom (UnboundSym "mode")) -> pat_cond_107 kl_V1697h@(ApplC (PL "mode" _)) -> pat_cond_107 kl_V1697h@(ApplC (Func "mode" _)) -> pat_cond_107 _ -> pat_cond_118 case kl_if_106 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_V1697 of !(kl_V1697@(Cons (!kl_V1697h) (!kl_V1697t))) -> pat_cond_105 kl_V1697 kl_V1697h kl_V1697t _ -> pat_cond_119 case kl_if_104 of Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) Atom (B (False)) -> do !kl_if_120 <- let pat_cond_121 kl_V1697 kl_V1697h kl_V1697t = do !kl_if_122 <- let pat_cond_123 = do !kl_if_124 <- let pat_cond_125 kl_V1697t kl_V1697th kl_V1697tt = do !kl_if_126 <- let pat_cond_127 kl_V1697tt kl_V1697tth kl_V1697ttt = do !kl_if_128 <- let pat_cond_129 = do let !appl_130 = Atom Nil !kl_if_131 <- appl_130 `pseq` (kl_V1697ttt `pseq` eq appl_130 kl_V1697ttt) case kl_if_131 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_132 = do do return (Atom (B False)) in case kl_V1697tth of kl_V1697tth@(Atom (UnboundSym "+")) -> pat_cond_129 kl_V1697tth@(ApplC (PL "+" _)) -> pat_cond_129 kl_V1697tth@(ApplC (Func "+" _)) -> pat_cond_129 _ -> pat_cond_132 case kl_if_128 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_133 = do do return (Atom (B False)) in case kl_V1697tt of !(kl_V1697tt@(Cons (!kl_V1697tth) (!kl_V1697ttt))) -> pat_cond_127 kl_V1697tt kl_V1697tth kl_V1697ttt _ -> 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_V1697t of !(kl_V1697t@(Cons (!kl_V1697th) (!kl_V1697tt))) -> pat_cond_125 kl_V1697t kl_V1697th kl_V1697tt _ -> 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_V1697h of kl_V1697h@(Atom (UnboundSym "mode")) -> pat_cond_123 kl_V1697h@(ApplC (PL "mode" _)) -> pat_cond_123 kl_V1697h@(ApplC (Func "mode" _)) -> pat_cond_123 _ -> 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_V1697 of !(kl_V1697@(Cons (!kl_V1697h) (!kl_V1697t))) -> pat_cond_121 kl_V1697 kl_V1697h kl_V1697t _ -> pat_cond_136 case kl_if_120 of Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) Atom (B (False)) -> do !kl_if_137 <- let pat_cond_138 kl_V1697 kl_V1697h kl_V1697t = do !kl_if_139 <- let pat_cond_140 = do !kl_if_141 <- let pat_cond_142 kl_V1697t kl_V1697th kl_V1697tt = do !kl_if_143 <- let pat_cond_144 kl_V1697tt kl_V1697tth kl_V1697ttt = do !kl_if_145 <- let pat_cond_146 = do let !appl_147 = Atom Nil !kl_if_148 <- appl_147 `pseq` (kl_V1697ttt `pseq` eq appl_147 kl_V1697ttt) case kl_if_148 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_149 = do do return (Atom (B False)) in case kl_V1697tth of kl_V1697tth@(Atom (UnboundSym "-")) -> pat_cond_146 kl_V1697tth@(ApplC (PL "-" _)) -> pat_cond_146 kl_V1697tth@(ApplC (Func "-" _)) -> pat_cond_146 _ -> pat_cond_149 case kl_if_145 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_150 = do do return (Atom (B False)) in case kl_V1697tt of !(kl_V1697tt@(Cons (!kl_V1697tth) (!kl_V1697ttt))) -> pat_cond_144 kl_V1697tt kl_V1697tth kl_V1697ttt _ -> pat_cond_150 case kl_if_143 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_151 = do do return (Atom (B False)) in case kl_V1697t of !(kl_V1697t@(Cons (!kl_V1697th) (!kl_V1697tt))) -> pat_cond_142 kl_V1697t kl_V1697th kl_V1697tt _ -> pat_cond_151 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" pat_cond_152 = do do return (Atom (B False)) in case kl_V1697h of kl_V1697h@(Atom (UnboundSym "mode")) -> pat_cond_140 kl_V1697h@(ApplC (PL "mode" _)) -> pat_cond_140 kl_V1697h@(ApplC (Func "mode" _)) -> pat_cond_140 _ -> pat_cond_152 case kl_if_139 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_153 = do do return (Atom (B False)) in case kl_V1697 of !(kl_V1697@(Cons (!kl_V1697h) (!kl_V1697t))) -> pat_cond_138 kl_V1697 kl_V1697h kl_V1697t _ -> pat_cond_153 case kl_if_137 of Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) Atom (B (False)) -> do do let !appl_154 = Atom Nil !appl_155 <- appl_154 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_154 !appl_156 <- kl_V1697 `pseq` (appl_155 `pseq` klCons kl_V1697 appl_155) !appl_157 <- appl_156 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_156 appl_157 `pseq` kl_shen_complexity appl_157 _ -> 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_product :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_product (!kl_V1699) = do let !appl_0 = Atom Nil !kl_if_1 <- appl_0 `pseq` (kl_V1699 `pseq` eq appl_0 kl_V1699) case kl_if_1 of Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) Atom (B (False)) -> do let pat_cond_2 kl_V1699 kl_V1699h kl_V1699t = do !appl_3 <- kl_V1699t `pseq` kl_shen_product kl_V1699t kl_V1699h `pseq` (appl_3 `pseq` multiply kl_V1699h appl_3) pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_5 [ApplC (wrapNamed "shen.product" kl_shen_product)] in case kl_V1699 of !(kl_V1699@(Cons (!kl_V1699h) (!kl_V1699t))) -> pat_cond_2 kl_V1699 kl_V1699h kl_V1699t _ -> pat_cond_4 _ -> throwError "if: expected boolean" kl_shen_s_prolog_literal :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_s_prolog_literal (!kl_V1701) = do !kl_if_0 <- let pat_cond_1 kl_V1701 kl_V1701h kl_V1701t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1701t kl_V1701th kl_V1701tt = do !kl_if_6 <- let pat_cond_7 kl_V1701tt kl_V1701tth kl_V1701ttt = do let !appl_8 = Atom Nil !kl_if_9 <- appl_8 `pseq` (kl_V1701ttt `pseq` eq appl_8 kl_V1701ttt) 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_V1701tt of !(kl_V1701tt@(Cons (!kl_V1701tth) (!kl_V1701ttt))) -> pat_cond_7 kl_V1701tt kl_V1701tth kl_V1701ttt _ -> 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_V1701t of !(kl_V1701t@(Cons (!kl_V1701th) (!kl_V1701tt))) -> pat_cond_5 kl_V1701t kl_V1701th kl_V1701tt _ -> 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_V1701h of kl_V1701h@(Atom (UnboundSym "is")) -> pat_cond_3 kl_V1701h@(ApplC (PL "is" _)) -> pat_cond_3 kl_V1701h@(ApplC (Func "is" _)) -> pat_cond_3 _ -> pat_cond_12 case kl_if_2 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_13 = do do return (Atom (B False)) in case kl_V1701 of !(kl_V1701@(Cons (!kl_V1701h) (!kl_V1701t))) -> pat_cond_1 kl_V1701 kl_V1701h kl_V1701t _ -> pat_cond_13 case kl_if_0 of Atom (B (True)) -> do !appl_14 <- kl_V1701 `pseq` tl kl_V1701 !appl_15 <- appl_14 `pseq` hd appl_14 !appl_16 <- kl_V1701 `pseq` tl kl_V1701 !appl_17 <- appl_16 `pseq` tl appl_16 !appl_18 <- appl_17 `pseq` hd appl_17 !appl_19 <- appl_18 `pseq` kl_shen_insert_deref appl_18 let !appl_20 = Atom Nil !appl_21 <- appl_19 `pseq` (appl_20 `pseq` klCons appl_19 appl_20) !appl_22 <- appl_15 `pseq` (appl_21 `pseq` klCons appl_15 appl_21) appl_22 `pseq` klCons (ApplC (wrapNamed "bind" kl_bind)) appl_22 Atom (B (False)) -> do !kl_if_23 <- let pat_cond_24 kl_V1701 kl_V1701h kl_V1701t = do !kl_if_25 <- let pat_cond_26 = do !kl_if_27 <- let pat_cond_28 kl_V1701t kl_V1701th kl_V1701tt = do let !appl_29 = Atom Nil !kl_if_30 <- appl_29 `pseq` (kl_V1701tt `pseq` eq appl_29 kl_V1701tt) case kl_if_30 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_31 = do do return (Atom (B False)) in case kl_V1701t of !(kl_V1701t@(Cons (!kl_V1701th) (!kl_V1701tt))) -> pat_cond_28 kl_V1701t kl_V1701th kl_V1701tt _ -> pat_cond_31 case kl_if_27 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_32 = do do return (Atom (B False)) in case kl_V1701h of kl_V1701h@(Atom (UnboundSym "when")) -> pat_cond_26 kl_V1701h@(ApplC (PL "when" _)) -> pat_cond_26 kl_V1701h@(ApplC (Func "when" _)) -> pat_cond_26 _ -> pat_cond_32 case kl_if_25 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_33 = do do return (Atom (B False)) in case kl_V1701 of !(kl_V1701@(Cons (!kl_V1701h) (!kl_V1701t))) -> pat_cond_24 kl_V1701 kl_V1701h kl_V1701t _ -> pat_cond_33 case kl_if_23 of Atom (B (True)) -> do !appl_34 <- kl_V1701 `pseq` tl kl_V1701 !appl_35 <- appl_34 `pseq` hd appl_34 !appl_36 <- appl_35 `pseq` kl_shen_insert_deref appl_35 let !appl_37 = Atom Nil !appl_38 <- appl_36 `pseq` (appl_37 `pseq` klCons appl_36 appl_37) appl_38 `pseq` klCons (ApplC (wrapNamed "fwhen" kl_fwhen)) appl_38 Atom (B (False)) -> do !kl_if_39 <- let pat_cond_40 kl_V1701 kl_V1701h kl_V1701t = do !kl_if_41 <- let pat_cond_42 = do !kl_if_43 <- let pat_cond_44 kl_V1701t kl_V1701th kl_V1701tt = do !kl_if_45 <- let pat_cond_46 kl_V1701tt kl_V1701tth kl_V1701ttt = do let !appl_47 = Atom Nil !kl_if_48 <- appl_47 `pseq` (kl_V1701ttt `pseq` eq appl_47 kl_V1701ttt) 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_49 = do do return (Atom (B False)) in case kl_V1701tt of !(kl_V1701tt@(Cons (!kl_V1701tth) (!kl_V1701ttt))) -> pat_cond_46 kl_V1701tt kl_V1701tth kl_V1701ttt _ -> pat_cond_49 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_50 = do do return (Atom (B False)) in case kl_V1701t of !(kl_V1701t@(Cons (!kl_V1701th) (!kl_V1701tt))) -> pat_cond_44 kl_V1701t kl_V1701th kl_V1701tt _ -> pat_cond_50 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_51 = do do return (Atom (B False)) in case kl_V1701h of kl_V1701h@(Atom (UnboundSym "bind")) -> pat_cond_42 kl_V1701h@(ApplC (PL "bind" _)) -> pat_cond_42 kl_V1701h@(ApplC (Func "bind" _)) -> pat_cond_42 _ -> pat_cond_51 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_52 = do do return (Atom (B False)) in case kl_V1701 of !(kl_V1701@(Cons (!kl_V1701h) (!kl_V1701t))) -> pat_cond_40 kl_V1701 kl_V1701h kl_V1701t _ -> pat_cond_52 case kl_if_39 of Atom (B (True)) -> do !appl_53 <- kl_V1701 `pseq` tl kl_V1701 !appl_54 <- appl_53 `pseq` hd appl_53 !appl_55 <- kl_V1701 `pseq` tl kl_V1701 !appl_56 <- appl_55 `pseq` tl appl_55 !appl_57 <- appl_56 `pseq` hd appl_56 !appl_58 <- appl_57 `pseq` kl_shen_insert_lazyderef appl_57 let !appl_59 = Atom Nil !appl_60 <- appl_58 `pseq` (appl_59 `pseq` klCons appl_58 appl_59) !appl_61 <- appl_54 `pseq` (appl_60 `pseq` klCons appl_54 appl_60) appl_61 `pseq` klCons (ApplC (wrapNamed "bind" kl_bind)) appl_61 Atom (B (False)) -> do !kl_if_62 <- let pat_cond_63 kl_V1701 kl_V1701h kl_V1701t = do !kl_if_64 <- let pat_cond_65 = do !kl_if_66 <- let pat_cond_67 kl_V1701t kl_V1701th kl_V1701tt = do let !appl_68 = Atom Nil !kl_if_69 <- appl_68 `pseq` (kl_V1701tt `pseq` eq appl_68 kl_V1701tt) case kl_if_69 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_70 = do do return (Atom (B False)) in case kl_V1701t of !(kl_V1701t@(Cons (!kl_V1701th) (!kl_V1701tt))) -> pat_cond_67 kl_V1701t kl_V1701th kl_V1701tt _ -> pat_cond_70 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_71 = do do return (Atom (B False)) in case kl_V1701h of kl_V1701h@(Atom (UnboundSym "fwhen")) -> pat_cond_65 kl_V1701h@(ApplC (PL "fwhen" _)) -> pat_cond_65 kl_V1701h@(ApplC (Func "fwhen" _)) -> pat_cond_65 _ -> pat_cond_71 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_72 = do do return (Atom (B False)) in case kl_V1701 of !(kl_V1701@(Cons (!kl_V1701h) (!kl_V1701t))) -> pat_cond_63 kl_V1701 kl_V1701h kl_V1701t _ -> pat_cond_72 case kl_if_62 of Atom (B (True)) -> do !appl_73 <- kl_V1701 `pseq` tl kl_V1701 !appl_74 <- appl_73 `pseq` hd appl_73 !appl_75 <- appl_74 `pseq` kl_shen_insert_lazyderef appl_74 let !appl_76 = Atom Nil !appl_77 <- appl_75 `pseq` (appl_76 `pseq` klCons appl_75 appl_76) appl_77 `pseq` klCons (ApplC (wrapNamed "fwhen" kl_fwhen)) appl_77 Atom (B (False)) -> do let pat_cond_78 kl_V1701 kl_V1701h kl_V1701t = do return kl_V1701 pat_cond_79 = do do let !aw_80 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_80 [ApplC (wrapNamed "shen.s-prolog_literal" kl_shen_s_prolog_literal)] in case kl_V1701 of !(kl_V1701@(Cons (!kl_V1701h) (!kl_V1701t))) -> pat_cond_78 kl_V1701 kl_V1701h kl_V1701t _ -> pat_cond_79 _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_insert_deref :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_insert_deref (!kl_V1703) = do !kl_if_0 <- kl_V1703 `pseq` kl_variableP kl_V1703 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 "ProcessN")) appl_1 !appl_3 <- kl_V1703 `pseq` (appl_2 `pseq` klCons kl_V1703 appl_2) appl_3 `pseq` klCons (ApplC (wrapNamed "shen.deref" kl_shen_deref)) appl_3 Atom (B (False)) -> do let pat_cond_4 kl_V1703 kl_V1703h kl_V1703t = do !appl_5 <- kl_V1703h `pseq` kl_shen_insert_deref kl_V1703h !appl_6 <- kl_V1703t `pseq` kl_shen_insert_deref kl_V1703t appl_5 `pseq` (appl_6 `pseq` klCons appl_5 appl_6) pat_cond_7 = do do return kl_V1703 in case kl_V1703 of !(kl_V1703@(Cons (!kl_V1703h) (!kl_V1703t))) -> pat_cond_4 kl_V1703 kl_V1703h kl_V1703t _ -> pat_cond_7 _ -> throwError "if: expected boolean" kl_shen_insert_lazyderef :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_insert_lazyderef (!kl_V1705) = do !kl_if_0 <- kl_V1705 `pseq` kl_variableP kl_V1705 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 "ProcessN")) appl_1 !appl_3 <- kl_V1705 `pseq` (appl_2 `pseq` klCons kl_V1705 appl_2) appl_3 `pseq` klCons (ApplC (wrapNamed "shen.lazyderef" kl_shen_lazyderef)) appl_3 Atom (B (False)) -> do let pat_cond_4 kl_V1705 kl_V1705h kl_V1705t = do !appl_5 <- kl_V1705h `pseq` kl_shen_insert_lazyderef kl_V1705h !appl_6 <- kl_V1705t `pseq` kl_shen_insert_lazyderef kl_V1705t appl_5 `pseq` (appl_6 `pseq` klCons appl_5 appl_6) pat_cond_7 = do do return kl_V1705 in case kl_V1705 of !(kl_V1705@(Cons (!kl_V1705h) (!kl_V1705t))) -> pat_cond_4 kl_V1705 kl_V1705h kl_V1705t _ -> pat_cond_7 _ -> throwError "if: expected boolean" kl_shen_group_clauses :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_group_clauses (!kl_V1707) = do let !appl_0 = Atom Nil !kl_if_1 <- appl_0 `pseq` (kl_V1707 `pseq` eq appl_0 kl_V1707) case kl_if_1 of Atom (B (True)) -> do return (Atom Nil) Atom (B (False)) -> do let pat_cond_2 kl_V1707 kl_V1707h kl_V1707t = do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Group) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Rest) -> do !appl_5 <- kl_Rest `pseq` kl_shen_group_clauses kl_Rest kl_Group `pseq` (appl_5 `pseq` klCons kl_Group appl_5)))) !appl_6 <- kl_V1707 `pseq` (kl_Group `pseq` kl_difference kl_V1707 kl_Group) appl_6 `pseq` applyWrapper appl_4 [appl_6]))) let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_V1707h `pseq` (kl_X `pseq` kl_shen_same_predicateP kl_V1707h kl_X)))) !appl_8 <- appl_7 `pseq` (kl_V1707 `pseq` kl_shen_collect appl_7 kl_V1707) appl_8 `pseq` applyWrapper appl_3 [appl_8] pat_cond_9 = do do let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_10 [ApplC (wrapNamed "shen.group_clauses" kl_shen_group_clauses)] in case kl_V1707 of !(kl_V1707@(Cons (!kl_V1707h) (!kl_V1707t))) -> pat_cond_2 kl_V1707 kl_V1707h kl_V1707t _ -> pat_cond_9 _ -> throwError "if: expected boolean" kl_shen_collect :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_collect (!kl_V1712) (!kl_V1713) = do let !appl_0 = Atom Nil !kl_if_1 <- appl_0 `pseq` (kl_V1713 `pseq` eq appl_0 kl_V1713) case kl_if_1 of Atom (B (True)) -> do return (Atom Nil) Atom (B (False)) -> do let pat_cond_2 kl_V1713 kl_V1713h kl_V1713t = do !kl_if_3 <- kl_V1713h `pseq` applyWrapper kl_V1712 [kl_V1713h] case kl_if_3 of Atom (B (True)) -> do !appl_4 <- kl_V1712 `pseq` (kl_V1713t `pseq` kl_shen_collect kl_V1712 kl_V1713t) kl_V1713h `pseq` (appl_4 `pseq` klCons kl_V1713h appl_4) Atom (B (False)) -> do do kl_V1712 `pseq` (kl_V1713t `pseq` kl_shen_collect kl_V1712 kl_V1713t) _ -> throwError "if: expected boolean" pat_cond_5 = do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_6 [ApplC (wrapNamed "shen.collect" kl_shen_collect)] in case kl_V1713 of !(kl_V1713@(Cons (!kl_V1713h) (!kl_V1713t))) -> pat_cond_2 kl_V1713 kl_V1713h kl_V1713t _ -> pat_cond_5 _ -> throwError "if: expected boolean" kl_shen_same_predicateP :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_same_predicateP (!kl_V1732) (!kl_V1733) = do !kl_if_0 <- let pat_cond_1 kl_V1732 kl_V1732h kl_V1732t = do !kl_if_2 <- let pat_cond_3 kl_V1732h kl_V1732hh kl_V1732ht = do let pat_cond_4 kl_V1733 kl_V1733h kl_V1733hh kl_V1733ht kl_V1733t = do return (Atom (B True)) pat_cond_5 = do do return (Atom (B False)) in case kl_V1733 of !(kl_V1733@(Cons (!(kl_V1733h@(Cons (!kl_V1733hh) (!kl_V1733ht)))) (!kl_V1733t))) -> pat_cond_4 kl_V1733 kl_V1733h kl_V1733hh kl_V1733ht kl_V1733t _ -> pat_cond_5 pat_cond_6 = do do return (Atom (B False)) in case kl_V1732h of !(kl_V1732h@(Cons (!kl_V1732hh) (!kl_V1732ht))) -> pat_cond_3 kl_V1732h kl_V1732hh kl_V1732ht _ -> 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_V1732 of !(kl_V1732@(Cons (!kl_V1732h) (!kl_V1732t))) -> pat_cond_1 kl_V1732 kl_V1732h kl_V1732t _ -> pat_cond_7 case kl_if_0 of Atom (B (True)) -> do !appl_8 <- kl_V1732 `pseq` hd kl_V1732 !appl_9 <- appl_8 `pseq` hd appl_8 !appl_10 <- kl_V1733 `pseq` hd kl_V1733 !appl_11 <- appl_10 `pseq` hd appl_10 appl_9 `pseq` (appl_11 `pseq` eq appl_9 appl_11) Atom (B (False)) -> do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_12 [ApplC (wrapNamed "shen.same_predicate?" kl_shen_same_predicateP)] _ -> throwError "if: expected boolean" kl_shen_compile_prolog_procedure :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_compile_prolog_procedure (!kl_V1735) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_F) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Shen) -> do return kl_Shen))) !appl_2 <- kl_F `pseq` (kl_V1735 `pseq` kl_shen_clauses_to_shen kl_F kl_V1735) appl_2 `pseq` applyWrapper appl_1 [appl_2]))) !appl_3 <- kl_V1735 `pseq` kl_shen_procedure_name kl_V1735 appl_3 `pseq` applyWrapper appl_0 [appl_3] kl_shen_procedure_name :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_procedure_name (!kl_V1749) = do let pat_cond_0 kl_V1749 kl_V1749h kl_V1749hh kl_V1749hhh kl_V1749hht kl_V1749ht kl_V1749t = do return kl_V1749hhh pat_cond_1 = do do let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_2 [ApplC (wrapNamed "shen.procedure_name" kl_shen_procedure_name)] in case kl_V1749 of !(kl_V1749@(Cons (!(kl_V1749h@(Cons (!(kl_V1749hh@(Cons (!kl_V1749hhh) (!kl_V1749hht)))) (!kl_V1749ht)))) (!kl_V1749t))) -> pat_cond_0 kl_V1749 kl_V1749h kl_V1749hh kl_V1749hhh kl_V1749hht kl_V1749ht kl_V1749t _ -> pat_cond_1 kl_shen_clauses_to_shen :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_clauses_to_shen (!kl_V1752) (!kl_V1753) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Linear) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Arity) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parameters) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_AUM_instructions) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Code) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_ShenDef) -> do return kl_ShenDef))) let !appl_6 = Atom Nil !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Continuation")) appl_6 !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "ProcessN")) appl_7 let !appl_9 = Atom Nil !appl_10 <- kl_Code `pseq` (appl_9 `pseq` klCons kl_Code appl_9) !appl_11 <- appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_10 !appl_12 <- appl_8 `pseq` (appl_11 `pseq` kl_append appl_8 appl_11) !appl_13 <- kl_Parameters `pseq` (appl_12 `pseq` kl_append kl_Parameters appl_12) !appl_14 <- kl_V1752 `pseq` (appl_13 `pseq` klCons kl_V1752 appl_13) !appl_15 <- appl_14 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "define")) appl_14 appl_15 `pseq` applyWrapper appl_5 [appl_15]))) let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_aum_to_shen kl_X))) !appl_17 <- appl_16 `pseq` (kl_AUM_instructions `pseq` kl_map appl_16 kl_AUM_instructions) !appl_18 <- appl_17 `pseq` kl_shen_nest_disjunct appl_17 !appl_19 <- appl_18 `pseq` kl_shen_catch_cut appl_18 appl_19 `pseq` applyWrapper appl_4 [appl_19]))) let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` (kl_Parameters `pseq` kl_shen_aum kl_X kl_Parameters)))) !appl_21 <- appl_20 `pseq` (kl_Linear `pseq` kl_map appl_20 kl_Linear) appl_21 `pseq` applyWrapper appl_3 [appl_21]))) !appl_22 <- kl_Arity `pseq` kl_shen_parameters kl_Arity appl_22 `pseq` applyWrapper appl_2 [appl_22]))) let !appl_23 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_head kl_X))) !appl_24 <- appl_23 `pseq` (kl_V1753 `pseq` kl_map appl_23 kl_V1753) !appl_25 <- kl_V1752 `pseq` (appl_24 `pseq` kl_shen_prolog_aritycheck kl_V1752 appl_24) appl_25 `pseq` applyWrapper appl_1 [appl_25]))) let !appl_26 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_linearise_clause kl_X))) !appl_27 <- appl_26 `pseq` (kl_V1753 `pseq` kl_map appl_26 kl_V1753) appl_27 `pseq` applyWrapper appl_0 [appl_27] kl_shen_catch_cut :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_catch_cut (!kl_V1755) = do !appl_0 <- kl_V1755 `pseq` kl_shen_occursP (ApplC (wrapNamed "cut" kl_cut)) kl_V1755 !kl_if_1 <- appl_0 `pseq` kl_not appl_0 case kl_if_1 of Atom (B (True)) -> do return kl_V1755 Atom (B (False)) -> do do let !appl_2 = Atom Nil !appl_3 <- appl_2 `pseq` klCons (ApplC (PL "shen.catchpoint" kl_shen_catchpoint)) appl_2 let !appl_4 = Atom Nil !appl_5 <- kl_V1755 `pseq` (appl_4 `pseq` klCons kl_V1755 appl_4) !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Throwcontrol")) appl_5 !appl_7 <- appl_6 `pseq` klCons (ApplC (wrapNamed "shen.cutpoint" kl_shen_cutpoint)) appl_6 let !appl_8 = Atom Nil !appl_9 <- appl_7 `pseq` (appl_8 `pseq` klCons appl_7 appl_8) !appl_10 <- appl_3 `pseq` (appl_9 `pseq` klCons appl_3 appl_9) !appl_11 <- appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Throwcontrol")) appl_10 appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_11 _ -> throwError "if: expected boolean" kl_shen_catchpoint :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_catchpoint = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*catch*")) !appl_1 <- appl_0 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_0 appl_1 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*catch*")) appl_1 kl_shen_cutpoint :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_cutpoint (!kl_V1763) (!kl_V1764) = do !kl_if_0 <- kl_V1764 `pseq` (kl_V1763 `pseq` eq kl_V1764 kl_V1763) case kl_if_0 of Atom (B (True)) -> do return (Atom (B False)) Atom (B (False)) -> do do return kl_V1764 _ -> throwError "if: expected boolean" kl_shen_nest_disjunct :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_nest_disjunct (!kl_V1766) = do !kl_if_0 <- let pat_cond_1 kl_V1766 kl_V1766h kl_V1766t = do let !appl_2 = Atom Nil !kl_if_3 <- appl_2 `pseq` (kl_V1766t `pseq` eq appl_2 kl_V1766t) 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_V1766 of !(kl_V1766@(Cons (!kl_V1766h) (!kl_V1766t))) -> pat_cond_1 kl_V1766 kl_V1766h kl_V1766t _ -> pat_cond_4 case kl_if_0 of Atom (B (True)) -> do kl_V1766 `pseq` hd kl_V1766 Atom (B (False)) -> do let pat_cond_5 kl_V1766 kl_V1766h kl_V1766t = do !appl_6 <- kl_V1766t `pseq` kl_shen_nest_disjunct kl_V1766t kl_V1766h `pseq` (appl_6 `pseq` kl_shen_lisp_or kl_V1766h 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.nest-disjunct" kl_shen_nest_disjunct)] in case kl_V1766 of !(kl_V1766@(Cons (!kl_V1766h) (!kl_V1766t))) -> pat_cond_5 kl_V1766 kl_V1766h kl_V1766t _ -> pat_cond_7 _ -> throwError "if: expected boolean" kl_shen_lisp_or :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_lisp_or (!kl_V1769) (!kl_V1770) = do let !appl_0 = Atom Nil !appl_1 <- appl_0 `pseq` klCons (Atom (B False)) appl_0 !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Case")) appl_1 !appl_3 <- appl_2 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_2 let !appl_4 = Atom Nil !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Case")) appl_4 !appl_6 <- kl_V1770 `pseq` (appl_5 `pseq` klCons kl_V1770 appl_5) !appl_7 <- appl_3 `pseq` (appl_6 `pseq` klCons appl_3 appl_6) !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_7 let !appl_9 = Atom Nil !appl_10 <- appl_8 `pseq` (appl_9 `pseq` klCons appl_8 appl_9) !appl_11 <- kl_V1769 `pseq` (appl_10 `pseq` klCons kl_V1769 appl_10) !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Case")) appl_11 appl_12 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_12 kl_shen_prolog_aritycheck :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_prolog_aritycheck (!kl_V1775) (!kl_V1776) = do !kl_if_0 <- let pat_cond_1 kl_V1776 kl_V1776h kl_V1776t = do let !appl_2 = Atom Nil !kl_if_3 <- appl_2 `pseq` (kl_V1776t `pseq` eq appl_2 kl_V1776t) 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_V1776 of !(kl_V1776@(Cons (!kl_V1776h) (!kl_V1776t))) -> pat_cond_1 kl_V1776 kl_V1776h kl_V1776t _ -> pat_cond_4 case kl_if_0 of Atom (B (True)) -> do !appl_5 <- kl_V1776 `pseq` hd kl_V1776 !appl_6 <- appl_5 `pseq` kl_length appl_5 appl_6 `pseq` Primitives.subtract appl_6 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) Atom (B (False)) -> do let pat_cond_7 kl_V1776 kl_V1776h kl_V1776t kl_V1776th kl_V1776tt = do !appl_8 <- kl_V1776h `pseq` kl_length kl_V1776h !appl_9 <- kl_V1776th `pseq` kl_length kl_V1776th !kl_if_10 <- appl_8 `pseq` (appl_9 `pseq` eq appl_8 appl_9) case kl_if_10 of Atom (B (True)) -> do kl_V1775 `pseq` (kl_V1776t `pseq` kl_shen_prolog_aritycheck kl_V1775 kl_V1776t) Atom (B (False)) -> do do let !appl_11 = Atom Nil !appl_12 <- kl_V1775 `pseq` (appl_11 `pseq` klCons kl_V1775 appl_11) let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "shen.app") !appl_14 <- appl_12 `pseq` applyWrapper aw_13 [appl_12, Core.Types.Atom (Core.Types.Str "\n"), Core.Types.Atom (Core.Types.UnboundSym "shen.a")] !appl_15 <- appl_14 `pseq` cn (Core.Types.Atom (Core.Types.Str "arity error in prolog procedure ")) appl_14 appl_15 `pseq` simpleError appl_15 _ -> throwError "if: expected boolean" pat_cond_16 = do do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_17 [ApplC (wrapNamed "shen.prolog-aritycheck" kl_shen_prolog_aritycheck)] in case kl_V1776 of !(kl_V1776@(Cons (!kl_V1776h) (!(kl_V1776t@(Cons (!kl_V1776th) (!kl_V1776tt)))))) -> pat_cond_7 kl_V1776 kl_V1776h kl_V1776t kl_V1776th kl_V1776tt _ -> pat_cond_16 _ -> throwError "if: expected boolean" kl_shen_linearise_clause :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_linearise_clause (!kl_V1778) = do !kl_if_0 <- let pat_cond_1 kl_V1778 kl_V1778h kl_V1778t = do !kl_if_2 <- let pat_cond_3 kl_V1778t kl_V1778th kl_V1778tt = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1778tt kl_V1778tth kl_V1778ttt = do let !appl_8 = Atom Nil !kl_if_9 <- appl_8 `pseq` (kl_V1778ttt `pseq` eq appl_8 kl_V1778ttt) 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_V1778tt of !(kl_V1778tt@(Cons (!kl_V1778tth) (!kl_V1778ttt))) -> pat_cond_7 kl_V1778tt kl_V1778tth kl_V1778ttt _ -> 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_V1778th of kl_V1778th@(Atom (UnboundSym ":-")) -> pat_cond_5 kl_V1778th@(ApplC (PL ":-" _)) -> pat_cond_5 kl_V1778th@(ApplC (Func ":-" _)) -> pat_cond_5 _ -> pat_cond_11 case kl_if_4 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_12 = do do return (Atom (B False)) in case kl_V1778t of !(kl_V1778t@(Cons (!kl_V1778th) (!kl_V1778tt))) -> pat_cond_3 kl_V1778t kl_V1778th kl_V1778tt _ -> 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_V1778 of !(kl_V1778@(Cons (!kl_V1778h) (!kl_V1778t))) -> pat_cond_1 kl_V1778 kl_V1778h kl_V1778t _ -> pat_cond_13 case kl_if_0 of Atom (B (True)) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Linear) -> do kl_Linear `pseq` kl_shen_clause_form kl_Linear))) !appl_15 <- kl_V1778 `pseq` hd kl_V1778 !appl_16 <- kl_V1778 `pseq` tl kl_V1778 !appl_17 <- appl_16 `pseq` tl appl_16 !appl_18 <- appl_15 `pseq` (appl_17 `pseq` klCons appl_15 appl_17) !appl_19 <- appl_18 `pseq` kl_shen_linearise appl_18 appl_19 `pseq` applyWrapper appl_14 [appl_19] Atom (B (False)) -> do do let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_20 [ApplC (wrapNamed "shen.linearise-clause" kl_shen_linearise_clause)] _ -> throwError "if: expected boolean" kl_shen_clause_form :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_clause_form (!kl_V1780) = do !kl_if_0 <- let pat_cond_1 kl_V1780 kl_V1780h kl_V1780t = do !kl_if_2 <- let pat_cond_3 kl_V1780t kl_V1780th kl_V1780tt = do let !appl_4 = Atom Nil !kl_if_5 <- appl_4 `pseq` (kl_V1780tt `pseq` eq appl_4 kl_V1780tt) 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_V1780t of !(kl_V1780t@(Cons (!kl_V1780th) (!kl_V1780tt))) -> pat_cond_3 kl_V1780t kl_V1780th kl_V1780tt _ -> 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_V1780 of !(kl_V1780@(Cons (!kl_V1780h) (!kl_V1780t))) -> pat_cond_1 kl_V1780 kl_V1780h kl_V1780t _ -> pat_cond_7 case kl_if_0 of Atom (B (True)) -> do !appl_8 <- kl_V1780 `pseq` hd kl_V1780 !appl_9 <- appl_8 `pseq` kl_shen_explicit_modes appl_8 !appl_10 <- kl_V1780 `pseq` tl kl_V1780 !appl_11 <- appl_10 `pseq` hd appl_10 !appl_12 <- appl_11 `pseq` kl_shen_cf_help appl_11 let !appl_13 = Atom Nil !appl_14 <- appl_12 `pseq` (appl_13 `pseq` klCons appl_12 appl_13) !appl_15 <- appl_14 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":-")) appl_14 appl_9 `pseq` (appl_15 `pseq` klCons appl_9 appl_15) Atom (B (False)) -> do do let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_16 [ApplC (wrapNamed "shen.clause_form" kl_shen_clause_form)] _ -> throwError "if: expected boolean" kl_shen_explicit_modes :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_explicit_modes (!kl_V1782) = do let pat_cond_0 kl_V1782 kl_V1782h kl_V1782t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_em_help kl_X))) !appl_2 <- appl_1 `pseq` (kl_V1782t `pseq` kl_map appl_1 kl_V1782t) kl_V1782h `pseq` (appl_2 `pseq` klCons kl_V1782h appl_2) pat_cond_3 = do do let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_4 [ApplC (wrapNamed "shen.explicit_modes" kl_shen_explicit_modes)] in case kl_V1782 of !(kl_V1782@(Cons (!kl_V1782h) (!kl_V1782t))) -> pat_cond_0 kl_V1782 kl_V1782h kl_V1782t _ -> pat_cond_3 kl_shen_em_help :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_em_help (!kl_V1784) = do !kl_if_0 <- let pat_cond_1 kl_V1784 kl_V1784h kl_V1784t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1784t kl_V1784th kl_V1784tt = do !kl_if_6 <- let pat_cond_7 kl_V1784tt kl_V1784tth kl_V1784ttt = do let !appl_8 = Atom Nil !kl_if_9 <- appl_8 `pseq` (kl_V1784ttt `pseq` eq appl_8 kl_V1784ttt) 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_V1784tt of !(kl_V1784tt@(Cons (!kl_V1784tth) (!kl_V1784ttt))) -> pat_cond_7 kl_V1784tt kl_V1784tth kl_V1784ttt _ -> 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_V1784t of !(kl_V1784t@(Cons (!kl_V1784th) (!kl_V1784tt))) -> pat_cond_5 kl_V1784t kl_V1784th kl_V1784tt _ -> 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_V1784h of kl_V1784h@(Atom (UnboundSym "mode")) -> pat_cond_3 kl_V1784h@(ApplC (PL "mode" _)) -> pat_cond_3 kl_V1784h@(ApplC (Func "mode" _)) -> pat_cond_3 _ -> pat_cond_12 case kl_if_2 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_13 = do do return (Atom (B False)) in case kl_V1784 of !(kl_V1784@(Cons (!kl_V1784h) (!kl_V1784t))) -> pat_cond_1 kl_V1784 kl_V1784h kl_V1784t _ -> pat_cond_13 case kl_if_0 of Atom (B (True)) -> do return kl_V1784 Atom (B (False)) -> do do let !appl_14 = Atom Nil !appl_15 <- appl_14 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_14 !appl_16 <- kl_V1784 `pseq` (appl_15 `pseq` klCons kl_V1784 appl_15) appl_16 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_16 _ -> throwError "if: expected boolean" kl_shen_cf_help :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_cf_help (!kl_V1786) = do !kl_if_0 <- let pat_cond_1 kl_V1786 kl_V1786h kl_V1786t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1786t kl_V1786th kl_V1786tt = do !kl_if_6 <- let pat_cond_7 kl_V1786th kl_V1786thh kl_V1786tht = do !kl_if_8 <- let pat_cond_9 = do !kl_if_10 <- let pat_cond_11 kl_V1786tht kl_V1786thth kl_V1786thtt = do !kl_if_12 <- let pat_cond_13 kl_V1786thtt kl_V1786thtth kl_V1786thttt = do let !appl_14 = Atom Nil !kl_if_15 <- appl_14 `pseq` (kl_V1786thttt `pseq` eq appl_14 kl_V1786thttt) !kl_if_16 <- case kl_if_15 of Atom (B (True)) -> do !kl_if_17 <- let pat_cond_18 kl_V1786tt kl_V1786tth kl_V1786ttt = do let !appl_19 = Atom Nil !kl_if_20 <- appl_19 `pseq` (kl_V1786ttt `pseq` eq appl_19 kl_V1786ttt) 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_21 = do do return (Atom (B False)) in case kl_V1786tt of !(kl_V1786tt@(Cons (!kl_V1786tth) (!kl_V1786ttt))) -> pat_cond_18 kl_V1786tt kl_V1786tth kl_V1786ttt _ -> pat_cond_21 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_16 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_22 = do do return (Atom (B False)) in case kl_V1786thtt of !(kl_V1786thtt@(Cons (!kl_V1786thtth) (!kl_V1786thttt))) -> pat_cond_13 kl_V1786thtt kl_V1786thtth kl_V1786thttt _ -> pat_cond_22 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_23 = do do return (Atom (B False)) in case kl_V1786tht of !(kl_V1786tht@(Cons (!kl_V1786thth) (!kl_V1786thtt))) -> pat_cond_11 kl_V1786tht kl_V1786thth kl_V1786thtt _ -> pat_cond_23 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_24 = do do return (Atom (B False)) in case kl_V1786thh of kl_V1786thh@(Atom (UnboundSym "=")) -> pat_cond_9 kl_V1786thh@(ApplC (PL "=" _)) -> pat_cond_9 kl_V1786thh@(ApplC (Func "=" _)) -> pat_cond_9 _ -> pat_cond_24 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_25 = do do return (Atom (B False)) in case kl_V1786th of !(kl_V1786th@(Cons (!kl_V1786thh) (!kl_V1786tht))) -> pat_cond_7 kl_V1786th kl_V1786thh kl_V1786tht _ -> pat_cond_25 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_26 = do do return (Atom (B False)) in case kl_V1786t of !(kl_V1786t@(Cons (!kl_V1786th) (!kl_V1786tt))) -> pat_cond_5 kl_V1786t kl_V1786th kl_V1786tt _ -> pat_cond_26 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_27 = do do return (Atom (B False)) in case kl_V1786h of kl_V1786h@(Atom (UnboundSym "where")) -> pat_cond_3 kl_V1786h@(ApplC (PL "where" _)) -> pat_cond_3 kl_V1786h@(ApplC (Func "where" _)) -> pat_cond_3 _ -> pat_cond_27 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_28 = do do return (Atom (B False)) in case kl_V1786 of !(kl_V1786@(Cons (!kl_V1786h) (!kl_V1786t))) -> pat_cond_1 kl_V1786 kl_V1786h kl_V1786t _ -> pat_cond_28 case kl_if_0 of Atom (B (True)) -> do !kl_if_29 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*occurs*")) !appl_30 <- case kl_if_29 of Atom (B (True)) -> do return (ApplC (wrapNamed "unify!" kl_unifyExcl)) Atom (B (False)) -> do do return (ApplC (wrapNamed "unify" kl_unify)) _ -> throwError "if: expected boolean" !appl_31 <- kl_V1786 `pseq` tl kl_V1786 !appl_32 <- appl_31 `pseq` hd appl_31 !appl_33 <- appl_32 `pseq` tl appl_32 !appl_34 <- appl_30 `pseq` (appl_33 `pseq` klCons appl_30 appl_33) !appl_35 <- kl_V1786 `pseq` tl kl_V1786 !appl_36 <- appl_35 `pseq` tl appl_35 !appl_37 <- appl_36 `pseq` hd appl_36 !appl_38 <- appl_37 `pseq` kl_shen_cf_help appl_37 appl_34 `pseq` (appl_38 `pseq` klCons appl_34 appl_38) Atom (B (False)) -> do do return kl_V1786 _ -> throwError "if: expected boolean" kl_occurs_check :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_occurs_check (!kl_V1792) = do let pat_cond_0 = do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*occurs*")) (Atom (B True)) pat_cond_1 = do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*occurs*")) (Atom (B False)) pat_cond_2 = do do simpleError (Core.Types.Atom (Core.Types.Str "occurs-check expects + or -\n")) in case kl_V1792 of kl_V1792@(Atom (UnboundSym "+")) -> pat_cond_0 kl_V1792@(ApplC (PL "+" _)) -> pat_cond_0 kl_V1792@(ApplC (Func "+" _)) -> pat_cond_0 kl_V1792@(Atom (UnboundSym "-")) -> pat_cond_1 kl_V1792@(ApplC (PL "-" _)) -> pat_cond_1 kl_V1792@(ApplC (Func "-" _)) -> pat_cond_1 _ -> pat_cond_2 kl_shen_aum :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_aum (!kl_V1795) (!kl_V1796) = do !kl_if_0 <- let pat_cond_1 kl_V1795 kl_V1795h kl_V1795t = do !kl_if_2 <- let pat_cond_3 kl_V1795h kl_V1795hh kl_V1795ht = do !kl_if_4 <- let pat_cond_5 kl_V1795t kl_V1795th kl_V1795tt = do !kl_if_6 <- let pat_cond_7 = do !kl_if_8 <- let pat_cond_9 kl_V1795tt kl_V1795tth kl_V1795ttt = do let !appl_10 = Atom Nil !kl_if_11 <- appl_10 `pseq` (kl_V1795ttt `pseq` eq appl_10 kl_V1795ttt) 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_V1795tt of !(kl_V1795tt@(Cons (!kl_V1795tth) (!kl_V1795ttt))) -> pat_cond_9 kl_V1795tt kl_V1795tth kl_V1795ttt _ -> 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_V1795th of kl_V1795th@(Atom (UnboundSym ":-")) -> pat_cond_7 kl_V1795th@(ApplC (PL ":-" _)) -> pat_cond_7 kl_V1795th@(ApplC (Func ":-" _)) -> pat_cond_7 _ -> pat_cond_13 case kl_if_6 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_14 = do do return (Atom (B False)) in case kl_V1795t of !(kl_V1795t@(Cons (!kl_V1795th) (!kl_V1795tt))) -> pat_cond_5 kl_V1795t kl_V1795th kl_V1795tt _ -> 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_V1795h of !(kl_V1795h@(Cons (!kl_V1795hh) (!kl_V1795ht))) -> pat_cond_3 kl_V1795h kl_V1795hh kl_V1795ht _ -> 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_V1795 of !(kl_V1795@(Cons (!kl_V1795h) (!kl_V1795t))) -> pat_cond_1 kl_V1795 kl_V1795h kl_V1795t _ -> pat_cond_16 case kl_if_0 of Atom (B (True)) -> do let !appl_17 = ApplC (Func "lambda" (Context (\(!kl_MuApplication) -> do kl_MuApplication `pseq` kl_shen_mu_reduction kl_MuApplication (ApplC (wrapNamed "+" add))))) !appl_18 <- kl_V1795 `pseq` hd kl_V1795 !appl_19 <- appl_18 `pseq` tl appl_18 !appl_20 <- kl_V1795 `pseq` hd kl_V1795 !appl_21 <- appl_20 `pseq` tl appl_20 !appl_22 <- kl_V1795 `pseq` tl kl_V1795 !appl_23 <- appl_22 `pseq` tl appl_22 !appl_24 <- appl_23 `pseq` hd appl_23 !appl_25 <- appl_21 `pseq` (appl_24 `pseq` kl_shen_continuation_call appl_21 appl_24) let !appl_26 = Atom Nil !appl_27 <- appl_25 `pseq` (appl_26 `pseq` klCons appl_25 appl_26) !appl_28 <- appl_19 `pseq` (appl_27 `pseq` klCons appl_19 appl_27) !appl_29 <- appl_28 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.mu")) appl_28 !appl_30 <- appl_29 `pseq` (kl_V1796 `pseq` kl_shen_make_mu_application appl_29 kl_V1796) appl_30 `pseq` applyWrapper appl_17 [appl_30] Atom (B (False)) -> do do let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_31 [ApplC (wrapNamed "shen.aum" kl_shen_aum)] _ -> throwError "if: expected boolean" kl_shen_continuation_call :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_continuation_call (!kl_V1799) (!kl_V1800) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_VTerms) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_VBody) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Free) -> do kl_Free `pseq` (kl_V1800 `pseq` kl_shen_cc_help kl_Free kl_V1800)))) !appl_3 <- kl_VBody `pseq` (kl_VTerms `pseq` kl_difference kl_VBody kl_VTerms) !appl_4 <- appl_3 `pseq` kl_remove (Core.Types.Atom (Core.Types.UnboundSym "Throwcontrol")) appl_3 appl_4 `pseq` applyWrapper appl_2 [appl_4]))) !appl_5 <- kl_V1800 `pseq` kl_shen_extract_vars kl_V1800 appl_5 `pseq` applyWrapper appl_1 [appl_5]))) !appl_6 <- kl_V1799 `pseq` kl_shen_extract_vars kl_V1799 !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "ProcessN")) appl_6 appl_7 `pseq` applyWrapper appl_0 [appl_7] kl_remove :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_remove (!kl_V1803) (!kl_V1804) = do let !appl_0 = Atom Nil kl_V1803 `pseq` (kl_V1804 `pseq` (appl_0 `pseq` kl_shen_remove_h kl_V1803 kl_V1804 appl_0)) kl_shen_remove_h :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_remove_h (!kl_V1811) (!kl_V1812) (!kl_V1813) = do let !appl_0 = Atom Nil !kl_if_1 <- appl_0 `pseq` (kl_V1812 `pseq` eq appl_0 kl_V1812) case kl_if_1 of Atom (B (True)) -> do kl_V1813 `pseq` kl_reverse kl_V1813 Atom (B (False)) -> do let pat_cond_2 kl_V1812 kl_V1812h kl_V1812t = do kl_V1812h `pseq` (kl_V1812t `pseq` (kl_V1813 `pseq` kl_shen_remove_h kl_V1812h kl_V1812t kl_V1813)) pat_cond_3 kl_V1812 kl_V1812h kl_V1812t = do !appl_4 <- kl_V1812h `pseq` (kl_V1813 `pseq` klCons kl_V1812h kl_V1813) kl_V1811 `pseq` (kl_V1812t `pseq` (appl_4 `pseq` kl_shen_remove_h kl_V1811 kl_V1812t appl_4)) pat_cond_5 = do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_6 [ApplC (wrapNamed "shen.remove-h" kl_shen_remove_h)] in case kl_V1812 of !(kl_V1812@(Cons (!kl_V1812h) (!kl_V1812t))) | eqCore kl_V1812h kl_V1811 -> pat_cond_2 kl_V1812 kl_V1812h kl_V1812t !(kl_V1812@(Cons (!kl_V1812h) (!kl_V1812t))) -> pat_cond_3 kl_V1812 kl_V1812h kl_V1812t _ -> pat_cond_5 _ -> throwError "if: expected boolean" kl_shen_cc_help :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_cc_help (!kl_V1816) (!kl_V1817) = do let !appl_0 = Atom Nil !kl_if_1 <- appl_0 `pseq` (kl_V1816 `pseq` eq appl_0 kl_V1816) !kl_if_2 <- case kl_if_1 of Atom (B (True)) -> do let !appl_3 = Atom Nil !kl_if_4 <- appl_3 `pseq` (kl_V1817 `pseq` eq appl_3 kl_V1817) case kl_if_4 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_2 of Atom (B (True)) -> do let !appl_5 = Atom Nil !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.stack")) appl_5 !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_6 appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.pop")) appl_7 Atom (B (False)) -> do let !appl_8 = Atom Nil !kl_if_9 <- appl_8 `pseq` (kl_V1817 `pseq` eq appl_8 kl_V1817) 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 "shen.stack")) appl_10 !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_11 !appl_13 <- appl_12 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.pop")) appl_12 let !appl_14 = Atom Nil !appl_15 <- appl_13 `pseq` (appl_14 `pseq` klCons appl_13 appl_14) !appl_16 <- appl_15 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.then")) appl_15 !appl_17 <- appl_16 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "and")) appl_16 !appl_18 <- kl_V1816 `pseq` (appl_17 `pseq` klCons kl_V1816 appl_17) !appl_19 <- appl_18 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_18 !appl_20 <- appl_19 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.variables")) appl_19 !appl_21 <- appl_20 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_20 appl_21 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.rename")) appl_21 Atom (B (False)) -> do let !appl_22 = Atom Nil !kl_if_23 <- appl_22 `pseq` (kl_V1816 `pseq` eq appl_22 kl_V1816) case kl_if_23 of Atom (B (True)) -> do let !appl_24 = Atom Nil !appl_25 <- kl_V1817 `pseq` (appl_24 `pseq` klCons kl_V1817 appl_24) !appl_26 <- appl_25 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.continuation")) appl_25 !appl_27 <- appl_26 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_26 appl_27 `pseq` klCons (ApplC (wrapNamed "call" kl_call)) appl_27 Atom (B (False)) -> do do let !appl_28 = Atom Nil !appl_29 <- kl_V1817 `pseq` (appl_28 `pseq` klCons kl_V1817 appl_28) !appl_30 <- appl_29 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.continuation")) appl_29 !appl_31 <- appl_30 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_30 !appl_32 <- appl_31 `pseq` klCons (ApplC (wrapNamed "call" kl_call)) appl_31 let !appl_33 = Atom Nil !appl_34 <- appl_32 `pseq` (appl_33 `pseq` klCons appl_32 appl_33) !appl_35 <- appl_34 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.then")) appl_34 !appl_36 <- appl_35 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "and")) appl_35 !appl_37 <- kl_V1816 `pseq` (appl_36 `pseq` klCons kl_V1816 appl_36) !appl_38 <- appl_37 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_37 !appl_39 <- appl_38 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.variables")) appl_38 !appl_40 <- appl_39 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_39 appl_40 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.rename")) appl_40 _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_make_mu_application :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_make_mu_application (!kl_V1820) (!kl_V1821) = do !kl_if_0 <- let pat_cond_1 kl_V1820 kl_V1820h kl_V1820t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1820t kl_V1820th kl_V1820tt = do let !appl_6 = Atom Nil !kl_if_7 <- appl_6 `pseq` (kl_V1820th `pseq` eq appl_6 kl_V1820th) !kl_if_8 <- case kl_if_7 of Atom (B (True)) -> do !kl_if_9 <- let pat_cond_10 kl_V1820tt kl_V1820tth kl_V1820ttt = do let !appl_11 = Atom Nil !kl_if_12 <- appl_11 `pseq` (kl_V1820ttt `pseq` eq appl_11 kl_V1820ttt) !kl_if_13 <- case kl_if_12 of Atom (B (True)) -> do let !appl_14 = Atom Nil !kl_if_15 <- appl_14 `pseq` (kl_V1821 `pseq` eq appl_14 kl_V1821) case kl_if_15 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_13 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_16 = do do return (Atom (B False)) in case kl_V1820tt of !(kl_V1820tt@(Cons (!kl_V1820tth) (!kl_V1820ttt))) -> pat_cond_10 kl_V1820tt kl_V1820tth kl_V1820ttt _ -> pat_cond_16 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_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_17 = do do return (Atom (B False)) in case kl_V1820t of !(kl_V1820t@(Cons (!kl_V1820th) (!kl_V1820tt))) -> pat_cond_5 kl_V1820t kl_V1820th kl_V1820tt _ -> pat_cond_17 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_18 = do do return (Atom (B False)) in case kl_V1820h of kl_V1820h@(Atom (UnboundSym "shen.mu")) -> pat_cond_3 kl_V1820h@(ApplC (PL "shen.mu" _)) -> pat_cond_3 kl_V1820h@(ApplC (Func "shen.mu" _)) -> pat_cond_3 _ -> pat_cond_18 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_19 = do do return (Atom (B False)) in case kl_V1820 of !(kl_V1820@(Cons (!kl_V1820h) (!kl_V1820t))) -> pat_cond_1 kl_V1820 kl_V1820h kl_V1820t _ -> pat_cond_19 case kl_if_0 of Atom (B (True)) -> do !appl_20 <- kl_V1820 `pseq` tl kl_V1820 !appl_21 <- appl_20 `pseq` tl appl_20 appl_21 `pseq` hd appl_21 Atom (B (False)) -> do !kl_if_22 <- let pat_cond_23 kl_V1820 kl_V1820h kl_V1820t = do !kl_if_24 <- let pat_cond_25 = do !kl_if_26 <- let pat_cond_27 kl_V1820t kl_V1820th kl_V1820tt = do !kl_if_28 <- let pat_cond_29 kl_V1820th kl_V1820thh kl_V1820tht = do !kl_if_30 <- let pat_cond_31 kl_V1820tt kl_V1820tth kl_V1820ttt = do let !appl_32 = Atom Nil !kl_if_33 <- appl_32 `pseq` (kl_V1820ttt `pseq` eq appl_32 kl_V1820ttt) !kl_if_34 <- case kl_if_33 of Atom (B (True)) -> do let pat_cond_35 kl_V1821 kl_V1821h kl_V1821t = do return (Atom (B True)) pat_cond_36 = do do return (Atom (B False)) in case kl_V1821 of !(kl_V1821@(Cons (!kl_V1821h) (!kl_V1821t))) -> pat_cond_35 kl_V1821 kl_V1821h kl_V1821t _ -> pat_cond_36 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_37 = do do return (Atom (B False)) in case kl_V1820tt of !(kl_V1820tt@(Cons (!kl_V1820tth) (!kl_V1820ttt))) -> pat_cond_31 kl_V1820tt kl_V1820tth kl_V1820ttt _ -> pat_cond_37 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_38 = do do return (Atom (B False)) in case kl_V1820th of !(kl_V1820th@(Cons (!kl_V1820thh) (!kl_V1820tht))) -> pat_cond_29 kl_V1820th kl_V1820thh kl_V1820tht _ -> pat_cond_38 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_39 = do do return (Atom (B False)) in case kl_V1820t of !(kl_V1820t@(Cons (!kl_V1820th) (!kl_V1820tt))) -> pat_cond_27 kl_V1820t kl_V1820th kl_V1820tt _ -> pat_cond_39 case kl_if_26 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_40 = do do return (Atom (B False)) in case kl_V1820h of kl_V1820h@(Atom (UnboundSym "shen.mu")) -> pat_cond_25 kl_V1820h@(ApplC (PL "shen.mu" _)) -> pat_cond_25 kl_V1820h@(ApplC (Func "shen.mu" _)) -> pat_cond_25 _ -> pat_cond_40 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_41 = do do return (Atom (B False)) in case kl_V1820 of !(kl_V1820@(Cons (!kl_V1820h) (!kl_V1820t))) -> pat_cond_23 kl_V1820 kl_V1820h kl_V1820t _ -> pat_cond_41 case kl_if_22 of Atom (B (True)) -> do !appl_42 <- kl_V1820 `pseq` tl kl_V1820 !appl_43 <- appl_42 `pseq` hd appl_42 !appl_44 <- appl_43 `pseq` hd appl_43 !appl_45 <- kl_V1820 `pseq` tl kl_V1820 !appl_46 <- appl_45 `pseq` hd appl_45 !appl_47 <- appl_46 `pseq` tl appl_46 !appl_48 <- kl_V1820 `pseq` tl kl_V1820 !appl_49 <- appl_48 `pseq` tl appl_48 !appl_50 <- appl_47 `pseq` (appl_49 `pseq` klCons appl_47 appl_49) !appl_51 <- appl_50 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.mu")) appl_50 !appl_52 <- kl_V1821 `pseq` tl kl_V1821 !appl_53 <- appl_51 `pseq` (appl_52 `pseq` kl_shen_make_mu_application appl_51 appl_52) let !appl_54 = Atom Nil !appl_55 <- appl_53 `pseq` (appl_54 `pseq` klCons appl_53 appl_54) !appl_56 <- appl_44 `pseq` (appl_55 `pseq` klCons appl_44 appl_55) !appl_57 <- appl_56 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.mu")) appl_56 !appl_58 <- kl_V1821 `pseq` hd kl_V1821 let !appl_59 = Atom Nil !appl_60 <- appl_58 `pseq` (appl_59 `pseq` klCons appl_58 appl_59) appl_57 `pseq` (appl_60 `pseq` klCons appl_57 appl_60) Atom (B (False)) -> do do let !aw_61 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_61 [ApplC (wrapNamed "shen.make_mu_application" kl_shen_make_mu_application)] _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_mu_reduction :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_mu_reduction (!kl_V1830) (!kl_V1831) = do !kl_if_0 <- let pat_cond_1 kl_V1830 kl_V1830h kl_V1830t = do !kl_if_2 <- let pat_cond_3 kl_V1830h kl_V1830hh kl_V1830ht = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1830ht kl_V1830hth kl_V1830htt = do !kl_if_8 <- let pat_cond_9 kl_V1830hth kl_V1830hthh kl_V1830htht = do !kl_if_10 <- let pat_cond_11 = do !kl_if_12 <- let pat_cond_13 kl_V1830htht kl_V1830hthth kl_V1830hthtt = do !kl_if_14 <- let pat_cond_15 kl_V1830hthtt kl_V1830hthtth kl_V1830hthttt = do let !appl_16 = Atom Nil !kl_if_17 <- appl_16 `pseq` (kl_V1830hthttt `pseq` eq appl_16 kl_V1830hthttt) !kl_if_18 <- case kl_if_17 of Atom (B (True)) -> do !kl_if_19 <- let pat_cond_20 kl_V1830htt kl_V1830htth kl_V1830httt = do let !appl_21 = Atom Nil !kl_if_22 <- appl_21 `pseq` (kl_V1830httt `pseq` eq appl_21 kl_V1830httt) !kl_if_23 <- case kl_if_22 of Atom (B (True)) -> do !kl_if_24 <- let pat_cond_25 kl_V1830t kl_V1830th kl_V1830tt = do let !appl_26 = Atom Nil !kl_if_27 <- appl_26 `pseq` (kl_V1830tt `pseq` eq appl_26 kl_V1830tt) 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_V1830t of !(kl_V1830t@(Cons (!kl_V1830th) (!kl_V1830tt))) -> pat_cond_25 kl_V1830t kl_V1830th kl_V1830tt _ -> 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_V1830htt of !(kl_V1830htt@(Cons (!kl_V1830htth) (!kl_V1830httt))) -> pat_cond_20 kl_V1830htt kl_V1830htth kl_V1830httt _ -> 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_V1830hthtt of !(kl_V1830hthtt@(Cons (!kl_V1830hthtth) (!kl_V1830hthttt))) -> pat_cond_15 kl_V1830hthtt kl_V1830hthtth kl_V1830hthttt _ -> 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_V1830htht of !(kl_V1830htht@(Cons (!kl_V1830hthth) (!kl_V1830hthtt))) -> pat_cond_13 kl_V1830htht kl_V1830hthth kl_V1830hthtt _ -> 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_V1830hthh of kl_V1830hthh@(Atom (UnboundSym "mode")) -> pat_cond_11 kl_V1830hthh@(ApplC (PL "mode" _)) -> pat_cond_11 kl_V1830hthh@(ApplC (Func "mode" _)) -> 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_V1830hth of !(kl_V1830hth@(Cons (!kl_V1830hthh) (!kl_V1830htht))) -> pat_cond_9 kl_V1830hth kl_V1830hthh kl_V1830htht _ -> 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_V1830ht of !(kl_V1830ht@(Cons (!kl_V1830hth) (!kl_V1830htt))) -> pat_cond_7 kl_V1830ht kl_V1830hth kl_V1830htt _ -> 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_V1830hh of kl_V1830hh@(Atom (UnboundSym "shen.mu")) -> pat_cond_5 kl_V1830hh@(ApplC (PL "shen.mu" _)) -> pat_cond_5 kl_V1830hh@(ApplC (Func "shen.mu" _)) -> 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_V1830h of !(kl_V1830h@(Cons (!kl_V1830hh) (!kl_V1830ht))) -> pat_cond_3 kl_V1830h kl_V1830hh kl_V1830ht _ -> 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_V1830 of !(kl_V1830@(Cons (!kl_V1830h) (!kl_V1830t))) -> pat_cond_1 kl_V1830 kl_V1830h kl_V1830t _ -> pat_cond_37 case kl_if_0 of Atom (B (True)) -> do !appl_38 <- kl_V1830 `pseq` hd kl_V1830 !appl_39 <- appl_38 `pseq` tl appl_38 !appl_40 <- appl_39 `pseq` hd appl_39 !appl_41 <- appl_40 `pseq` tl appl_40 !appl_42 <- appl_41 `pseq` hd appl_41 !appl_43 <- kl_V1830 `pseq` hd kl_V1830 !appl_44 <- appl_43 `pseq` tl appl_43 !appl_45 <- appl_44 `pseq` tl appl_44 !appl_46 <- appl_42 `pseq` (appl_45 `pseq` klCons appl_42 appl_45) !appl_47 <- appl_46 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.mu")) appl_46 !appl_48 <- kl_V1830 `pseq` tl kl_V1830 !appl_49 <- appl_47 `pseq` (appl_48 `pseq` klCons appl_47 appl_48) !appl_50 <- kl_V1830 `pseq` hd kl_V1830 !appl_51 <- appl_50 `pseq` tl appl_50 !appl_52 <- appl_51 `pseq` hd appl_51 !appl_53 <- appl_52 `pseq` tl appl_52 !appl_54 <- appl_53 `pseq` tl appl_53 !appl_55 <- appl_54 `pseq` hd appl_54 appl_49 `pseq` (appl_55 `pseq` kl_shen_mu_reduction appl_49 appl_55) Atom (B (False)) -> do !kl_if_56 <- let pat_cond_57 kl_V1830 kl_V1830h kl_V1830t = do !kl_if_58 <- let pat_cond_59 kl_V1830h kl_V1830hh kl_V1830ht = do !kl_if_60 <- let pat_cond_61 = do !kl_if_62 <- let pat_cond_63 kl_V1830ht kl_V1830hth kl_V1830htt = do !kl_if_64 <- let pat_cond_65 kl_V1830htt kl_V1830htth kl_V1830httt = do let !appl_66 = Atom Nil !kl_if_67 <- appl_66 `pseq` (kl_V1830httt `pseq` eq appl_66 kl_V1830httt) !kl_if_68 <- case kl_if_67 of Atom (B (True)) -> do !kl_if_69 <- let pat_cond_70 kl_V1830t kl_V1830th kl_V1830tt = do let !appl_71 = Atom Nil !kl_if_72 <- appl_71 `pseq` (kl_V1830tt `pseq` eq appl_71 kl_V1830tt) !kl_if_73 <- case kl_if_72 of Atom (B (True)) -> do let pat_cond_74 = do return (Atom (B True)) pat_cond_75 = do do return (Atom (B False)) in case kl_V1830hth of kl_V1830hth@(Atom (UnboundSym "_")) -> pat_cond_74 kl_V1830hth@(ApplC (PL "_" _)) -> pat_cond_74 kl_V1830hth@(ApplC (Func "_" _)) -> pat_cond_74 _ -> pat_cond_75 Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_73 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_76 = do do return (Atom (B False)) in case kl_V1830t of !(kl_V1830t@(Cons (!kl_V1830th) (!kl_V1830tt))) -> pat_cond_70 kl_V1830t kl_V1830th kl_V1830tt _ -> pat_cond_76 case kl_if_69 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_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_77 = do do return (Atom (B False)) in case kl_V1830htt of !(kl_V1830htt@(Cons (!kl_V1830htth) (!kl_V1830httt))) -> pat_cond_65 kl_V1830htt kl_V1830htth kl_V1830httt _ -> pat_cond_77 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_78 = do do return (Atom (B False)) in case kl_V1830ht of !(kl_V1830ht@(Cons (!kl_V1830hth) (!kl_V1830htt))) -> pat_cond_63 kl_V1830ht kl_V1830hth kl_V1830htt _ -> pat_cond_78 case kl_if_62 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_79 = do do return (Atom (B False)) in case kl_V1830hh of kl_V1830hh@(Atom (UnboundSym "shen.mu")) -> pat_cond_61 kl_V1830hh@(ApplC (PL "shen.mu" _)) -> pat_cond_61 kl_V1830hh@(ApplC (Func "shen.mu" _)) -> pat_cond_61 _ -> pat_cond_79 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_80 = do do return (Atom (B False)) in case kl_V1830h of !(kl_V1830h@(Cons (!kl_V1830hh) (!kl_V1830ht))) -> pat_cond_59 kl_V1830h kl_V1830hh kl_V1830ht _ -> pat_cond_80 case kl_if_58 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_V1830 of !(kl_V1830@(Cons (!kl_V1830h) (!kl_V1830t))) -> pat_cond_57 kl_V1830 kl_V1830h kl_V1830t _ -> pat_cond_81 case kl_if_56 of Atom (B (True)) -> do !appl_82 <- kl_V1830 `pseq` hd kl_V1830 !appl_83 <- appl_82 `pseq` tl appl_82 !appl_84 <- appl_83 `pseq` tl appl_83 !appl_85 <- appl_84 `pseq` hd appl_84 appl_85 `pseq` (kl_V1831 `pseq` kl_shen_mu_reduction appl_85 kl_V1831) Atom (B (False)) -> do !kl_if_86 <- let pat_cond_87 kl_V1830 kl_V1830h kl_V1830t = do !kl_if_88 <- let pat_cond_89 kl_V1830h kl_V1830hh kl_V1830ht = do !kl_if_90 <- let pat_cond_91 = do !kl_if_92 <- let pat_cond_93 kl_V1830ht kl_V1830hth kl_V1830htt = do !kl_if_94 <- let pat_cond_95 kl_V1830htt kl_V1830htth kl_V1830httt = do let !appl_96 = Atom Nil !kl_if_97 <- appl_96 `pseq` (kl_V1830httt `pseq` eq appl_96 kl_V1830httt) !kl_if_98 <- case kl_if_97 of Atom (B (True)) -> do !kl_if_99 <- let pat_cond_100 kl_V1830t kl_V1830th kl_V1830tt = do let !appl_101 = Atom Nil !kl_if_102 <- appl_101 `pseq` (kl_V1830tt `pseq` eq appl_101 kl_V1830tt) !kl_if_103 <- case kl_if_102 of Atom (B (True)) -> do !kl_if_104 <- kl_V1830hth `pseq` (kl_V1830th `pseq` kl_shen_ephemeral_variableP kl_V1830hth kl_V1830th) case kl_if_104 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_103 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_105 = do do return (Atom (B False)) in case kl_V1830t of !(kl_V1830t@(Cons (!kl_V1830th) (!kl_V1830tt))) -> pat_cond_100 kl_V1830t kl_V1830th kl_V1830tt _ -> pat_cond_105 case kl_if_99 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_98 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_106 = do do return (Atom (B False)) in case kl_V1830htt of !(kl_V1830htt@(Cons (!kl_V1830htth) (!kl_V1830httt))) -> pat_cond_95 kl_V1830htt kl_V1830htth kl_V1830httt _ -> pat_cond_106 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_107 = do do return (Atom (B False)) in case kl_V1830ht of !(kl_V1830ht@(Cons (!kl_V1830hth) (!kl_V1830htt))) -> pat_cond_93 kl_V1830ht kl_V1830hth kl_V1830htt _ -> pat_cond_107 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_108 = do do return (Atom (B False)) in case kl_V1830hh of kl_V1830hh@(Atom (UnboundSym "shen.mu")) -> pat_cond_91 kl_V1830hh@(ApplC (PL "shen.mu" _)) -> pat_cond_91 kl_V1830hh@(ApplC (Func "shen.mu" _)) -> pat_cond_91 _ -> pat_cond_108 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_109 = do do return (Atom (B False)) in case kl_V1830h of !(kl_V1830h@(Cons (!kl_V1830hh) (!kl_V1830ht))) -> pat_cond_89 kl_V1830h kl_V1830hh kl_V1830ht _ -> pat_cond_109 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_110 = do do return (Atom (B False)) in case kl_V1830 of !(kl_V1830@(Cons (!kl_V1830h) (!kl_V1830t))) -> pat_cond_87 kl_V1830 kl_V1830h kl_V1830t _ -> pat_cond_110 case kl_if_86 of Atom (B (True)) -> do !appl_111 <- kl_V1830 `pseq` tl kl_V1830 !appl_112 <- appl_111 `pseq` hd appl_111 !appl_113 <- kl_V1830 `pseq` hd kl_V1830 !appl_114 <- appl_113 `pseq` tl appl_113 !appl_115 <- appl_114 `pseq` hd appl_114 !appl_116 <- kl_V1830 `pseq` hd kl_V1830 !appl_117 <- appl_116 `pseq` tl appl_116 !appl_118 <- appl_117 `pseq` tl appl_117 !appl_119 <- appl_118 `pseq` hd appl_118 !appl_120 <- appl_119 `pseq` (kl_V1831 `pseq` kl_shen_mu_reduction appl_119 kl_V1831) appl_112 `pseq` (appl_115 `pseq` (appl_120 `pseq` kl_subst appl_112 appl_115 appl_120)) Atom (B (False)) -> do !kl_if_121 <- let pat_cond_122 kl_V1830 kl_V1830h kl_V1830t = do !kl_if_123 <- let pat_cond_124 kl_V1830h kl_V1830hh kl_V1830ht = do !kl_if_125 <- let pat_cond_126 = do !kl_if_127 <- let pat_cond_128 kl_V1830ht kl_V1830hth kl_V1830htt = do !kl_if_129 <- let pat_cond_130 kl_V1830htt kl_V1830htth kl_V1830httt = do let !appl_131 = Atom Nil !kl_if_132 <- appl_131 `pseq` (kl_V1830httt `pseq` eq appl_131 kl_V1830httt) !kl_if_133 <- case kl_if_132 of Atom (B (True)) -> do !kl_if_134 <- let pat_cond_135 kl_V1830t kl_V1830th kl_V1830tt = do let !appl_136 = Atom Nil !kl_if_137 <- appl_136 `pseq` (kl_V1830tt `pseq` eq appl_136 kl_V1830tt) !kl_if_138 <- case kl_if_137 of Atom (B (True)) -> do !kl_if_139 <- kl_V1830hth `pseq` kl_variableP kl_V1830hth case kl_if_139 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_138 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_140 = do do return (Atom (B False)) in case kl_V1830t of !(kl_V1830t@(Cons (!kl_V1830th) (!kl_V1830tt))) -> pat_cond_135 kl_V1830t kl_V1830th kl_V1830tt _ -> pat_cond_140 case kl_if_134 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" 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" pat_cond_141 = do do return (Atom (B False)) in case kl_V1830htt of !(kl_V1830htt@(Cons (!kl_V1830htth) (!kl_V1830httt))) -> pat_cond_130 kl_V1830htt kl_V1830htth kl_V1830httt _ -> pat_cond_141 case kl_if_129 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_142 = do do return (Atom (B False)) in case kl_V1830ht of !(kl_V1830ht@(Cons (!kl_V1830hth) (!kl_V1830htt))) -> pat_cond_128 kl_V1830ht kl_V1830hth kl_V1830htt _ -> pat_cond_142 case kl_if_127 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_143 = do do return (Atom (B False)) in case kl_V1830hh of kl_V1830hh@(Atom (UnboundSym "shen.mu")) -> pat_cond_126 kl_V1830hh@(ApplC (PL "shen.mu" _)) -> pat_cond_126 kl_V1830hh@(ApplC (Func "shen.mu" _)) -> pat_cond_126 _ -> pat_cond_143 case kl_if_125 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_144 = do do return (Atom (B False)) in case kl_V1830h of !(kl_V1830h@(Cons (!kl_V1830hh) (!kl_V1830ht))) -> pat_cond_124 kl_V1830h kl_V1830hh kl_V1830ht _ -> pat_cond_144 case kl_if_123 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_145 = do do return (Atom (B False)) in case kl_V1830 of !(kl_V1830@(Cons (!kl_V1830h) (!kl_V1830t))) -> pat_cond_122 kl_V1830 kl_V1830h kl_V1830t _ -> pat_cond_145 case kl_if_121 of Atom (B (True)) -> do !appl_146 <- kl_V1830 `pseq` hd kl_V1830 !appl_147 <- appl_146 `pseq` tl appl_146 !appl_148 <- appl_147 `pseq` hd appl_147 !appl_149 <- kl_V1830 `pseq` tl kl_V1830 !appl_150 <- appl_149 `pseq` hd appl_149 !appl_151 <- kl_V1830 `pseq` hd kl_V1830 !appl_152 <- appl_151 `pseq` tl appl_151 !appl_153 <- appl_152 `pseq` tl appl_152 !appl_154 <- appl_153 `pseq` hd appl_153 !appl_155 <- appl_154 `pseq` (kl_V1831 `pseq` kl_shen_mu_reduction appl_154 kl_V1831) let !appl_156 = Atom Nil !appl_157 <- appl_155 `pseq` (appl_156 `pseq` klCons appl_155 appl_156) !appl_158 <- appl_157 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_157 !appl_159 <- appl_150 `pseq` (appl_158 `pseq` klCons appl_150 appl_158) !appl_160 <- appl_159 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.be")) appl_159 !appl_161 <- appl_148 `pseq` (appl_160 `pseq` klCons appl_148 appl_160) appl_161 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_161 Atom (B (False)) -> do !kl_if_162 <- let pat_cond_163 kl_V1830 kl_V1830h kl_V1830t = do !kl_if_164 <- let pat_cond_165 kl_V1830h kl_V1830hh kl_V1830ht = do !kl_if_166 <- let pat_cond_167 = do !kl_if_168 <- let pat_cond_169 kl_V1830ht kl_V1830hth kl_V1830htt = do !kl_if_170 <- let pat_cond_171 kl_V1830htt kl_V1830htth kl_V1830httt = do let !appl_172 = Atom Nil !kl_if_173 <- appl_172 `pseq` (kl_V1830httt `pseq` eq appl_172 kl_V1830httt) !kl_if_174 <- case kl_if_173 of Atom (B (True)) -> do !kl_if_175 <- let pat_cond_176 kl_V1830t kl_V1830th kl_V1830tt = do let !appl_177 = Atom Nil !kl_if_178 <- appl_177 `pseq` (kl_V1830tt `pseq` eq appl_177 kl_V1830tt) !kl_if_179 <- case kl_if_178 of Atom (B (True)) -> do !kl_if_180 <- let pat_cond_181 = do !kl_if_182 <- kl_V1830hth `pseq` kl_shen_prolog_constantP kl_V1830hth 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_183 = do do return (Atom (B False)) in case kl_V1831 of kl_V1831@(Atom (UnboundSym "-")) -> pat_cond_181 kl_V1831@(ApplC (PL "-" _)) -> pat_cond_181 kl_V1831@(ApplC (Func "-" _)) -> pat_cond_181 _ -> pat_cond_183 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" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_179 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_184 = do do return (Atom (B False)) in case kl_V1830t of !(kl_V1830t@(Cons (!kl_V1830th) (!kl_V1830tt))) -> pat_cond_176 kl_V1830t kl_V1830th kl_V1830tt _ -> pat_cond_184 case kl_if_175 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" 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_185 = do do return (Atom (B False)) in case kl_V1830htt of !(kl_V1830htt@(Cons (!kl_V1830htth) (!kl_V1830httt))) -> pat_cond_171 kl_V1830htt kl_V1830htth kl_V1830httt _ -> pat_cond_185 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_186 = do do return (Atom (B False)) in case kl_V1830ht of !(kl_V1830ht@(Cons (!kl_V1830hth) (!kl_V1830htt))) -> pat_cond_169 kl_V1830ht kl_V1830hth kl_V1830htt _ -> pat_cond_186 case kl_if_168 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_187 = do do return (Atom (B False)) in case kl_V1830hh of kl_V1830hh@(Atom (UnboundSym "shen.mu")) -> pat_cond_167 kl_V1830hh@(ApplC (PL "shen.mu" _)) -> pat_cond_167 kl_V1830hh@(ApplC (Func "shen.mu" _)) -> pat_cond_167 _ -> pat_cond_187 case kl_if_166 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_188 = do do return (Atom (B False)) in case kl_V1830h of !(kl_V1830h@(Cons (!kl_V1830hh) (!kl_V1830ht))) -> pat_cond_165 kl_V1830h kl_V1830hh kl_V1830ht _ -> pat_cond_188 case kl_if_164 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_189 = do do return (Atom (B False)) in case kl_V1830 of !(kl_V1830@(Cons (!kl_V1830h) (!kl_V1830t))) -> pat_cond_163 kl_V1830 kl_V1830h kl_V1830t _ -> pat_cond_189 case kl_if_162 of Atom (B (True)) -> do let !appl_190 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do !appl_191 <- kl_V1830 `pseq` tl kl_V1830 !appl_192 <- appl_191 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.dereferencing")) appl_191 !appl_193 <- appl_192 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.of")) appl_192 !appl_194 <- appl_193 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.result")) appl_193 !appl_195 <- appl_194 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_194 !appl_196 <- kl_V1830 `pseq` hd kl_V1830 !appl_197 <- appl_196 `pseq` tl appl_196 !appl_198 <- appl_197 `pseq` hd appl_197 let !appl_199 = Atom Nil !appl_200 <- appl_198 `pseq` (appl_199 `pseq` klCons appl_198 appl_199) !appl_201 <- appl_200 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.to")) appl_200 !appl_202 <- appl_201 `pseq` klCons (ApplC (wrapNamed "identical" kl_identical)) appl_201 !appl_203 <- appl_202 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "is")) appl_202 !appl_204 <- kl_Z `pseq` (appl_203 `pseq` klCons kl_Z appl_203) !appl_205 <- kl_V1830 `pseq` hd kl_V1830 !appl_206 <- appl_205 `pseq` tl appl_205 !appl_207 <- appl_206 `pseq` tl appl_206 !appl_208 <- appl_207 `pseq` hd appl_207 !appl_209 <- appl_208 `pseq` kl_shen_mu_reduction appl_208 (ApplC (wrapNamed "-" Primitives.subtract)) let !appl_210 = Atom Nil !appl_211 <- appl_210 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.failed!")) appl_210 !appl_212 <- appl_211 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.else")) appl_211 !appl_213 <- appl_209 `pseq` (appl_212 `pseq` klCons appl_209 appl_212) !appl_214 <- appl_213 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.then")) appl_213 !appl_215 <- appl_204 `pseq` (appl_214 `pseq` klCons appl_204 appl_214) !appl_216 <- appl_215 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_215 let !appl_217 = Atom Nil !appl_218 <- appl_216 `pseq` (appl_217 `pseq` klCons appl_216 appl_217) !appl_219 <- appl_218 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_218 !appl_220 <- appl_195 `pseq` (appl_219 `pseq` klCons appl_195 appl_219) !appl_221 <- appl_220 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.be")) appl_220 !appl_222 <- kl_Z `pseq` (appl_221 `pseq` klCons kl_Z appl_221) appl_222 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_222))) !appl_223 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_223 `pseq` applyWrapper appl_190 [appl_223] Atom (B (False)) -> do !kl_if_224 <- let pat_cond_225 kl_V1830 kl_V1830h kl_V1830t = do !kl_if_226 <- let pat_cond_227 kl_V1830h kl_V1830hh kl_V1830ht = do !kl_if_228 <- let pat_cond_229 = do !kl_if_230 <- let pat_cond_231 kl_V1830ht kl_V1830hth kl_V1830htt = do !kl_if_232 <- let pat_cond_233 kl_V1830htt kl_V1830htth kl_V1830httt = do let !appl_234 = Atom Nil !kl_if_235 <- appl_234 `pseq` (kl_V1830httt `pseq` eq appl_234 kl_V1830httt) !kl_if_236 <- case kl_if_235 of Atom (B (True)) -> do !kl_if_237 <- let pat_cond_238 kl_V1830t kl_V1830th kl_V1830tt = do let !appl_239 = Atom Nil !kl_if_240 <- appl_239 `pseq` (kl_V1830tt `pseq` eq appl_239 kl_V1830tt) !kl_if_241 <- case kl_if_240 of Atom (B (True)) -> do !kl_if_242 <- let pat_cond_243 = do !kl_if_244 <- kl_V1830hth `pseq` kl_shen_prolog_constantP kl_V1830hth case kl_if_244 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_245 = do do return (Atom (B False)) in case kl_V1831 of kl_V1831@(Atom (UnboundSym "+")) -> pat_cond_243 kl_V1831@(ApplC (PL "+" _)) -> pat_cond_243 kl_V1831@(ApplC (Func "+" _)) -> pat_cond_243 _ -> pat_cond_245 case kl_if_242 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_241 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_246 = do do return (Atom (B False)) in case kl_V1830t of !(kl_V1830t@(Cons (!kl_V1830th) (!kl_V1830tt))) -> pat_cond_238 kl_V1830t kl_V1830th kl_V1830tt _ -> pat_cond_246 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_236 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_247 = do do return (Atom (B False)) in case kl_V1830htt of !(kl_V1830htt@(Cons (!kl_V1830htth) (!kl_V1830httt))) -> pat_cond_233 kl_V1830htt kl_V1830htth kl_V1830httt _ -> pat_cond_247 case kl_if_232 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_248 = do do return (Atom (B False)) in case kl_V1830ht of !(kl_V1830ht@(Cons (!kl_V1830hth) (!kl_V1830htt))) -> pat_cond_231 kl_V1830ht kl_V1830hth kl_V1830htt _ -> pat_cond_248 case kl_if_230 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_249 = do do return (Atom (B False)) in case kl_V1830hh of kl_V1830hh@(Atom (UnboundSym "shen.mu")) -> pat_cond_229 kl_V1830hh@(ApplC (PL "shen.mu" _)) -> pat_cond_229 kl_V1830hh@(ApplC (Func "shen.mu" _)) -> pat_cond_229 _ -> pat_cond_249 case kl_if_228 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_250 = do do return (Atom (B False)) in case kl_V1830h of !(kl_V1830h@(Cons (!kl_V1830hh) (!kl_V1830ht))) -> pat_cond_227 kl_V1830h kl_V1830hh kl_V1830ht _ -> pat_cond_250 case kl_if_226 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_251 = do do return (Atom (B False)) in case kl_V1830 of !(kl_V1830@(Cons (!kl_V1830h) (!kl_V1830t))) -> pat_cond_225 kl_V1830 kl_V1830h kl_V1830t _ -> pat_cond_251 case kl_if_224 of Atom (B (True)) -> do let !appl_252 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do !appl_253 <- kl_V1830 `pseq` tl kl_V1830 !appl_254 <- appl_253 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.dereferencing")) appl_253 !appl_255 <- appl_254 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.of")) appl_254 !appl_256 <- appl_255 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.result")) appl_255 !appl_257 <- appl_256 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_256 !appl_258 <- kl_V1830 `pseq` hd kl_V1830 !appl_259 <- appl_258 `pseq` tl appl_258 !appl_260 <- appl_259 `pseq` hd appl_259 let !appl_261 = Atom Nil !appl_262 <- appl_260 `pseq` (appl_261 `pseq` klCons appl_260 appl_261) !appl_263 <- appl_262 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.to")) appl_262 !appl_264 <- appl_263 `pseq` klCons (ApplC (wrapNamed "identical" kl_identical)) appl_263 !appl_265 <- appl_264 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "is")) appl_264 !appl_266 <- kl_Z `pseq` (appl_265 `pseq` klCons kl_Z appl_265) !appl_267 <- kl_V1830 `pseq` hd kl_V1830 !appl_268 <- appl_267 `pseq` tl appl_267 !appl_269 <- appl_268 `pseq` tl appl_268 !appl_270 <- appl_269 `pseq` hd appl_269 !appl_271 <- appl_270 `pseq` kl_shen_mu_reduction appl_270 (ApplC (wrapNamed "+" add)) let !appl_272 = Atom Nil !appl_273 <- appl_272 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.variable")) appl_272 !appl_274 <- appl_273 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.a")) appl_273 !appl_275 <- appl_274 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "is")) appl_274 !appl_276 <- kl_Z `pseq` (appl_275 `pseq` klCons kl_Z appl_275) !appl_277 <- kl_V1830 `pseq` hd kl_V1830 !appl_278 <- appl_277 `pseq` tl appl_277 !appl_279 <- appl_278 `pseq` hd appl_278 !appl_280 <- kl_V1830 `pseq` hd kl_V1830 !appl_281 <- appl_280 `pseq` tl appl_280 !appl_282 <- appl_281 `pseq` tl appl_281 !appl_283 <- appl_282 `pseq` hd appl_282 !appl_284 <- appl_283 `pseq` kl_shen_mu_reduction appl_283 (ApplC (wrapNamed "+" add)) let !appl_285 = Atom Nil !appl_286 <- appl_284 `pseq` (appl_285 `pseq` klCons appl_284 appl_285) !appl_287 <- appl_286 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_286 !appl_288 <- appl_279 `pseq` (appl_287 `pseq` klCons appl_279 appl_287) !appl_289 <- appl_288 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.to")) appl_288 !appl_290 <- kl_Z `pseq` (appl_289 `pseq` klCons kl_Z appl_289) !appl_291 <- appl_290 `pseq` klCons (ApplC (wrapNamed "bind" kl_bind)) appl_290 let !appl_292 = Atom Nil !appl_293 <- appl_292 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.failed!")) appl_292 !appl_294 <- appl_293 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.else")) appl_293 !appl_295 <- appl_291 `pseq` (appl_294 `pseq` klCons appl_291 appl_294) !appl_296 <- appl_295 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.then")) appl_295 !appl_297 <- appl_276 `pseq` (appl_296 `pseq` klCons appl_276 appl_296) !appl_298 <- appl_297 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_297 let !appl_299 = Atom Nil !appl_300 <- appl_298 `pseq` (appl_299 `pseq` klCons appl_298 appl_299) !appl_301 <- appl_300 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.else")) appl_300 !appl_302 <- appl_271 `pseq` (appl_301 `pseq` klCons appl_271 appl_301) !appl_303 <- appl_302 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.then")) appl_302 !appl_304 <- appl_266 `pseq` (appl_303 `pseq` klCons appl_266 appl_303) !appl_305 <- appl_304 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_304 let !appl_306 = Atom Nil !appl_307 <- appl_305 `pseq` (appl_306 `pseq` klCons appl_305 appl_306) !appl_308 <- appl_307 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_307 !appl_309 <- appl_257 `pseq` (appl_308 `pseq` klCons appl_257 appl_308) !appl_310 <- appl_309 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.be")) appl_309 !appl_311 <- kl_Z `pseq` (appl_310 `pseq` klCons kl_Z appl_310) appl_311 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_311))) !appl_312 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_312 `pseq` applyWrapper appl_252 [appl_312] Atom (B (False)) -> do !kl_if_313 <- let pat_cond_314 kl_V1830 kl_V1830h kl_V1830t = do !kl_if_315 <- let pat_cond_316 kl_V1830h kl_V1830hh kl_V1830ht = do !kl_if_317 <- let pat_cond_318 = do !kl_if_319 <- let pat_cond_320 kl_V1830ht kl_V1830hth kl_V1830htt = do !kl_if_321 <- let pat_cond_322 kl_V1830hth kl_V1830hthh kl_V1830htht = do !kl_if_323 <- let pat_cond_324 kl_V1830htt kl_V1830htth kl_V1830httt = do let !appl_325 = Atom Nil !kl_if_326 <- appl_325 `pseq` (kl_V1830httt `pseq` eq appl_325 kl_V1830httt) !kl_if_327 <- case kl_if_326 of Atom (B (True)) -> do !kl_if_328 <- let pat_cond_329 kl_V1830t kl_V1830th kl_V1830tt = do let !appl_330 = Atom Nil !kl_if_331 <- appl_330 `pseq` (kl_V1830tt `pseq` eq appl_330 kl_V1830tt) !kl_if_332 <- case kl_if_331 of Atom (B (True)) -> do let pat_cond_333 = do return (Atom (B True)) pat_cond_334 = do do return (Atom (B False)) in case kl_V1831 of kl_V1831@(Atom (UnboundSym "-")) -> pat_cond_333 kl_V1831@(ApplC (PL "-" _)) -> pat_cond_333 kl_V1831@(ApplC (Func "-" _)) -> pat_cond_333 _ -> pat_cond_334 Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_332 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_335 = do do return (Atom (B False)) in case kl_V1830t of !(kl_V1830t@(Cons (!kl_V1830th) (!kl_V1830tt))) -> pat_cond_329 kl_V1830t kl_V1830th kl_V1830tt _ -> pat_cond_335 case kl_if_328 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_327 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_336 = do do return (Atom (B False)) in case kl_V1830htt of !(kl_V1830htt@(Cons (!kl_V1830htth) (!kl_V1830httt))) -> pat_cond_324 kl_V1830htt kl_V1830htth kl_V1830httt _ -> pat_cond_336 case kl_if_323 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_337 = do do return (Atom (B False)) in case kl_V1830hth of !(kl_V1830hth@(Cons (!kl_V1830hthh) (!kl_V1830htht))) -> pat_cond_322 kl_V1830hth kl_V1830hthh kl_V1830htht _ -> pat_cond_337 case kl_if_321 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_338 = do do return (Atom (B False)) in case kl_V1830ht of !(kl_V1830ht@(Cons (!kl_V1830hth) (!kl_V1830htt))) -> pat_cond_320 kl_V1830ht kl_V1830hth kl_V1830htt _ -> pat_cond_338 case kl_if_319 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_339 = do do return (Atom (B False)) in case kl_V1830hh of kl_V1830hh@(Atom (UnboundSym "shen.mu")) -> pat_cond_318 kl_V1830hh@(ApplC (PL "shen.mu" _)) -> pat_cond_318 kl_V1830hh@(ApplC (Func "shen.mu" _)) -> pat_cond_318 _ -> pat_cond_339 case kl_if_317 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_340 = do do return (Atom (B False)) in case kl_V1830h of !(kl_V1830h@(Cons (!kl_V1830hh) (!kl_V1830ht))) -> pat_cond_316 kl_V1830h kl_V1830hh kl_V1830ht _ -> pat_cond_340 case kl_if_315 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_341 = do do return (Atom (B False)) in case kl_V1830 of !(kl_V1830@(Cons (!kl_V1830h) (!kl_V1830t))) -> pat_cond_314 kl_V1830 kl_V1830h kl_V1830t _ -> pat_cond_341 case kl_if_313 of Atom (B (True)) -> do let !appl_342 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do !appl_343 <- kl_V1830 `pseq` tl kl_V1830 !appl_344 <- appl_343 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.dereferencing")) appl_343 !appl_345 <- appl_344 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.of")) appl_344 !appl_346 <- appl_345 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.result")) appl_345 !appl_347 <- appl_346 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_346 let !appl_348 = Atom Nil !appl_349 <- appl_348 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_348 !appl_350 <- appl_349 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.non-empty")) appl_349 !appl_351 <- appl_350 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.a")) appl_350 !appl_352 <- appl_351 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "is")) appl_351 !appl_353 <- kl_Z `pseq` (appl_352 `pseq` klCons kl_Z appl_352) !appl_354 <- kl_V1830 `pseq` hd kl_V1830 !appl_355 <- appl_354 `pseq` tl appl_354 !appl_356 <- appl_355 `pseq` hd appl_355 !appl_357 <- appl_356 `pseq` hd appl_356 !appl_358 <- kl_V1830 `pseq` hd kl_V1830 !appl_359 <- appl_358 `pseq` tl appl_358 !appl_360 <- appl_359 `pseq` hd appl_359 !appl_361 <- appl_360 `pseq` tl appl_360 !appl_362 <- kl_V1830 `pseq` hd kl_V1830 !appl_363 <- appl_362 `pseq` tl appl_362 !appl_364 <- appl_363 `pseq` tl appl_363 !appl_365 <- appl_361 `pseq` (appl_364 `pseq` klCons appl_361 appl_364) !appl_366 <- appl_365 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.mu")) appl_365 let !appl_367 = Atom Nil !appl_368 <- kl_Z `pseq` (appl_367 `pseq` klCons kl_Z appl_367) !appl_369 <- appl_368 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.of")) appl_368 !appl_370 <- appl_369 `pseq` klCons (ApplC (wrapNamed "tail" kl_tail)) appl_369 !appl_371 <- appl_370 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_370 let !appl_372 = Atom Nil !appl_373 <- appl_371 `pseq` (appl_372 `pseq` klCons appl_371 appl_372) !appl_374 <- appl_366 `pseq` (appl_373 `pseq` klCons appl_366 appl_373) let !appl_375 = Atom Nil !appl_376 <- appl_374 `pseq` (appl_375 `pseq` klCons appl_374 appl_375) !appl_377 <- appl_357 `pseq` (appl_376 `pseq` klCons appl_357 appl_376) !appl_378 <- appl_377 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.mu")) appl_377 let !appl_379 = Atom Nil !appl_380 <- kl_Z `pseq` (appl_379 `pseq` klCons kl_Z appl_379) !appl_381 <- appl_380 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.of")) appl_380 !appl_382 <- appl_381 `pseq` klCons (ApplC (wrapNamed "head" kl_head)) appl_381 !appl_383 <- appl_382 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_382 let !appl_384 = Atom Nil !appl_385 <- appl_383 `pseq` (appl_384 `pseq` klCons appl_383 appl_384) !appl_386 <- appl_378 `pseq` (appl_385 `pseq` klCons appl_378 appl_385) !appl_387 <- appl_386 `pseq` kl_shen_mu_reduction appl_386 (ApplC (wrapNamed "-" Primitives.subtract)) let !appl_388 = Atom Nil !appl_389 <- appl_388 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.failed!")) appl_388 !appl_390 <- appl_389 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.else")) appl_389 !appl_391 <- appl_387 `pseq` (appl_390 `pseq` klCons appl_387 appl_390) !appl_392 <- appl_391 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.then")) appl_391 !appl_393 <- appl_353 `pseq` (appl_392 `pseq` klCons appl_353 appl_392) !appl_394 <- appl_393 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_393 let !appl_395 = Atom Nil !appl_396 <- appl_394 `pseq` (appl_395 `pseq` klCons appl_394 appl_395) !appl_397 <- appl_396 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_396 !appl_398 <- appl_347 `pseq` (appl_397 `pseq` klCons appl_347 appl_397) !appl_399 <- appl_398 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.be")) appl_398 !appl_400 <- kl_Z `pseq` (appl_399 `pseq` klCons kl_Z appl_399) appl_400 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_400))) !appl_401 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_401 `pseq` applyWrapper appl_342 [appl_401] Atom (B (False)) -> do !kl_if_402 <- let pat_cond_403 kl_V1830 kl_V1830h kl_V1830t = do !kl_if_404 <- let pat_cond_405 kl_V1830h kl_V1830hh kl_V1830ht = do !kl_if_406 <- let pat_cond_407 = do !kl_if_408 <- let pat_cond_409 kl_V1830ht kl_V1830hth kl_V1830htt = do !kl_if_410 <- let pat_cond_411 kl_V1830hth kl_V1830hthh kl_V1830htht = do !kl_if_412 <- let pat_cond_413 kl_V1830htt kl_V1830htth kl_V1830httt = do let !appl_414 = Atom Nil !kl_if_415 <- appl_414 `pseq` (kl_V1830httt `pseq` eq appl_414 kl_V1830httt) !kl_if_416 <- case kl_if_415 of Atom (B (True)) -> do !kl_if_417 <- let pat_cond_418 kl_V1830t kl_V1830th kl_V1830tt = do let !appl_419 = Atom Nil !kl_if_420 <- appl_419 `pseq` (kl_V1830tt `pseq` eq appl_419 kl_V1830tt) !kl_if_421 <- case kl_if_420 of Atom (B (True)) -> do let pat_cond_422 = do return (Atom (B True)) pat_cond_423 = do do return (Atom (B False)) in case kl_V1831 of kl_V1831@(Atom (UnboundSym "+")) -> pat_cond_422 kl_V1831@(ApplC (PL "+" _)) -> pat_cond_422 kl_V1831@(ApplC (Func "+" _)) -> pat_cond_422 _ -> pat_cond_423 Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_421 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_V1830t of !(kl_V1830t@(Cons (!kl_V1830th) (!kl_V1830tt))) -> pat_cond_418 kl_V1830t kl_V1830th kl_V1830tt _ -> pat_cond_424 case kl_if_417 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" 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_425 = do do return (Atom (B False)) in case kl_V1830htt of !(kl_V1830htt@(Cons (!kl_V1830htth) (!kl_V1830httt))) -> pat_cond_413 kl_V1830htt kl_V1830htth kl_V1830httt _ -> pat_cond_425 case kl_if_412 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_V1830hth of !(kl_V1830hth@(Cons (!kl_V1830hthh) (!kl_V1830htht))) -> pat_cond_411 kl_V1830hth kl_V1830hthh kl_V1830htht _ -> pat_cond_426 case kl_if_410 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_V1830ht of !(kl_V1830ht@(Cons (!kl_V1830hth) (!kl_V1830htt))) -> pat_cond_409 kl_V1830ht kl_V1830hth kl_V1830htt _ -> pat_cond_427 case kl_if_408 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_428 = do do return (Atom (B False)) in case kl_V1830hh of kl_V1830hh@(Atom (UnboundSym "shen.mu")) -> pat_cond_407 kl_V1830hh@(ApplC (PL "shen.mu" _)) -> pat_cond_407 kl_V1830hh@(ApplC (Func "shen.mu" _)) -> pat_cond_407 _ -> pat_cond_428 case kl_if_406 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_429 = do do return (Atom (B False)) in case kl_V1830h of !(kl_V1830h@(Cons (!kl_V1830hh) (!kl_V1830ht))) -> pat_cond_405 kl_V1830h kl_V1830hh kl_V1830ht _ -> pat_cond_429 case kl_if_404 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_430 = do do return (Atom (B False)) in case kl_V1830 of !(kl_V1830@(Cons (!kl_V1830h) (!kl_V1830t))) -> pat_cond_403 kl_V1830 kl_V1830h kl_V1830t _ -> pat_cond_430 case kl_if_402 of Atom (B (True)) -> do let !appl_431 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do !appl_432 <- kl_V1830 `pseq` tl kl_V1830 !appl_433 <- appl_432 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.dereferencing")) appl_432 !appl_434 <- appl_433 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.of")) appl_433 !appl_435 <- appl_434 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.result")) appl_434 !appl_436 <- appl_435 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_435 let !appl_437 = Atom Nil !appl_438 <- appl_437 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_437 !appl_439 <- appl_438 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.non-empty")) appl_438 !appl_440 <- appl_439 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.a")) appl_439 !appl_441 <- appl_440 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "is")) appl_440 !appl_442 <- kl_Z `pseq` (appl_441 `pseq` klCons kl_Z appl_441) !appl_443 <- kl_V1830 `pseq` hd kl_V1830 !appl_444 <- appl_443 `pseq` tl appl_443 !appl_445 <- appl_444 `pseq` hd appl_444 !appl_446 <- appl_445 `pseq` hd appl_445 !appl_447 <- kl_V1830 `pseq` hd kl_V1830 !appl_448 <- appl_447 `pseq` tl appl_447 !appl_449 <- appl_448 `pseq` hd appl_448 !appl_450 <- appl_449 `pseq` tl appl_449 !appl_451 <- kl_V1830 `pseq` hd kl_V1830 !appl_452 <- appl_451 `pseq` tl appl_451 !appl_453 <- appl_452 `pseq` tl appl_452 !appl_454 <- appl_450 `pseq` (appl_453 `pseq` klCons appl_450 appl_453) !appl_455 <- appl_454 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.mu")) appl_454 let !appl_456 = Atom Nil !appl_457 <- kl_Z `pseq` (appl_456 `pseq` klCons kl_Z appl_456) !appl_458 <- appl_457 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.of")) appl_457 !appl_459 <- appl_458 `pseq` klCons (ApplC (wrapNamed "tail" kl_tail)) appl_458 !appl_460 <- appl_459 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_459 let !appl_461 = Atom Nil !appl_462 <- appl_460 `pseq` (appl_461 `pseq` klCons appl_460 appl_461) !appl_463 <- appl_455 `pseq` (appl_462 `pseq` klCons appl_455 appl_462) let !appl_464 = Atom Nil !appl_465 <- appl_463 `pseq` (appl_464 `pseq` klCons appl_463 appl_464) !appl_466 <- appl_446 `pseq` (appl_465 `pseq` klCons appl_446 appl_465) !appl_467 <- appl_466 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.mu")) appl_466 let !appl_468 = Atom Nil !appl_469 <- kl_Z `pseq` (appl_468 `pseq` klCons kl_Z appl_468) !appl_470 <- appl_469 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.of")) appl_469 !appl_471 <- appl_470 `pseq` klCons (ApplC (wrapNamed "head" kl_head)) appl_470 !appl_472 <- appl_471 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_471 let !appl_473 = Atom Nil !appl_474 <- appl_472 `pseq` (appl_473 `pseq` klCons appl_472 appl_473) !appl_475 <- appl_467 `pseq` (appl_474 `pseq` klCons appl_467 appl_474) !appl_476 <- appl_475 `pseq` kl_shen_mu_reduction appl_475 (ApplC (wrapNamed "+" add)) let !appl_477 = Atom Nil !appl_478 <- appl_477 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.variable")) appl_477 !appl_479 <- appl_478 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.a")) appl_478 !appl_480 <- appl_479 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "is")) appl_479 !appl_481 <- kl_Z `pseq` (appl_480 `pseq` klCons kl_Z appl_480) !appl_482 <- kl_V1830 `pseq` hd kl_V1830 !appl_483 <- appl_482 `pseq` tl appl_482 !appl_484 <- appl_483 `pseq` hd appl_483 !appl_485 <- appl_484 `pseq` kl_shen_extract_vars appl_484 !appl_486 <- kl_V1830 `pseq` hd kl_V1830 !appl_487 <- appl_486 `pseq` tl appl_486 !appl_488 <- appl_487 `pseq` hd appl_487 !appl_489 <- appl_488 `pseq` kl_shen_remove_modes appl_488 !appl_490 <- appl_489 `pseq` kl_shen_rcons_form appl_489 !appl_491 <- kl_V1830 `pseq` hd kl_V1830 !appl_492 <- appl_491 `pseq` tl appl_491 !appl_493 <- appl_492 `pseq` tl appl_492 !appl_494 <- appl_493 `pseq` hd appl_493 !appl_495 <- appl_494 `pseq` kl_shen_mu_reduction appl_494 (ApplC (wrapNamed "+" add)) let !appl_496 = Atom Nil !appl_497 <- appl_495 `pseq` (appl_496 `pseq` klCons appl_495 appl_496) !appl_498 <- appl_497 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_497 !appl_499 <- appl_490 `pseq` (appl_498 `pseq` klCons appl_490 appl_498) !appl_500 <- appl_499 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.to")) appl_499 !appl_501 <- kl_Z `pseq` (appl_500 `pseq` klCons kl_Z appl_500) !appl_502 <- appl_501 `pseq` klCons (ApplC (wrapNamed "bind" kl_bind)) appl_501 let !appl_503 = Atom Nil !appl_504 <- appl_502 `pseq` (appl_503 `pseq` klCons appl_502 appl_503) !appl_505 <- appl_504 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.then")) appl_504 !appl_506 <- appl_505 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "and")) appl_505 !appl_507 <- appl_485 `pseq` (appl_506 `pseq` klCons appl_485 appl_506) !appl_508 <- appl_507 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_507 !appl_509 <- appl_508 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.variables")) appl_508 !appl_510 <- appl_509 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_509 !appl_511 <- appl_510 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.rename")) appl_510 let !appl_512 = Atom Nil !appl_513 <- appl_512 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.failed!")) appl_512 !appl_514 <- appl_513 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.else")) appl_513 !appl_515 <- appl_511 `pseq` (appl_514 `pseq` klCons appl_511 appl_514) !appl_516 <- appl_515 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.then")) appl_515 !appl_517 <- appl_481 `pseq` (appl_516 `pseq` klCons appl_481 appl_516) !appl_518 <- appl_517 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_517 let !appl_519 = Atom Nil !appl_520 <- appl_518 `pseq` (appl_519 `pseq` klCons appl_518 appl_519) !appl_521 <- appl_520 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.else")) appl_520 !appl_522 <- appl_476 `pseq` (appl_521 `pseq` klCons appl_476 appl_521) !appl_523 <- appl_522 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.then")) appl_522 !appl_524 <- appl_442 `pseq` (appl_523 `pseq` klCons appl_442 appl_523) !appl_525 <- appl_524 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_524 let !appl_526 = Atom Nil !appl_527 <- appl_525 `pseq` (appl_526 `pseq` klCons appl_525 appl_526) !appl_528 <- appl_527 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_527 !appl_529 <- appl_436 `pseq` (appl_528 `pseq` klCons appl_436 appl_528) !appl_530 <- appl_529 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.be")) appl_529 !appl_531 <- kl_Z `pseq` (appl_530 `pseq` klCons kl_Z appl_530) appl_531 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_531))) !appl_532 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_532 `pseq` applyWrapper appl_431 [appl_532] Atom (B (False)) -> do do return kl_V1830 _ -> 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_rcons_form :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_rcons_form (!kl_V1833) = do let pat_cond_0 kl_V1833 kl_V1833h kl_V1833t = do !appl_1 <- kl_V1833h `pseq` kl_shen_rcons_form kl_V1833h !appl_2 <- kl_V1833t `pseq` kl_shen_rcons_form kl_V1833t let !appl_3 = Atom Nil !appl_4 <- appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3) !appl_5 <- appl_1 `pseq` (appl_4 `pseq` klCons appl_1 appl_4) appl_5 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_5 pat_cond_6 = do do return kl_V1833 in case kl_V1833 of !(kl_V1833@(Cons (!kl_V1833h) (!kl_V1833t))) -> pat_cond_0 kl_V1833 kl_V1833h kl_V1833t _ -> pat_cond_6 kl_shen_remove_modes :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_remove_modes (!kl_V1835) = do !kl_if_0 <- let pat_cond_1 kl_V1835 kl_V1835h kl_V1835t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1835t kl_V1835th kl_V1835tt = do !kl_if_6 <- let pat_cond_7 kl_V1835tt kl_V1835tth kl_V1835ttt = do !kl_if_8 <- let pat_cond_9 = do let !appl_10 = Atom Nil !kl_if_11 <- appl_10 `pseq` (kl_V1835ttt `pseq` eq appl_10 kl_V1835ttt) 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_V1835tth of kl_V1835tth@(Atom (UnboundSym "+")) -> pat_cond_9 kl_V1835tth@(ApplC (PL "+" _)) -> pat_cond_9 kl_V1835tth@(ApplC (Func "+" _)) -> pat_cond_9 _ -> pat_cond_12 case kl_if_8 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_13 = do do return (Atom (B False)) in case kl_V1835tt of !(kl_V1835tt@(Cons (!kl_V1835tth) (!kl_V1835ttt))) -> pat_cond_7 kl_V1835tt kl_V1835tth kl_V1835ttt _ -> 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_V1835t of !(kl_V1835t@(Cons (!kl_V1835th) (!kl_V1835tt))) -> pat_cond_5 kl_V1835t kl_V1835th kl_V1835tt _ -> 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_V1835h of kl_V1835h@(Atom (UnboundSym "mode")) -> pat_cond_3 kl_V1835h@(ApplC (PL "mode" _)) -> pat_cond_3 kl_V1835h@(ApplC (Func "mode" _)) -> 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_V1835 of !(kl_V1835@(Cons (!kl_V1835h) (!kl_V1835t))) -> pat_cond_1 kl_V1835 kl_V1835h kl_V1835t _ -> pat_cond_16 case kl_if_0 of Atom (B (True)) -> do !appl_17 <- kl_V1835 `pseq` tl kl_V1835 !appl_18 <- appl_17 `pseq` hd appl_17 appl_18 `pseq` kl_shen_remove_modes appl_18 Atom (B (False)) -> do !kl_if_19 <- let pat_cond_20 kl_V1835 kl_V1835h kl_V1835t = do !kl_if_21 <- let pat_cond_22 = do !kl_if_23 <- let pat_cond_24 kl_V1835t kl_V1835th kl_V1835tt = do !kl_if_25 <- let pat_cond_26 kl_V1835tt kl_V1835tth kl_V1835ttt = do !kl_if_27 <- let pat_cond_28 = do let !appl_29 = Atom Nil !kl_if_30 <- appl_29 `pseq` (kl_V1835ttt `pseq` eq appl_29 kl_V1835ttt) case kl_if_30 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_31 = do do return (Atom (B False)) in case kl_V1835tth of kl_V1835tth@(Atom (UnboundSym "-")) -> pat_cond_28 kl_V1835tth@(ApplC (PL "-" _)) -> pat_cond_28 kl_V1835tth@(ApplC (Func "-" _)) -> pat_cond_28 _ -> pat_cond_31 case kl_if_27 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_32 = do do return (Atom (B False)) in case kl_V1835tt of !(kl_V1835tt@(Cons (!kl_V1835tth) (!kl_V1835ttt))) -> pat_cond_26 kl_V1835tt kl_V1835tth kl_V1835ttt _ -> pat_cond_32 case kl_if_25 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_33 = do do return (Atom (B False)) in case kl_V1835t of !(kl_V1835t@(Cons (!kl_V1835th) (!kl_V1835tt))) -> pat_cond_24 kl_V1835t kl_V1835th kl_V1835tt _ -> pat_cond_33 case kl_if_23 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_34 = do do return (Atom (B False)) in case kl_V1835h of kl_V1835h@(Atom (UnboundSym "mode")) -> pat_cond_22 kl_V1835h@(ApplC (PL "mode" _)) -> pat_cond_22 kl_V1835h@(ApplC (Func "mode" _)) -> pat_cond_22 _ -> pat_cond_34 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_35 = do do return (Atom (B False)) in case kl_V1835 of !(kl_V1835@(Cons (!kl_V1835h) (!kl_V1835t))) -> pat_cond_20 kl_V1835 kl_V1835h kl_V1835t _ -> pat_cond_35 case kl_if_19 of Atom (B (True)) -> do !appl_36 <- kl_V1835 `pseq` tl kl_V1835 !appl_37 <- appl_36 `pseq` hd appl_36 appl_37 `pseq` kl_shen_remove_modes appl_37 Atom (B (False)) -> do let pat_cond_38 kl_V1835 kl_V1835h kl_V1835t = do !appl_39 <- kl_V1835h `pseq` kl_shen_remove_modes kl_V1835h !appl_40 <- kl_V1835t `pseq` kl_shen_remove_modes kl_V1835t appl_39 `pseq` (appl_40 `pseq` klCons appl_39 appl_40) pat_cond_41 = do do return kl_V1835 in case kl_V1835 of !(kl_V1835@(Cons (!kl_V1835h) (!kl_V1835t))) -> pat_cond_38 kl_V1835 kl_V1835h kl_V1835t _ -> pat_cond_41 _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_ephemeral_variableP :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_ephemeral_variableP (!kl_V1838) (!kl_V1839) = do !kl_if_0 <- kl_V1838 `pseq` kl_variableP kl_V1838 case kl_if_0 of Atom (B (True)) -> do !kl_if_1 <- kl_V1839 `pseq` kl_variableP kl_V1839 case kl_if_1 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" kl_shen_prolog_constantP :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_prolog_constantP (!kl_V1849) = do let pat_cond_0 kl_V1849 kl_V1849h kl_V1849t = do return (Atom (B False)) pat_cond_1 = do do return (Atom (B True)) in case kl_V1849 of !(kl_V1849@(Cons (!kl_V1849h) (!kl_V1849t))) -> pat_cond_0 kl_V1849 kl_V1849h kl_V1849t _ -> pat_cond_1 kl_shen_aum_to_shen :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_aum_to_shen (!kl_V1851) = do !kl_if_0 <- let pat_cond_1 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_6 <- let pat_cond_7 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_8 <- let pat_cond_9 = do !kl_if_10 <- let pat_cond_11 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do !kl_if_12 <- let pat_cond_13 kl_V1851tttt kl_V1851tttth kl_V1851ttttt = do !kl_if_14 <- let pat_cond_15 = do !kl_if_16 <- let pat_cond_17 kl_V1851ttttt kl_V1851ttttth kl_V1851tttttt = do let !appl_18 = Atom Nil !kl_if_19 <- appl_18 `pseq` (kl_V1851tttttt `pseq` eq appl_18 kl_V1851tttttt) case kl_if_19 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_20 = do do return (Atom (B False)) in case kl_V1851ttttt of !(kl_V1851ttttt@(Cons (!kl_V1851ttttth) (!kl_V1851tttttt))) -> pat_cond_17 kl_V1851ttttt kl_V1851ttttth kl_V1851tttttt _ -> pat_cond_20 case kl_if_16 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_21 = do do return (Atom (B False)) in case kl_V1851tttth of kl_V1851tttth@(Atom (UnboundSym "in")) -> pat_cond_15 kl_V1851tttth@(ApplC (PL "in" _)) -> pat_cond_15 kl_V1851tttth@(ApplC (Func "in" _)) -> pat_cond_15 _ -> pat_cond_21 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_22 = do do return (Atom (B False)) in case kl_V1851tttt of !(kl_V1851tttt@(Cons (!kl_V1851tttth) (!kl_V1851ttttt))) -> pat_cond_13 kl_V1851tttt kl_V1851tttth kl_V1851ttttt _ -> pat_cond_22 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_23 = do do return (Atom (B False)) in case kl_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_11 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> pat_cond_23 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_24 = do do return (Atom (B False)) in case kl_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.be")) -> pat_cond_9 kl_V1851tth@(ApplC (PL "shen.be" _)) -> pat_cond_9 kl_V1851tth@(ApplC (Func "shen.be" _)) -> pat_cond_9 _ -> pat_cond_24 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_25 = do do return (Atom (B False)) in case kl_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_7 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_25 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_26 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_5 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_26 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_27 = do do return (Atom (B False)) in case kl_V1851h of kl_V1851h@(Atom (UnboundSym "let")) -> pat_cond_3 kl_V1851h@(ApplC (PL "let" _)) -> pat_cond_3 kl_V1851h@(ApplC (Func "let" _)) -> pat_cond_3 _ -> pat_cond_27 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_28 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_1 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_28 case kl_if_0 of Atom (B (True)) -> do !appl_29 <- kl_V1851 `pseq` tl kl_V1851 !appl_30 <- appl_29 `pseq` hd appl_29 !appl_31 <- kl_V1851 `pseq` tl kl_V1851 !appl_32 <- appl_31 `pseq` tl appl_31 !appl_33 <- appl_32 `pseq` tl appl_32 !appl_34 <- appl_33 `pseq` hd appl_33 !appl_35 <- appl_34 `pseq` kl_shen_aum_to_shen appl_34 !appl_36 <- kl_V1851 `pseq` tl kl_V1851 !appl_37 <- appl_36 `pseq` tl appl_36 !appl_38 <- appl_37 `pseq` tl appl_37 !appl_39 <- appl_38 `pseq` tl appl_38 !appl_40 <- appl_39 `pseq` tl appl_39 !appl_41 <- appl_40 `pseq` hd appl_40 !appl_42 <- appl_41 `pseq` kl_shen_aum_to_shen appl_41 let !appl_43 = Atom Nil !appl_44 <- appl_42 `pseq` (appl_43 `pseq` klCons appl_42 appl_43) !appl_45 <- appl_35 `pseq` (appl_44 `pseq` klCons appl_35 appl_44) !appl_46 <- appl_30 `pseq` (appl_45 `pseq` klCons appl_30 appl_45) appl_46 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_46 Atom (B (False)) -> do !kl_if_47 <- let pat_cond_48 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_49 <- let pat_cond_50 = do !kl_if_51 <- let pat_cond_52 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_53 <- let pat_cond_54 = do !kl_if_55 <- let pat_cond_56 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_57 <- let pat_cond_58 = do !kl_if_59 <- let pat_cond_60 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do !kl_if_61 <- let pat_cond_62 = do !kl_if_63 <- let pat_cond_64 kl_V1851tttt kl_V1851tttth kl_V1851ttttt = do let !appl_65 = Atom Nil !kl_if_66 <- appl_65 `pseq` (kl_V1851ttttt `pseq` eq appl_65 kl_V1851ttttt) 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_67 = do do return (Atom (B False)) in case kl_V1851tttt of !(kl_V1851tttt@(Cons (!kl_V1851tttth) (!kl_V1851ttttt))) -> pat_cond_64 kl_V1851tttt kl_V1851tttth kl_V1851ttttt _ -> pat_cond_67 case kl_if_63 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_68 = do do return (Atom (B False)) in case kl_V1851ttth of kl_V1851ttth@(Atom (UnboundSym "shen.dereferencing")) -> pat_cond_62 kl_V1851ttth@(ApplC (PL "shen.dereferencing" _)) -> pat_cond_62 kl_V1851ttth@(ApplC (Func "shen.dereferencing" _)) -> pat_cond_62 _ -> pat_cond_68 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" pat_cond_69 = do do return (Atom (B False)) in case kl_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_60 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> pat_cond_69 case kl_if_59 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_70 = do do return (Atom (B False)) in case kl_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.of")) -> pat_cond_58 kl_V1851tth@(ApplC (PL "shen.of" _)) -> pat_cond_58 kl_V1851tth@(ApplC (Func "shen.of" _)) -> pat_cond_58 _ -> pat_cond_70 case kl_if_57 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_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_56 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_71 case kl_if_55 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_72 = do do return (Atom (B False)) in case kl_V1851th of kl_V1851th@(Atom (UnboundSym "shen.result")) -> pat_cond_54 kl_V1851th@(ApplC (PL "shen.result" _)) -> pat_cond_54 kl_V1851th@(ApplC (Func "shen.result" _)) -> pat_cond_54 _ -> pat_cond_72 case kl_if_53 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_73 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_52 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_73 case kl_if_51 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_74 = do do return (Atom (B False)) in case kl_V1851h of kl_V1851h@(Atom (UnboundSym "shen.the")) -> pat_cond_50 kl_V1851h@(ApplC (PL "shen.the" _)) -> pat_cond_50 kl_V1851h@(ApplC (Func "shen.the" _)) -> pat_cond_50 _ -> pat_cond_74 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_75 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_48 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_75 case kl_if_47 of Atom (B (True)) -> do !appl_76 <- kl_V1851 `pseq` tl kl_V1851 !appl_77 <- appl_76 `pseq` tl appl_76 !appl_78 <- appl_77 `pseq` tl appl_77 !appl_79 <- appl_78 `pseq` tl appl_78 !appl_80 <- appl_79 `pseq` hd appl_79 !appl_81 <- appl_80 `pseq` kl_shen_aum_to_shen appl_80 let !appl_82 = Atom Nil !appl_83 <- appl_82 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "ProcessN")) appl_82 !appl_84 <- appl_81 `pseq` (appl_83 `pseq` klCons appl_81 appl_83) appl_84 `pseq` klCons (ApplC (wrapNamed "shen.lazyderef" kl_shen_lazyderef)) appl_84 Atom (B (False)) -> do !kl_if_85 <- let pat_cond_86 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_87 <- let pat_cond_88 = do !kl_if_89 <- let pat_cond_90 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_91 <- let pat_cond_92 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_93 <- let pat_cond_94 = do !kl_if_95 <- let pat_cond_96 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do !kl_if_97 <- let pat_cond_98 kl_V1851tttt kl_V1851tttth kl_V1851ttttt = do !kl_if_99 <- let pat_cond_100 = do !kl_if_101 <- let pat_cond_102 kl_V1851ttttt kl_V1851ttttth kl_V1851tttttt = do let !appl_103 = Atom Nil !kl_if_104 <- appl_103 `pseq` (kl_V1851tttttt `pseq` eq appl_103 kl_V1851tttttt) case kl_if_104 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_105 = do do return (Atom (B False)) in case kl_V1851ttttt of !(kl_V1851ttttt@(Cons (!kl_V1851ttttth) (!kl_V1851tttttt))) -> pat_cond_102 kl_V1851ttttt kl_V1851ttttth kl_V1851tttttt _ -> pat_cond_105 case kl_if_101 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_106 = do do return (Atom (B False)) in case kl_V1851tttth of kl_V1851tttth@(Atom (UnboundSym "shen.else")) -> pat_cond_100 kl_V1851tttth@(ApplC (PL "shen.else" _)) -> pat_cond_100 kl_V1851tttth@(ApplC (Func "shen.else" _)) -> pat_cond_100 _ -> pat_cond_106 case kl_if_99 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_107 = do do return (Atom (B False)) in case kl_V1851tttt of !(kl_V1851tttt@(Cons (!kl_V1851tttth) (!kl_V1851ttttt))) -> pat_cond_98 kl_V1851tttt kl_V1851tttth kl_V1851ttttt _ -> pat_cond_107 case kl_if_97 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_108 = do do return (Atom (B False)) in case kl_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_96 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> pat_cond_108 case kl_if_95 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_109 = do do return (Atom (B False)) in case kl_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.then")) -> pat_cond_94 kl_V1851tth@(ApplC (PL "shen.then" _)) -> pat_cond_94 kl_V1851tth@(ApplC (Func "shen.then" _)) -> pat_cond_94 _ -> pat_cond_109 case kl_if_93 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_110 = do do return (Atom (B False)) in case kl_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_92 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_110 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_111 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_90 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_111 case kl_if_89 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_112 = do do return (Atom (B False)) in case kl_V1851h of kl_V1851h@(Atom (UnboundSym "if")) -> pat_cond_88 kl_V1851h@(ApplC (PL "if" _)) -> pat_cond_88 kl_V1851h@(ApplC (Func "if" _)) -> pat_cond_88 _ -> pat_cond_112 case kl_if_87 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_113 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_86 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_113 case kl_if_85 of Atom (B (True)) -> do !appl_114 <- kl_V1851 `pseq` tl kl_V1851 !appl_115 <- appl_114 `pseq` hd appl_114 !appl_116 <- appl_115 `pseq` kl_shen_aum_to_shen appl_115 !appl_117 <- kl_V1851 `pseq` tl kl_V1851 !appl_118 <- appl_117 `pseq` tl appl_117 !appl_119 <- appl_118 `pseq` tl appl_118 !appl_120 <- appl_119 `pseq` hd appl_119 !appl_121 <- appl_120 `pseq` kl_shen_aum_to_shen appl_120 !appl_122 <- kl_V1851 `pseq` tl kl_V1851 !appl_123 <- appl_122 `pseq` tl appl_122 !appl_124 <- appl_123 `pseq` tl appl_123 !appl_125 <- appl_124 `pseq` tl appl_124 !appl_126 <- appl_125 `pseq` tl appl_125 !appl_127 <- appl_126 `pseq` hd appl_126 !appl_128 <- appl_127 `pseq` kl_shen_aum_to_shen appl_127 let !appl_129 = Atom Nil !appl_130 <- appl_128 `pseq` (appl_129 `pseq` klCons appl_128 appl_129) !appl_131 <- appl_121 `pseq` (appl_130 `pseq` klCons appl_121 appl_130) !appl_132 <- appl_116 `pseq` (appl_131 `pseq` klCons appl_116 appl_131) appl_132 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_132 Atom (B (False)) -> do !kl_if_133 <- let pat_cond_134 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_135 <- let pat_cond_136 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_137 <- let pat_cond_138 = do !kl_if_139 <- let pat_cond_140 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_141 <- let pat_cond_142 = do !kl_if_143 <- let pat_cond_144 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do !kl_if_145 <- let pat_cond_146 = do let !appl_147 = Atom Nil !kl_if_148 <- appl_147 `pseq` (kl_V1851tttt `pseq` eq appl_147 kl_V1851tttt) case kl_if_148 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_149 = do do return (Atom (B False)) in case kl_V1851ttth of kl_V1851ttth@(Atom (UnboundSym "shen.variable")) -> pat_cond_146 kl_V1851ttth@(ApplC (PL "shen.variable" _)) -> pat_cond_146 kl_V1851ttth@(ApplC (Func "shen.variable" _)) -> pat_cond_146 _ -> pat_cond_149 case kl_if_145 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_150 = do do return (Atom (B False)) in case kl_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_144 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> pat_cond_150 case kl_if_143 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_151 = do do return (Atom (B False)) in case kl_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.a")) -> pat_cond_142 kl_V1851tth@(ApplC (PL "shen.a" _)) -> pat_cond_142 kl_V1851tth@(ApplC (Func "shen.a" _)) -> pat_cond_142 _ -> pat_cond_151 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" pat_cond_152 = do do return (Atom (B False)) in case kl_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_140 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_152 case kl_if_139 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_153 = do do return (Atom (B False)) in case kl_V1851th of kl_V1851th@(Atom (UnboundSym "is")) -> pat_cond_138 kl_V1851th@(ApplC (PL "is" _)) -> pat_cond_138 kl_V1851th@(ApplC (Func "is" _)) -> pat_cond_138 _ -> pat_cond_153 case kl_if_137 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_154 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_136 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_154 case kl_if_135 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_155 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_134 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_155 case kl_if_133 of Atom (B (True)) -> do !appl_156 <- kl_V1851 `pseq` hd kl_V1851 let !appl_157 = Atom Nil !appl_158 <- appl_156 `pseq` (appl_157 `pseq` klCons appl_156 appl_157) appl_158 `pseq` klCons (ApplC (wrapNamed "shen.pvar?" kl_shen_pvarP)) appl_158 Atom (B (False)) -> do !kl_if_159 <- let pat_cond_160 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_161 <- let pat_cond_162 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_163 <- let pat_cond_164 = do !kl_if_165 <- let pat_cond_166 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_167 <- let pat_cond_168 = do !kl_if_169 <- let pat_cond_170 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do !kl_if_171 <- let pat_cond_172 = do !kl_if_173 <- let pat_cond_174 kl_V1851tttt kl_V1851tttth kl_V1851ttttt = do !kl_if_175 <- let pat_cond_176 = do let !appl_177 = Atom Nil !kl_if_178 <- appl_177 `pseq` (kl_V1851ttttt `pseq` eq appl_177 kl_V1851ttttt) 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_179 = do do return (Atom (B False)) in case kl_V1851tttth of kl_V1851tttth@(Atom (UnboundSym "list")) -> pat_cond_176 kl_V1851tttth@(ApplC (PL "list" _)) -> pat_cond_176 kl_V1851tttth@(ApplC (Func "list" _)) -> pat_cond_176 _ -> pat_cond_179 case kl_if_175 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_180 = do do return (Atom (B False)) in case kl_V1851tttt of !(kl_V1851tttt@(Cons (!kl_V1851tttth) (!kl_V1851ttttt))) -> pat_cond_174 kl_V1851tttt kl_V1851tttth kl_V1851ttttt _ -> pat_cond_180 case kl_if_173 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_181 = do do return (Atom (B False)) in case kl_V1851ttth of kl_V1851ttth@(Atom (UnboundSym "shen.non-empty")) -> pat_cond_172 kl_V1851ttth@(ApplC (PL "shen.non-empty" _)) -> pat_cond_172 kl_V1851ttth@(ApplC (Func "shen.non-empty" _)) -> pat_cond_172 _ -> pat_cond_181 case kl_if_171 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_182 = do do return (Atom (B False)) in case kl_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_170 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> pat_cond_182 case kl_if_169 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_183 = do do return (Atom (B False)) in case kl_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.a")) -> pat_cond_168 kl_V1851tth@(ApplC (PL "shen.a" _)) -> pat_cond_168 kl_V1851tth@(ApplC (Func "shen.a" _)) -> pat_cond_168 _ -> pat_cond_183 case kl_if_167 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_184 = do do return (Atom (B False)) in case kl_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_166 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_184 case kl_if_165 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_185 = do do return (Atom (B False)) in case kl_V1851th of kl_V1851th@(Atom (UnboundSym "is")) -> pat_cond_164 kl_V1851th@(ApplC (PL "is" _)) -> pat_cond_164 kl_V1851th@(ApplC (Func "is" _)) -> pat_cond_164 _ -> pat_cond_185 case kl_if_163 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_186 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_162 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_186 case kl_if_161 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_187 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_160 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_187 case kl_if_159 of Atom (B (True)) -> do !appl_188 <- kl_V1851 `pseq` hd kl_V1851 let !appl_189 = Atom Nil !appl_190 <- appl_188 `pseq` (appl_189 `pseq` klCons appl_188 appl_189) appl_190 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_190 Atom (B (False)) -> do !kl_if_191 <- let pat_cond_192 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_193 <- let pat_cond_194 = do !kl_if_195 <- let pat_cond_196 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_197 <- let pat_cond_198 = do !kl_if_199 <- let pat_cond_200 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_201 <- let pat_cond_202 = do !kl_if_203 <- let pat_cond_204 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do !kl_if_205 <- let pat_cond_206 = do !kl_if_207 <- let pat_cond_208 kl_V1851tttt kl_V1851tttth kl_V1851ttttt = do let !appl_209 = Atom Nil !kl_if_210 <- appl_209 `pseq` (kl_V1851tttth `pseq` eq appl_209 kl_V1851tttth) !kl_if_211 <- case kl_if_210 of Atom (B (True)) -> do !kl_if_212 <- let pat_cond_213 kl_V1851ttttt kl_V1851ttttth kl_V1851tttttt = do !kl_if_214 <- let pat_cond_215 = do !kl_if_216 <- let pat_cond_217 kl_V1851tttttt kl_V1851tttttth kl_V1851ttttttt = do !kl_if_218 <- let pat_cond_219 = do !kl_if_220 <- let pat_cond_221 kl_V1851ttttttt kl_V1851ttttttth kl_V1851tttttttt = do let !appl_222 = Atom Nil !kl_if_223 <- appl_222 `pseq` (kl_V1851tttttttt `pseq` eq appl_222 kl_V1851tttttttt) case kl_if_223 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_224 = do do return (Atom (B False)) in case kl_V1851ttttttt of !(kl_V1851ttttttt@(Cons (!kl_V1851ttttttth) (!kl_V1851tttttttt))) -> pat_cond_221 kl_V1851ttttttt kl_V1851ttttttth kl_V1851tttttttt _ -> pat_cond_224 case kl_if_220 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_225 = do do return (Atom (B False)) in case kl_V1851tttttth of kl_V1851tttttth@(Atom (UnboundSym "shen.then")) -> pat_cond_219 kl_V1851tttttth@(ApplC (PL "shen.then" _)) -> pat_cond_219 kl_V1851tttttth@(ApplC (Func "shen.then" _)) -> pat_cond_219 _ -> pat_cond_225 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" pat_cond_226 = do do return (Atom (B False)) in case kl_V1851tttttt of !(kl_V1851tttttt@(Cons (!kl_V1851tttttth) (!kl_V1851ttttttt))) -> pat_cond_217 kl_V1851tttttt kl_V1851tttttth kl_V1851ttttttt _ -> pat_cond_226 case kl_if_216 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_227 = do do return (Atom (B False)) in case kl_V1851ttttth of kl_V1851ttttth@(Atom (UnboundSym "and")) -> pat_cond_215 kl_V1851ttttth@(ApplC (PL "and" _)) -> pat_cond_215 kl_V1851ttttth@(ApplC (Func "and" _)) -> pat_cond_215 _ -> pat_cond_227 case kl_if_214 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_228 = do do return (Atom (B False)) in case kl_V1851ttttt of !(kl_V1851ttttt@(Cons (!kl_V1851ttttth) (!kl_V1851tttttt))) -> pat_cond_213 kl_V1851ttttt kl_V1851ttttth kl_V1851tttttt _ -> pat_cond_228 case kl_if_212 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_211 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_229 = do do return (Atom (B False)) in case kl_V1851tttt of !(kl_V1851tttt@(Cons (!kl_V1851tttth) (!kl_V1851ttttt))) -> pat_cond_208 kl_V1851tttt kl_V1851tttth kl_V1851ttttt _ -> pat_cond_229 case kl_if_207 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_230 = do do return (Atom (B False)) in case kl_V1851ttth of kl_V1851ttth@(Atom (UnboundSym "in")) -> pat_cond_206 kl_V1851ttth@(ApplC (PL "in" _)) -> pat_cond_206 kl_V1851ttth@(ApplC (Func "in" _)) -> pat_cond_206 _ -> pat_cond_230 case kl_if_205 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_231 = do do return (Atom (B False)) in case kl_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_204 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> pat_cond_231 case kl_if_203 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_232 = do do return (Atom (B False)) in case kl_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.variables")) -> pat_cond_202 kl_V1851tth@(ApplC (PL "shen.variables" _)) -> pat_cond_202 kl_V1851tth@(ApplC (Func "shen.variables" _)) -> pat_cond_202 _ -> pat_cond_232 case kl_if_201 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_233 = do do return (Atom (B False)) in case kl_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_200 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_233 case kl_if_199 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_234 = do do return (Atom (B False)) in case kl_V1851th of kl_V1851th@(Atom (UnboundSym "shen.the")) -> pat_cond_198 kl_V1851th@(ApplC (PL "shen.the" _)) -> pat_cond_198 kl_V1851th@(ApplC (Func "shen.the" _)) -> pat_cond_198 _ -> pat_cond_234 case kl_if_197 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_235 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_196 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_235 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_236 = do do return (Atom (B False)) in case kl_V1851h of kl_V1851h@(Atom (UnboundSym "shen.rename")) -> pat_cond_194 kl_V1851h@(ApplC (PL "shen.rename" _)) -> pat_cond_194 kl_V1851h@(ApplC (Func "shen.rename" _)) -> pat_cond_194 _ -> pat_cond_236 case kl_if_193 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_237 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_192 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_237 case kl_if_191 of Atom (B (True)) -> do !appl_238 <- kl_V1851 `pseq` tl kl_V1851 !appl_239 <- appl_238 `pseq` tl appl_238 !appl_240 <- appl_239 `pseq` tl appl_239 !appl_241 <- appl_240 `pseq` tl appl_240 !appl_242 <- appl_241 `pseq` tl appl_241 !appl_243 <- appl_242 `pseq` tl appl_242 !appl_244 <- appl_243 `pseq` tl appl_243 !appl_245 <- appl_244 `pseq` hd appl_244 appl_245 `pseq` kl_shen_aum_to_shen appl_245 Atom (B (False)) -> do !kl_if_246 <- let pat_cond_247 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_248 <- let pat_cond_249 = do !kl_if_250 <- let pat_cond_251 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_252 <- let pat_cond_253 = do !kl_if_254 <- let pat_cond_255 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_256 <- let pat_cond_257 = do !kl_if_258 <- let pat_cond_259 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do !kl_if_260 <- let pat_cond_261 = do !kl_if_262 <- let pat_cond_263 kl_V1851tttt kl_V1851tttth kl_V1851ttttt = do !kl_if_264 <- let pat_cond_265 kl_V1851tttth kl_V1851tttthh kl_V1851ttttht = do !kl_if_266 <- let pat_cond_267 kl_V1851ttttt kl_V1851ttttth kl_V1851tttttt = do !kl_if_268 <- let pat_cond_269 = do !kl_if_270 <- let pat_cond_271 kl_V1851tttttt kl_V1851tttttth kl_V1851ttttttt = do !kl_if_272 <- let pat_cond_273 = do !kl_if_274 <- let pat_cond_275 kl_V1851ttttttt kl_V1851ttttttth kl_V1851tttttttt = do let !appl_276 = Atom Nil !kl_if_277 <- appl_276 `pseq` (kl_V1851tttttttt `pseq` eq appl_276 kl_V1851tttttttt) case kl_if_277 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_278 = do do return (Atom (B False)) in case kl_V1851ttttttt of !(kl_V1851ttttttt@(Cons (!kl_V1851ttttttth) (!kl_V1851tttttttt))) -> pat_cond_275 kl_V1851ttttttt kl_V1851ttttttth kl_V1851tttttttt _ -> pat_cond_278 case kl_if_274 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_279 = do do return (Atom (B False)) in case kl_V1851tttttth of kl_V1851tttttth@(Atom (UnboundSym "shen.then")) -> pat_cond_273 kl_V1851tttttth@(ApplC (PL "shen.then" _)) -> pat_cond_273 kl_V1851tttttth@(ApplC (Func "shen.then" _)) -> pat_cond_273 _ -> pat_cond_279 case kl_if_272 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_V1851tttttt of !(kl_V1851tttttt@(Cons (!kl_V1851tttttth) (!kl_V1851ttttttt))) -> pat_cond_271 kl_V1851tttttt kl_V1851tttttth kl_V1851ttttttt _ -> pat_cond_280 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_281 = do do return (Atom (B False)) in case kl_V1851ttttth of kl_V1851ttttth@(Atom (UnboundSym "and")) -> pat_cond_269 kl_V1851ttttth@(ApplC (PL "and" _)) -> pat_cond_269 kl_V1851ttttth@(ApplC (Func "and" _)) -> pat_cond_269 _ -> pat_cond_281 case kl_if_268 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_V1851ttttt of !(kl_V1851ttttt@(Cons (!kl_V1851ttttth) (!kl_V1851tttttt))) -> pat_cond_267 kl_V1851ttttt kl_V1851ttttth kl_V1851tttttt _ -> 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_V1851tttth of !(kl_V1851tttth@(Cons (!kl_V1851tttthh) (!kl_V1851ttttht))) -> pat_cond_265 kl_V1851tttth kl_V1851tttthh kl_V1851ttttht _ -> 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_V1851tttt of !(kl_V1851tttt@(Cons (!kl_V1851tttth) (!kl_V1851ttttt))) -> pat_cond_263 kl_V1851tttt kl_V1851tttth kl_V1851ttttt _ -> 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_V1851ttth of kl_V1851ttth@(Atom (UnboundSym "in")) -> pat_cond_261 kl_V1851ttth@(ApplC (PL "in" _)) -> pat_cond_261 kl_V1851ttth@(ApplC (Func "in" _)) -> pat_cond_261 _ -> 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_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_259 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> 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_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.variables")) -> pat_cond_257 kl_V1851tth@(ApplC (PL "shen.variables" _)) -> pat_cond_257 kl_V1851tth@(ApplC (Func "shen.variables" _)) -> 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_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_255 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> 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_V1851th of kl_V1851th@(Atom (UnboundSym "shen.the")) -> pat_cond_253 kl_V1851th@(ApplC (PL "shen.the" _)) -> pat_cond_253 kl_V1851th@(ApplC (Func "shen.the" _)) -> pat_cond_253 _ -> pat_cond_289 case kl_if_252 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_290 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_251 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_290 case kl_if_250 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_291 = do do return (Atom (B False)) in case kl_V1851h of kl_V1851h@(Atom (UnboundSym "shen.rename")) -> pat_cond_249 kl_V1851h@(ApplC (PL "shen.rename" _)) -> pat_cond_249 kl_V1851h@(ApplC (Func "shen.rename" _)) -> pat_cond_249 _ -> pat_cond_291 case kl_if_248 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_292 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_247 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_292 case kl_if_246 of Atom (B (True)) -> do !appl_293 <- kl_V1851 `pseq` tl kl_V1851 !appl_294 <- appl_293 `pseq` tl appl_293 !appl_295 <- appl_294 `pseq` tl appl_294 !appl_296 <- appl_295 `pseq` tl appl_295 !appl_297 <- appl_296 `pseq` hd appl_296 !appl_298 <- appl_297 `pseq` hd appl_297 let !appl_299 = Atom Nil !appl_300 <- appl_299 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "ProcessN")) appl_299 !appl_301 <- appl_300 `pseq` klCons (ApplC (wrapNamed "shen.newpv" kl_shen_newpv)) appl_300 !appl_302 <- kl_V1851 `pseq` tl kl_V1851 !appl_303 <- appl_302 `pseq` tl appl_302 !appl_304 <- appl_303 `pseq` tl appl_303 !appl_305 <- appl_304 `pseq` tl appl_304 !appl_306 <- appl_305 `pseq` hd appl_305 !appl_307 <- appl_306 `pseq` tl appl_306 !appl_308 <- kl_V1851 `pseq` tl kl_V1851 !appl_309 <- appl_308 `pseq` tl appl_308 !appl_310 <- appl_309 `pseq` tl appl_309 !appl_311 <- appl_310 `pseq` tl appl_310 !appl_312 <- appl_311 `pseq` tl appl_311 !appl_313 <- appl_307 `pseq` (appl_312 `pseq` klCons appl_307 appl_312) !appl_314 <- appl_313 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_313 !appl_315 <- appl_314 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.variables")) appl_314 !appl_316 <- appl_315 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.the")) appl_315 !appl_317 <- appl_316 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.rename")) appl_316 !appl_318 <- appl_317 `pseq` kl_shen_aum_to_shen appl_317 let !appl_319 = Atom Nil !appl_320 <- appl_318 `pseq` (appl_319 `pseq` klCons appl_318 appl_319) !appl_321 <- appl_301 `pseq` (appl_320 `pseq` klCons appl_301 appl_320) !appl_322 <- appl_298 `pseq` (appl_321 `pseq` klCons appl_298 appl_321) appl_322 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_322 Atom (B (False)) -> do !kl_if_323 <- let pat_cond_324 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_325 <- let pat_cond_326 = do !kl_if_327 <- let pat_cond_328 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_329 <- let pat_cond_330 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_331 <- let pat_cond_332 = do !kl_if_333 <- let pat_cond_334 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do !kl_if_335 <- let pat_cond_336 kl_V1851tttt kl_V1851tttth kl_V1851ttttt = do !kl_if_337 <- let pat_cond_338 = do !kl_if_339 <- let pat_cond_340 kl_V1851ttttt kl_V1851ttttth kl_V1851tttttt = do let !appl_341 = Atom Nil !kl_if_342 <- appl_341 `pseq` (kl_V1851tttttt `pseq` eq appl_341 kl_V1851tttttt) 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_343 = do do return (Atom (B False)) in case kl_V1851ttttt of !(kl_V1851ttttt@(Cons (!kl_V1851ttttth) (!kl_V1851tttttt))) -> pat_cond_340 kl_V1851ttttt kl_V1851ttttth kl_V1851tttttt _ -> pat_cond_343 case kl_if_339 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_344 = do do return (Atom (B False)) in case kl_V1851tttth of kl_V1851tttth@(Atom (UnboundSym "in")) -> pat_cond_338 kl_V1851tttth@(ApplC (PL "in" _)) -> pat_cond_338 kl_V1851tttth@(ApplC (Func "in" _)) -> pat_cond_338 _ -> pat_cond_344 case kl_if_337 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_345 = do do return (Atom (B False)) in case kl_V1851tttt of !(kl_V1851tttt@(Cons (!kl_V1851tttth) (!kl_V1851ttttt))) -> pat_cond_336 kl_V1851tttt kl_V1851tttth kl_V1851ttttt _ -> pat_cond_345 case kl_if_335 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_346 = do do return (Atom (B False)) in case kl_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_334 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> pat_cond_346 case kl_if_333 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_347 = do do return (Atom (B False)) in case kl_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.to")) -> pat_cond_332 kl_V1851tth@(ApplC (PL "shen.to" _)) -> pat_cond_332 kl_V1851tth@(ApplC (Func "shen.to" _)) -> pat_cond_332 _ -> pat_cond_347 case kl_if_331 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_348 = do do return (Atom (B False)) in case kl_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_330 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_348 case kl_if_329 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_349 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_328 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_349 case kl_if_327 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_350 = do do return (Atom (B False)) in case kl_V1851h of kl_V1851h@(Atom (UnboundSym "bind")) -> pat_cond_326 kl_V1851h@(ApplC (PL "bind" _)) -> pat_cond_326 kl_V1851h@(ApplC (Func "bind" _)) -> pat_cond_326 _ -> pat_cond_350 case kl_if_325 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_351 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_324 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_351 case kl_if_323 of Atom (B (True)) -> do !appl_352 <- kl_V1851 `pseq` tl kl_V1851 !appl_353 <- appl_352 `pseq` hd appl_352 !appl_354 <- kl_V1851 `pseq` tl kl_V1851 !appl_355 <- appl_354 `pseq` tl appl_354 !appl_356 <- appl_355 `pseq` tl appl_355 !appl_357 <- appl_356 `pseq` hd appl_356 !appl_358 <- appl_357 `pseq` kl_shen_chwild appl_357 let !appl_359 = Atom Nil !appl_360 <- appl_359 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "ProcessN")) appl_359 !appl_361 <- appl_358 `pseq` (appl_360 `pseq` klCons appl_358 appl_360) !appl_362 <- appl_353 `pseq` (appl_361 `pseq` klCons appl_353 appl_361) !appl_363 <- appl_362 `pseq` klCons (ApplC (wrapNamed "shen.bindv" kl_shen_bindv)) appl_362 !appl_364 <- kl_V1851 `pseq` tl kl_V1851 !appl_365 <- appl_364 `pseq` tl appl_364 !appl_366 <- appl_365 `pseq` tl appl_365 !appl_367 <- appl_366 `pseq` tl appl_366 !appl_368 <- appl_367 `pseq` tl appl_367 !appl_369 <- appl_368 `pseq` hd appl_368 !appl_370 <- appl_369 `pseq` kl_shen_aum_to_shen appl_369 !appl_371 <- kl_V1851 `pseq` tl kl_V1851 !appl_372 <- appl_371 `pseq` hd appl_371 let !appl_373 = Atom Nil !appl_374 <- appl_373 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "ProcessN")) appl_373 !appl_375 <- appl_372 `pseq` (appl_374 `pseq` klCons appl_372 appl_374) !appl_376 <- appl_375 `pseq` klCons (ApplC (wrapNamed "shen.unbindv" kl_shen_unbindv)) appl_375 let !appl_377 = Atom Nil !appl_378 <- appl_377 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_377 !appl_379 <- appl_376 `pseq` (appl_378 `pseq` klCons appl_376 appl_378) !appl_380 <- appl_379 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_379 let !appl_381 = Atom Nil !appl_382 <- appl_380 `pseq` (appl_381 `pseq` klCons appl_380 appl_381) !appl_383 <- appl_370 `pseq` (appl_382 `pseq` klCons appl_370 appl_382) !appl_384 <- appl_383 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_383 !appl_385 <- appl_384 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_384 let !appl_386 = Atom Nil !appl_387 <- appl_385 `pseq` (appl_386 `pseq` klCons appl_385 appl_386) !appl_388 <- appl_363 `pseq` (appl_387 `pseq` klCons appl_363 appl_387) appl_388 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_388 Atom (B (False)) -> do !kl_if_389 <- let pat_cond_390 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_391 <- let pat_cond_392 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_393 <- let pat_cond_394 = do !kl_if_395 <- let pat_cond_396 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_397 <- let pat_cond_398 = do !kl_if_399 <- let pat_cond_400 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do !kl_if_401 <- let pat_cond_402 = do !kl_if_403 <- let pat_cond_404 kl_V1851tttt kl_V1851tttth kl_V1851ttttt = do let !appl_405 = Atom Nil !kl_if_406 <- appl_405 `pseq` (kl_V1851ttttt `pseq` eq appl_405 kl_V1851ttttt) case kl_if_406 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_407 = do do return (Atom (B False)) in case kl_V1851tttt of !(kl_V1851tttt@(Cons (!kl_V1851tttth) (!kl_V1851ttttt))) -> pat_cond_404 kl_V1851tttt kl_V1851tttth kl_V1851ttttt _ -> pat_cond_407 case kl_if_403 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_408 = do do return (Atom (B False)) in case kl_V1851ttth of kl_V1851ttth@(Atom (UnboundSym "shen.to")) -> pat_cond_402 kl_V1851ttth@(ApplC (PL "shen.to" _)) -> pat_cond_402 kl_V1851ttth@(ApplC (Func "shen.to" _)) -> pat_cond_402 _ -> pat_cond_408 case kl_if_401 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_409 = do do return (Atom (B False)) in case kl_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_400 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> pat_cond_409 case kl_if_399 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_410 = do do return (Atom (B False)) in case kl_V1851tth of kl_V1851tth@(Atom (UnboundSym "identical")) -> pat_cond_398 kl_V1851tth@(ApplC (PL "identical" _)) -> pat_cond_398 kl_V1851tth@(ApplC (Func "identical" _)) -> pat_cond_398 _ -> pat_cond_410 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_411 = do do return (Atom (B False)) in case kl_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_396 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_411 case kl_if_395 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_412 = do do return (Atom (B False)) in case kl_V1851th of kl_V1851th@(Atom (UnboundSym "is")) -> pat_cond_394 kl_V1851th@(ApplC (PL "is" _)) -> pat_cond_394 kl_V1851th@(ApplC (Func "is" _)) -> pat_cond_394 _ -> pat_cond_412 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_413 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_392 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_413 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" pat_cond_414 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_390 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_414 case kl_if_389 of Atom (B (True)) -> do !appl_415 <- kl_V1851 `pseq` tl kl_V1851 !appl_416 <- appl_415 `pseq` tl appl_415 !appl_417 <- appl_416 `pseq` tl appl_416 !appl_418 <- appl_417 `pseq` tl appl_417 !appl_419 <- appl_418 `pseq` hd appl_418 !appl_420 <- kl_V1851 `pseq` hd kl_V1851 let !appl_421 = Atom Nil !appl_422 <- appl_420 `pseq` (appl_421 `pseq` klCons appl_420 appl_421) !appl_423 <- appl_419 `pseq` (appl_422 `pseq` klCons appl_419 appl_422) appl_423 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_423 Atom (B (False)) -> do let pat_cond_424 = do return (Atom (B False)) pat_cond_425 = do !kl_if_426 <- let pat_cond_427 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_428 <- let pat_cond_429 = do !kl_if_430 <- let pat_cond_431 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_432 <- let pat_cond_433 = do !kl_if_434 <- let pat_cond_435 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_436 <- let pat_cond_437 = do !kl_if_438 <- let pat_cond_439 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do let !appl_440 = Atom Nil !kl_if_441 <- appl_440 `pseq` (kl_V1851tttt `pseq` eq appl_440 kl_V1851tttt) 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_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_439 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> 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_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.of")) -> pat_cond_437 kl_V1851tth@(ApplC (PL "shen.of" _)) -> pat_cond_437 kl_V1851tth@(ApplC (Func "shen.of" _)) -> pat_cond_437 _ -> pat_cond_443 case kl_if_436 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_444 = do do return (Atom (B False)) in case kl_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_435 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_444 case kl_if_434 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_445 = do do return (Atom (B False)) in case kl_V1851th of kl_V1851th@(Atom (UnboundSym "head")) -> pat_cond_433 kl_V1851th@(ApplC (PL "head" _)) -> pat_cond_433 kl_V1851th@(ApplC (Func "head" _)) -> pat_cond_433 _ -> pat_cond_445 case kl_if_432 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_446 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_431 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_446 case kl_if_430 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_447 = do do return (Atom (B False)) in case kl_V1851h of kl_V1851h@(Atom (UnboundSym "shen.the")) -> pat_cond_429 kl_V1851h@(ApplC (PL "shen.the" _)) -> pat_cond_429 kl_V1851h@(ApplC (Func "shen.the" _)) -> pat_cond_429 _ -> pat_cond_447 case kl_if_428 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_448 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_427 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_448 case kl_if_426 of Atom (B (True)) -> do !appl_449 <- kl_V1851 `pseq` tl kl_V1851 !appl_450 <- appl_449 `pseq` tl appl_449 !appl_451 <- appl_450 `pseq` tl appl_450 appl_451 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_451 Atom (B (False)) -> do !kl_if_452 <- let pat_cond_453 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_454 <- let pat_cond_455 = do !kl_if_456 <- let pat_cond_457 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_458 <- let pat_cond_459 = do !kl_if_460 <- let pat_cond_461 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_462 <- let pat_cond_463 = do !kl_if_464 <- let pat_cond_465 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do let !appl_466 = Atom Nil !kl_if_467 <- appl_466 `pseq` (kl_V1851tttt `pseq` eq appl_466 kl_V1851tttt) case kl_if_467 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_468 = do do return (Atom (B False)) in case kl_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_465 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> pat_cond_468 case kl_if_464 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_469 = do do return (Atom (B False)) in case kl_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.of")) -> pat_cond_463 kl_V1851tth@(ApplC (PL "shen.of" _)) -> pat_cond_463 kl_V1851tth@(ApplC (Func "shen.of" _)) -> pat_cond_463 _ -> pat_cond_469 case kl_if_462 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_470 = do do return (Atom (B False)) in case kl_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_461 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_470 case kl_if_460 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_471 = do do return (Atom (B False)) in case kl_V1851th of kl_V1851th@(Atom (UnboundSym "tail")) -> pat_cond_459 kl_V1851th@(ApplC (PL "tail" _)) -> pat_cond_459 kl_V1851th@(ApplC (Func "tail" _)) -> pat_cond_459 _ -> pat_cond_471 case kl_if_458 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_472 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_457 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_472 case kl_if_456 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_473 = do do return (Atom (B False)) in case kl_V1851h of kl_V1851h@(Atom (UnboundSym "shen.the")) -> pat_cond_455 kl_V1851h@(ApplC (PL "shen.the" _)) -> pat_cond_455 kl_V1851h@(ApplC (Func "shen.the" _)) -> pat_cond_455 _ -> pat_cond_473 case kl_if_454 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_474 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_453 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_474 case kl_if_452 of Atom (B (True)) -> do !appl_475 <- kl_V1851 `pseq` tl kl_V1851 !appl_476 <- appl_475 `pseq` tl appl_475 !appl_477 <- appl_476 `pseq` tl appl_476 appl_477 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_477 Atom (B (False)) -> do !kl_if_478 <- let pat_cond_479 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_480 <- let pat_cond_481 = do !kl_if_482 <- let pat_cond_483 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_484 <- let pat_cond_485 = do !kl_if_486 <- let pat_cond_487 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_488 <- let pat_cond_489 = do let !appl_490 = Atom Nil !kl_if_491 <- appl_490 `pseq` (kl_V1851ttt `pseq` eq appl_490 kl_V1851ttt) case kl_if_491 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_492 = do do return (Atom (B False)) in case kl_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.stack")) -> pat_cond_489 kl_V1851tth@(ApplC (PL "shen.stack" _)) -> pat_cond_489 kl_V1851tth@(ApplC (Func "shen.stack" _)) -> pat_cond_489 _ -> pat_cond_492 case kl_if_488 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_493 = do do return (Atom (B False)) in case kl_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_487 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_493 case kl_if_486 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_494 = do do return (Atom (B False)) in case kl_V1851th of kl_V1851th@(Atom (UnboundSym "shen.the")) -> pat_cond_485 kl_V1851th@(ApplC (PL "shen.the" _)) -> pat_cond_485 kl_V1851th@(ApplC (Func "shen.the" _)) -> pat_cond_485 _ -> pat_cond_494 case kl_if_484 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_495 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_483 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_495 case kl_if_482 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_496 = do do return (Atom (B False)) in case kl_V1851h of kl_V1851h@(Atom (UnboundSym "shen.pop")) -> pat_cond_481 kl_V1851h@(ApplC (PL "shen.pop" _)) -> pat_cond_481 kl_V1851h@(ApplC (Func "shen.pop" _)) -> pat_cond_481 _ -> pat_cond_496 case kl_if_480 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_497 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_479 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_497 case kl_if_478 of Atom (B (True)) -> do let !appl_498 = Atom Nil !appl_499 <- appl_498 `pseq` klCons (ApplC (PL "shen.incinfs" kl_shen_incinfs)) appl_498 let !appl_500 = Atom Nil !appl_501 <- appl_500 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Continuation")) appl_500 !appl_502 <- appl_501 `pseq` klCons (ApplC (wrapNamed "thaw" kl_thaw)) appl_501 let !appl_503 = Atom Nil !appl_504 <- appl_502 `pseq` (appl_503 `pseq` klCons appl_502 appl_503) !appl_505 <- appl_499 `pseq` (appl_504 `pseq` klCons appl_499 appl_504) appl_505 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_505 Atom (B (False)) -> do !kl_if_506 <- let pat_cond_507 kl_V1851 kl_V1851h kl_V1851t = do !kl_if_508 <- let pat_cond_509 = do !kl_if_510 <- let pat_cond_511 kl_V1851t kl_V1851th kl_V1851tt = do !kl_if_512 <- let pat_cond_513 = do !kl_if_514 <- let pat_cond_515 kl_V1851tt kl_V1851tth kl_V1851ttt = do !kl_if_516 <- let pat_cond_517 = do !kl_if_518 <- let pat_cond_519 kl_V1851ttt kl_V1851ttth kl_V1851tttt = do let !appl_520 = Atom Nil !kl_if_521 <- appl_520 `pseq` (kl_V1851tttt `pseq` eq appl_520 kl_V1851tttt) case kl_if_521 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_522 = do do return (Atom (B False)) in case kl_V1851ttt of !(kl_V1851ttt@(Cons (!kl_V1851ttth) (!kl_V1851tttt))) -> pat_cond_519 kl_V1851ttt kl_V1851ttth kl_V1851tttt _ -> pat_cond_522 case kl_if_518 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_523 = do do return (Atom (B False)) in case kl_V1851tth of kl_V1851tth@(Atom (UnboundSym "shen.continuation")) -> pat_cond_517 kl_V1851tth@(ApplC (PL "shen.continuation" _)) -> pat_cond_517 kl_V1851tth@(ApplC (Func "shen.continuation" _)) -> pat_cond_517 _ -> pat_cond_523 case kl_if_516 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_524 = do do return (Atom (B False)) in case kl_V1851tt of !(kl_V1851tt@(Cons (!kl_V1851tth) (!kl_V1851ttt))) -> pat_cond_515 kl_V1851tt kl_V1851tth kl_V1851ttt _ -> pat_cond_524 case kl_if_514 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_525 = do do return (Atom (B False)) in case kl_V1851th of kl_V1851th@(Atom (UnboundSym "shen.the")) -> pat_cond_513 kl_V1851th@(ApplC (PL "shen.the" _)) -> pat_cond_513 kl_V1851th@(ApplC (Func "shen.the" _)) -> pat_cond_513 _ -> pat_cond_525 case kl_if_512 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_526 = do do return (Atom (B False)) in case kl_V1851t of !(kl_V1851t@(Cons (!kl_V1851th) (!kl_V1851tt))) -> pat_cond_511 kl_V1851t kl_V1851th kl_V1851tt _ -> pat_cond_526 case kl_if_510 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_527 = do do return (Atom (B False)) in case kl_V1851h of kl_V1851h@(Atom (UnboundSym "call")) -> pat_cond_509 kl_V1851h@(ApplC (PL "call" _)) -> pat_cond_509 kl_V1851h@(ApplC (Func "call" _)) -> pat_cond_509 _ -> pat_cond_527 case kl_if_508 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_528 = do do return (Atom (B False)) in case kl_V1851 of !(kl_V1851@(Cons (!kl_V1851h) (!kl_V1851t))) -> pat_cond_507 kl_V1851 kl_V1851h kl_V1851t _ -> pat_cond_528 case kl_if_506 of Atom (B (True)) -> do let !appl_529 = Atom Nil !appl_530 <- appl_529 `pseq` klCons (ApplC (PL "shen.incinfs" kl_shen_incinfs)) appl_529 !appl_531 <- kl_V1851 `pseq` tl kl_V1851 !appl_532 <- appl_531 `pseq` tl appl_531 !appl_533 <- appl_532 `pseq` tl appl_532 !appl_534 <- appl_533 `pseq` hd appl_533 !appl_535 <- appl_534 `pseq` kl_shen_chwild appl_534 !appl_536 <- appl_535 `pseq` kl_shen_call_the_continuation appl_535 (Core.Types.Atom (Core.Types.UnboundSym "ProcessN")) (Core.Types.Atom (Core.Types.UnboundSym "Continuation")) let !appl_537 = Atom Nil !appl_538 <- appl_536 `pseq` (appl_537 `pseq` klCons appl_536 appl_537) !appl_539 <- appl_530 `pseq` (appl_538 `pseq` klCons appl_530 appl_538) appl_539 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_539 Atom (B (False)) -> do do return kl_V1851 _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" in case kl_V1851 of kl_V1851@(Atom (UnboundSym "shen.failed!")) -> pat_cond_424 kl_V1851@(ApplC (PL "shen.failed!" _)) -> pat_cond_424 kl_V1851@(ApplC (Func "shen.failed!" _)) -> pat_cond_424 _ -> pat_cond_425 _ -> 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" _ -> throwError "if: expected boolean" kl_shen_chwild :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_chwild (!kl_V1853) = do let pat_cond_0 = do let !appl_1 = Atom Nil !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "ProcessN")) appl_1 appl_2 `pseq` klCons (ApplC (wrapNamed "shen.newpv" kl_shen_newpv)) appl_2 pat_cond_3 kl_V1853 kl_V1853h kl_V1853t = do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_chwild kl_Z))) appl_4 `pseq` (kl_V1853 `pseq` kl_map appl_4 kl_V1853) pat_cond_5 = do do return kl_V1853 in case kl_V1853 of kl_V1853@(Atom (UnboundSym "_")) -> pat_cond_0 kl_V1853@(ApplC (PL "_" _)) -> pat_cond_0 kl_V1853@(ApplC (Func "_" _)) -> pat_cond_0 !(kl_V1853@(Cons (!kl_V1853h) (!kl_V1853t))) -> pat_cond_3 kl_V1853 kl_V1853h kl_V1853t _ -> pat_cond_5 kl_shen_newpv :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_newpv (!kl_V1855) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_CountPlus1) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_IncVar) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Vector) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_ResizeVectorIfNeeded) -> do kl_CountPlus1 `pseq` kl_shen_mk_pvar kl_CountPlus1))) !appl_4 <- kl_Vector `pseq` kl_limit kl_Vector !kl_if_5 <- kl_CountPlus1 `pseq` (appl_4 `pseq` eq kl_CountPlus1 appl_4) !appl_6 <- case kl_if_5 of Atom (B (True)) -> do kl_V1855 `pseq` (kl_CountPlus1 `pseq` kl_shen_resizeprocessvector kl_V1855 kl_CountPlus1) Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip")) _ -> throwError "if: expected boolean" appl_6 `pseq` applyWrapper appl_3 [appl_6]))) !appl_7 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*prologvectors*")) !appl_8 <- appl_7 `pseq` (kl_V1855 `pseq` addressFrom appl_7 kl_V1855) appl_8 `pseq` applyWrapper appl_2 [appl_8]))) !appl_9 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*varcounter*")) !appl_10 <- appl_9 `pseq` (kl_V1855 `pseq` (kl_CountPlus1 `pseq` addressTo appl_9 kl_V1855 kl_CountPlus1)) appl_10 `pseq` applyWrapper appl_1 [appl_10]))) !appl_11 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*varcounter*")) !appl_12 <- appl_11 `pseq` (kl_V1855 `pseq` addressFrom appl_11 kl_V1855) !appl_13 <- appl_12 `pseq` add appl_12 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_13 `pseq` applyWrapper appl_0 [appl_13] kl_shen_resizeprocessvector :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_resizeprocessvector (!kl_V1858) (!kl_V1859) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Vector) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_BigVector) -> do !appl_2 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*prologvectors*")) appl_2 `pseq` (kl_V1858 `pseq` (kl_BigVector `pseq` addressTo appl_2 kl_V1858 kl_BigVector))))) !appl_3 <- kl_V1859 `pseq` (kl_V1859 `pseq` add kl_V1859 kl_V1859) !appl_4 <- kl_Vector `pseq` (appl_3 `pseq` kl_shen_resize_vector kl_Vector appl_3 (Core.Types.Atom (Core.Types.UnboundSym "shen.-null-"))) appl_4 `pseq` applyWrapper appl_1 [appl_4]))) !appl_5 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*prologvectors*")) !appl_6 <- appl_5 `pseq` (kl_V1858 `pseq` addressFrom appl_5 kl_V1858) appl_6 `pseq` applyWrapper appl_0 [appl_6] kl_shen_resize_vector :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_resize_vector (!kl_V1863) (!kl_V1864) (!kl_V1865) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_BigVector) -> do !appl_1 <- kl_V1863 `pseq` kl_limit kl_V1863 kl_V1863 `pseq` (kl_BigVector `pseq` (appl_1 `pseq` (kl_V1864 `pseq` (kl_V1865 `pseq` kl_shen_copy_vector kl_V1863 kl_BigVector appl_1 kl_V1864 kl_V1865))))))) !appl_2 <- kl_V1864 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V1864 !appl_3 <- appl_2 `pseq` absvector appl_2 !appl_4 <- appl_3 `pseq` (kl_V1864 `pseq` addressTo appl_3 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) kl_V1864) appl_4 `pseq` applyWrapper appl_0 [appl_4] kl_shen_copy_vector :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_copy_vector (!kl_V1871) (!kl_V1872) (!kl_V1873) (!kl_V1874) (!kl_V1875) = do !appl_0 <- kl_V1873 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V1873 !appl_1 <- kl_V1874 `pseq` add kl_V1874 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) !appl_2 <- kl_V1873 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V1873 !appl_3 <- kl_V1871 `pseq` (kl_V1872 `pseq` (appl_2 `pseq` kl_shen_copy_vector_stage_1 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V1871 kl_V1872 appl_2)) appl_0 `pseq` (appl_1 `pseq` (kl_V1875 `pseq` (appl_3 `pseq` kl_shen_copy_vector_stage_2 appl_0 appl_1 kl_V1875 appl_3))) kl_shen_copy_vector_stage_1 :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_copy_vector_stage_1 (!kl_V1883) (!kl_V1884) (!kl_V1885) (!kl_V1886) = do !kl_if_0 <- kl_V1886 `pseq` (kl_V1883 `pseq` eq kl_V1886 kl_V1883) case kl_if_0 of Atom (B (True)) -> do return kl_V1885 Atom (B (False)) -> do do !appl_1 <- kl_V1883 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V1883 !appl_2 <- kl_V1884 `pseq` (kl_V1883 `pseq` addressFrom kl_V1884 kl_V1883) !appl_3 <- kl_V1885 `pseq` (kl_V1883 `pseq` (appl_2 `pseq` addressTo kl_V1885 kl_V1883 appl_2)) appl_1 `pseq` (kl_V1884 `pseq` (appl_3 `pseq` (kl_V1886 `pseq` kl_shen_copy_vector_stage_1 appl_1 kl_V1884 appl_3 kl_V1886))) _ -> throwError "if: expected boolean" kl_shen_copy_vector_stage_2 :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_copy_vector_stage_2 (!kl_V1894) (!kl_V1895) (!kl_V1896) (!kl_V1897) = do !kl_if_0 <- kl_V1895 `pseq` (kl_V1894 `pseq` eq kl_V1895 kl_V1894) case kl_if_0 of Atom (B (True)) -> do return kl_V1897 Atom (B (False)) -> do do !appl_1 <- kl_V1894 `pseq` add kl_V1894 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) !appl_2 <- kl_V1897 `pseq` (kl_V1894 `pseq` (kl_V1896 `pseq` addressTo kl_V1897 kl_V1894 kl_V1896)) appl_1 `pseq` (kl_V1895 `pseq` (kl_V1896 `pseq` (appl_2 `pseq` kl_shen_copy_vector_stage_2 appl_1 kl_V1895 kl_V1896 appl_2))) _ -> throwError "if: expected boolean" kl_shen_mk_pvar :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_mk_pvar (!kl_V1899) = do !appl_0 <- absvector (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) !appl_1 <- appl_0 `pseq` addressTo appl_0 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) (ApplC (wrapNamed "shen.pvar" kl_shen_pvar)) appl_1 `pseq` (kl_V1899 `pseq` addressTo appl_1 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V1899) kl_shen_pvarP :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_pvarP (!kl_V1901) = do !kl_if_0 <- kl_V1901 `pseq` absvectorP kl_V1901 case kl_if_0 of Atom (B (True)) -> do let !appl_1 = ApplC (PL "thunk" (do return (Core.Types.Atom (Core.Types.UnboundSym "shen.not-pvar")))) !appl_2 <- kl_V1901 `pseq` (appl_1 `pseq` kl_LB_addressDivor kl_V1901 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_1) !kl_if_3 <- appl_2 `pseq` eq appl_2 (ApplC (wrapNamed "shen.pvar" kl_shen_pvar)) case kl_if_3 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" kl_shen_bindv :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_bindv (!kl_V1905) (!kl_V1906) (!kl_V1907) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Vector) -> do !appl_1 <- kl_V1905 `pseq` addressFrom kl_V1905 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_Vector `pseq` (appl_1 `pseq` (kl_V1906 `pseq` addressTo kl_Vector appl_1 kl_V1906))))) !appl_2 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*prologvectors*")) !appl_3 <- appl_2 `pseq` (kl_V1907 `pseq` addressFrom appl_2 kl_V1907) appl_3 `pseq` applyWrapper appl_0 [appl_3] kl_shen_unbindv :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_unbindv (!kl_V1910) (!kl_V1911) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Vector) -> do !appl_1 <- kl_V1910 `pseq` addressFrom kl_V1910 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_Vector `pseq` (appl_1 `pseq` addressTo kl_Vector appl_1 (Core.Types.Atom (Core.Types.UnboundSym "shen.-null-")))))) !appl_2 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*prologvectors*")) !appl_3 <- appl_2 `pseq` (kl_V1911 `pseq` addressFrom appl_2 kl_V1911) appl_3 `pseq` applyWrapper appl_0 [appl_3] kl_shen_incinfs :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_incinfs = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*infs*")) !appl_1 <- appl_0 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_0 appl_1 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*infs*")) appl_1 kl_shen_call_the_continuation :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_call_the_continuation (!kl_V1915) (!kl_V1916) (!kl_V1917) = do !kl_if_0 <- let pat_cond_1 kl_V1915 kl_V1915h kl_V1915t = do !kl_if_2 <- let pat_cond_3 kl_V1915h kl_V1915hh kl_V1915ht = do let !appl_4 = Atom Nil !kl_if_5 <- appl_4 `pseq` (kl_V1915t `pseq` eq appl_4 kl_V1915t) 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_V1915h of !(kl_V1915h@(Cons (!kl_V1915hh) (!kl_V1915ht))) -> pat_cond_3 kl_V1915h kl_V1915hh kl_V1915ht _ -> 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_V1915 of !(kl_V1915@(Cons (!kl_V1915h) (!kl_V1915t))) -> pat_cond_1 kl_V1915 kl_V1915h kl_V1915t _ -> pat_cond_7 case kl_if_0 of Atom (B (True)) -> do !appl_8 <- kl_V1915 `pseq` hd kl_V1915 !appl_9 <- appl_8 `pseq` hd appl_8 !appl_10 <- kl_V1915 `pseq` hd kl_V1915 !appl_11 <- appl_10 `pseq` tl appl_10 let !appl_12 = Atom Nil !appl_13 <- kl_V1917 `pseq` (appl_12 `pseq` klCons kl_V1917 appl_12) !appl_14 <- kl_V1916 `pseq` (appl_13 `pseq` klCons kl_V1916 appl_13) !appl_15 <- appl_11 `pseq` (appl_14 `pseq` kl_append appl_11 appl_14) appl_9 `pseq` (appl_15 `pseq` klCons appl_9 appl_15) Atom (B (False)) -> do let pat_cond_16 kl_V1915 kl_V1915h kl_V1915hh kl_V1915ht kl_V1915t = do let !appl_17 = ApplC (Func "lambda" (Context (\(!kl_NewContinuation) -> do let !appl_18 = Atom Nil !appl_19 <- kl_NewContinuation `pseq` (appl_18 `pseq` klCons kl_NewContinuation appl_18) !appl_20 <- kl_V1916 `pseq` (appl_19 `pseq` klCons kl_V1916 appl_19) !appl_21 <- kl_V1915ht `pseq` (appl_20 `pseq` kl_append kl_V1915ht appl_20) kl_V1915hh `pseq` (appl_21 `pseq` klCons kl_V1915hh appl_21)))) !appl_22 <- kl_V1915t `pseq` (kl_V1916 `pseq` (kl_V1917 `pseq` kl_shen_newcontinuation kl_V1915t kl_V1916 kl_V1917)) appl_22 `pseq` applyWrapper appl_17 [appl_22] pat_cond_23 = do do let !aw_24 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_24 [ApplC (wrapNamed "shen.call_the_continuation" kl_shen_call_the_continuation)] in case kl_V1915 of !(kl_V1915@(Cons (!(kl_V1915h@(Cons (!kl_V1915hh) (!kl_V1915ht)))) (!kl_V1915t))) -> pat_cond_16 kl_V1915 kl_V1915h kl_V1915hh kl_V1915ht kl_V1915t _ -> pat_cond_23 _ -> throwError "if: expected boolean" kl_shen_newcontinuation :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_newcontinuation (!kl_V1921) (!kl_V1922) (!kl_V1923) = do let !appl_0 = Atom Nil !kl_if_1 <- appl_0 `pseq` (kl_V1921 `pseq` eq appl_0 kl_V1921) case kl_if_1 of Atom (B (True)) -> do return kl_V1923 Atom (B (False)) -> do let pat_cond_2 kl_V1921 kl_V1921h kl_V1921hh kl_V1921ht kl_V1921t = do !appl_3 <- kl_V1921t `pseq` (kl_V1922 `pseq` (kl_V1923 `pseq` kl_shen_newcontinuation kl_V1921t kl_V1922 kl_V1923)) let !appl_4 = Atom Nil !appl_5 <- appl_3 `pseq` (appl_4 `pseq` klCons appl_3 appl_4) !appl_6 <- kl_V1922 `pseq` (appl_5 `pseq` klCons kl_V1922 appl_5) !appl_7 <- kl_V1921ht `pseq` (appl_6 `pseq` kl_append kl_V1921ht appl_6) !appl_8 <- kl_V1921hh `pseq` (appl_7 `pseq` klCons kl_V1921hh appl_7) let !appl_9 = Atom Nil !appl_10 <- appl_8 `pseq` (appl_9 `pseq` klCons appl_8 appl_9) appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "freeze")) 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.newcontinuation" kl_shen_newcontinuation)] in case kl_V1921 of !(kl_V1921@(Cons (!(kl_V1921h@(Cons (!kl_V1921hh) (!kl_V1921ht)))) (!kl_V1921t))) -> pat_cond_2 kl_V1921 kl_V1921h kl_V1921hh kl_V1921ht kl_V1921t _ -> pat_cond_11 _ -> throwError "if: expected boolean" kl_return :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_return (!kl_V1931) (!kl_V1932) (!kl_V1933) = do kl_V1931 `pseq` (kl_V1932 `pseq` kl_shen_deref kl_V1931 kl_V1932) kl_shen_measureAndreturn :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_measureAndreturn (!kl_V1941) (!kl_V1942) (!kl_V1943) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*infs*")) let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.app") !appl_2 <- appl_0 `pseq` applyWrapper aw_1 [appl_0, Core.Types.Atom (Core.Types.Str " inferences\n"), Core.Types.Atom (Core.Types.UnboundSym "shen.a")] !appl_3 <- kl_stoutput let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush") !appl_5 <- appl_2 `pseq` (appl_3 `pseq` applyWrapper aw_4 [appl_2, appl_3]) !appl_6 <- kl_V1941 `pseq` (kl_V1942 `pseq` kl_shen_deref kl_V1941 kl_V1942) appl_5 `pseq` (appl_6 `pseq` kl_do appl_5 appl_6) kl_unify :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_unify (!kl_V1948) (!kl_V1949) (!kl_V1950) (!kl_V1951) = do !appl_0 <- kl_V1948 `pseq` (kl_V1950 `pseq` kl_shen_lazyderef kl_V1948 kl_V1950) !appl_1 <- kl_V1949 `pseq` (kl_V1950 `pseq` kl_shen_lazyderef kl_V1949 kl_V1950) appl_0 `pseq` (appl_1 `pseq` (kl_V1950 `pseq` (kl_V1951 `pseq` kl_shen_lzyEq appl_0 appl_1 kl_V1950 kl_V1951))) kl_shen_lzyEq :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_lzyEq (!kl_V1973) (!kl_V1974) (!kl_V1975) (!kl_V1976) = do !kl_if_0 <- kl_V1974 `pseq` (kl_V1973 `pseq` eq kl_V1974 kl_V1973) case kl_if_0 of Atom (B (True)) -> do kl_V1976 `pseq` kl_thaw kl_V1976 Atom (B (False)) -> do !kl_if_1 <- kl_V1973 `pseq` kl_shen_pvarP kl_V1973 case kl_if_1 of Atom (B (True)) -> do kl_V1973 `pseq` (kl_V1974 `pseq` (kl_V1975 `pseq` (kl_V1976 `pseq` kl_bind kl_V1973 kl_V1974 kl_V1975 kl_V1976))) Atom (B (False)) -> do !kl_if_2 <- kl_V1974 `pseq` kl_shen_pvarP kl_V1974 case kl_if_2 of Atom (B (True)) -> do kl_V1974 `pseq` (kl_V1973 `pseq` (kl_V1975 `pseq` (kl_V1976 `pseq` kl_bind kl_V1974 kl_V1973 kl_V1975 kl_V1976))) Atom (B (False)) -> do !kl_if_3 <- let pat_cond_4 kl_V1973 kl_V1973h kl_V1973t = do let pat_cond_5 kl_V1974 kl_V1974h kl_V1974t = do return (Atom (B True)) pat_cond_6 = do do return (Atom (B False)) in case kl_V1974 of !(kl_V1974@(Cons (!kl_V1974h) (!kl_V1974t))) -> pat_cond_5 kl_V1974 kl_V1974h kl_V1974t _ -> pat_cond_6 pat_cond_7 = do do return (Atom (B False)) in case kl_V1973 of !(kl_V1973@(Cons (!kl_V1973h) (!kl_V1973t))) -> pat_cond_4 kl_V1973 kl_V1973h kl_V1973t _ -> pat_cond_7 case kl_if_3 of Atom (B (True)) -> do !appl_8 <- kl_V1973 `pseq` hd kl_V1973 !appl_9 <- appl_8 `pseq` (kl_V1975 `pseq` kl_shen_lazyderef appl_8 kl_V1975) !appl_10 <- kl_V1974 `pseq` hd kl_V1974 !appl_11 <- appl_10 `pseq` (kl_V1975 `pseq` kl_shen_lazyderef appl_10 kl_V1975) let !appl_12 = ApplC (PL "thunk" (do !appl_13 <- kl_V1973 `pseq` tl kl_V1973 !appl_14 <- appl_13 `pseq` (kl_V1975 `pseq` kl_shen_lazyderef appl_13 kl_V1975) !appl_15 <- kl_V1974 `pseq` tl kl_V1974 !appl_16 <- appl_15 `pseq` (kl_V1975 `pseq` kl_shen_lazyderef appl_15 kl_V1975) appl_14 `pseq` (appl_16 `pseq` (kl_V1975 `pseq` (kl_V1976 `pseq` kl_shen_lzyEq appl_14 appl_16 kl_V1975 kl_V1976))))) appl_9 `pseq` (appl_11 `pseq` (kl_V1975 `pseq` (appl_12 `pseq` kl_shen_lzyEq appl_9 appl_11 kl_V1975 appl_12))) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_deref :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_deref (!kl_V1979) (!kl_V1980) = do let pat_cond_0 kl_V1979 kl_V1979h kl_V1979t = do !appl_1 <- kl_V1979h `pseq` (kl_V1980 `pseq` kl_shen_deref kl_V1979h kl_V1980) !appl_2 <- kl_V1979t `pseq` (kl_V1980 `pseq` kl_shen_deref kl_V1979t kl_V1980) appl_1 `pseq` (appl_2 `pseq` klCons appl_1 appl_2) pat_cond_3 = do do !kl_if_4 <- kl_V1979 `pseq` kl_shen_pvarP kl_V1979 case kl_if_4 of Atom (B (True)) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_Value) -> do let pat_cond_6 = do return kl_V1979 pat_cond_7 = do do kl_Value `pseq` (kl_V1980 `pseq` kl_shen_deref kl_Value kl_V1980) in case kl_Value of kl_Value@(Atom (UnboundSym "shen.-null-")) -> pat_cond_6 kl_Value@(ApplC (PL "shen.-null-" _)) -> pat_cond_6 kl_Value@(ApplC (Func "shen.-null-" _)) -> pat_cond_6 _ -> pat_cond_7))) !appl_8 <- kl_V1979 `pseq` (kl_V1980 `pseq` kl_shen_valvector kl_V1979 kl_V1980) appl_8 `pseq` applyWrapper appl_5 [appl_8] Atom (B (False)) -> do do return kl_V1979 _ -> throwError "if: expected boolean" in case kl_V1979 of !(kl_V1979@(Cons (!kl_V1979h) (!kl_V1979t))) -> pat_cond_0 kl_V1979 kl_V1979h kl_V1979t _ -> pat_cond_3 kl_shen_lazyderef :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_lazyderef (!kl_V1983) (!kl_V1984) = do !kl_if_0 <- kl_V1983 `pseq` kl_shen_pvarP kl_V1983 case kl_if_0 of Atom (B (True)) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Value) -> do let pat_cond_2 = do return kl_V1983 pat_cond_3 = do do kl_Value `pseq` (kl_V1984 `pseq` kl_shen_lazyderef kl_Value kl_V1984) in case kl_Value of kl_Value@(Atom (UnboundSym "shen.-null-")) -> pat_cond_2 kl_Value@(ApplC (PL "shen.-null-" _)) -> pat_cond_2 kl_Value@(ApplC (Func "shen.-null-" _)) -> pat_cond_2 _ -> pat_cond_3))) !appl_4 <- kl_V1983 `pseq` (kl_V1984 `pseq` kl_shen_valvector kl_V1983 kl_V1984) appl_4 `pseq` applyWrapper appl_1 [appl_4] Atom (B (False)) -> do do return kl_V1983 _ -> throwError "if: expected boolean" kl_shen_valvector :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_valvector (!kl_V1987) (!kl_V1988) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*prologvectors*")) !appl_1 <- appl_0 `pseq` (kl_V1988 `pseq` addressFrom appl_0 kl_V1988) !appl_2 <- kl_V1987 `pseq` addressFrom kl_V1987 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_1 `pseq` (appl_2 `pseq` addressFrom appl_1 appl_2) kl_unifyExcl :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_unifyExcl (!kl_V1993) (!kl_V1994) (!kl_V1995) (!kl_V1996) = do !appl_0 <- kl_V1993 `pseq` (kl_V1995 `pseq` kl_shen_lazyderef kl_V1993 kl_V1995) !appl_1 <- kl_V1994 `pseq` (kl_V1995 `pseq` kl_shen_lazyderef kl_V1994 kl_V1995) appl_0 `pseq` (appl_1 `pseq` (kl_V1995 `pseq` (kl_V1996 `pseq` kl_shen_lzyEqExcl appl_0 appl_1 kl_V1995 kl_V1996))) kl_shen_lzyEqExcl :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_lzyEqExcl (!kl_V2018) (!kl_V2019) (!kl_V2020) (!kl_V2021) = do !kl_if_0 <- kl_V2019 `pseq` (kl_V2018 `pseq` eq kl_V2019 kl_V2018) case kl_if_0 of Atom (B (True)) -> do kl_V2021 `pseq` kl_thaw kl_V2021 Atom (B (False)) -> do !kl_if_1 <- kl_V2018 `pseq` kl_shen_pvarP kl_V2018 !kl_if_2 <- case kl_if_1 of Atom (B (True)) -> do !appl_3 <- kl_V2019 `pseq` (kl_V2020 `pseq` kl_shen_deref kl_V2019 kl_V2020) !appl_4 <- kl_V2018 `pseq` (appl_3 `pseq` kl_shen_occursP kl_V2018 appl_3) !kl_if_5 <- appl_4 `pseq` kl_not 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 kl_V2018 `pseq` (kl_V2019 `pseq` (kl_V2020 `pseq` (kl_V2021 `pseq` kl_bind kl_V2018 kl_V2019 kl_V2020 kl_V2021))) Atom (B (False)) -> do !kl_if_6 <- kl_V2019 `pseq` kl_shen_pvarP kl_V2019 !kl_if_7 <- case kl_if_6 of Atom (B (True)) -> do !appl_8 <- kl_V2018 `pseq` (kl_V2020 `pseq` kl_shen_deref kl_V2018 kl_V2020) !appl_9 <- kl_V2019 `pseq` (appl_8 `pseq` kl_shen_occursP kl_V2019 appl_8) !kl_if_10 <- appl_9 `pseq` kl_not appl_9 case kl_if_10 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" case kl_if_7 of Atom (B (True)) -> do kl_V2019 `pseq` (kl_V2018 `pseq` (kl_V2020 `pseq` (kl_V2021 `pseq` kl_bind kl_V2019 kl_V2018 kl_V2020 kl_V2021))) Atom (B (False)) -> do !kl_if_11 <- let pat_cond_12 kl_V2018 kl_V2018h kl_V2018t = do let pat_cond_13 kl_V2019 kl_V2019h kl_V2019t = do return (Atom (B True)) pat_cond_14 = do do return (Atom (B False)) in case kl_V2019 of !(kl_V2019@(Cons (!kl_V2019h) (!kl_V2019t))) -> pat_cond_13 kl_V2019 kl_V2019h kl_V2019t _ -> pat_cond_14 pat_cond_15 = do do return (Atom (B False)) in case kl_V2018 of !(kl_V2018@(Cons (!kl_V2018h) (!kl_V2018t))) -> pat_cond_12 kl_V2018 kl_V2018h kl_V2018t _ -> pat_cond_15 case kl_if_11 of Atom (B (True)) -> do !appl_16 <- kl_V2018 `pseq` hd kl_V2018 !appl_17 <- appl_16 `pseq` (kl_V2020 `pseq` kl_shen_lazyderef appl_16 kl_V2020) !appl_18 <- kl_V2019 `pseq` hd kl_V2019 !appl_19 <- appl_18 `pseq` (kl_V2020 `pseq` kl_shen_lazyderef appl_18 kl_V2020) let !appl_20 = ApplC (PL "thunk" (do !appl_21 <- kl_V2018 `pseq` tl kl_V2018 !appl_22 <- appl_21 `pseq` (kl_V2020 `pseq` kl_shen_lazyderef appl_21 kl_V2020) !appl_23 <- kl_V2019 `pseq` tl kl_V2019 !appl_24 <- appl_23 `pseq` (kl_V2020 `pseq` kl_shen_lazyderef appl_23 kl_V2020) appl_22 `pseq` (appl_24 `pseq` (kl_V2020 `pseq` (kl_V2021 `pseq` kl_shen_lzyEqExcl appl_22 appl_24 kl_V2020 kl_V2021))))) appl_17 `pseq` (appl_19 `pseq` (kl_V2020 `pseq` (appl_20 `pseq` kl_shen_lzyEqExcl appl_17 appl_19 kl_V2020 appl_20))) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_occursP :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_occursP (!kl_V2033) (!kl_V2034) = do !kl_if_0 <- kl_V2034 `pseq` (kl_V2033 `pseq` eq kl_V2034 kl_V2033) case kl_if_0 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do let pat_cond_1 kl_V2034 kl_V2034h kl_V2034t = do !kl_if_2 <- kl_V2033 `pseq` (kl_V2034h `pseq` kl_shen_occursP kl_V2033 kl_V2034h) case kl_if_2 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do !kl_if_3 <- kl_V2033 `pseq` (kl_V2034t `pseq` kl_shen_occursP kl_V2033 kl_V2034t) case kl_if_3 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" pat_cond_4 = do do return (Atom (B False)) in case kl_V2034 of !(kl_V2034@(Cons (!kl_V2034h) (!kl_V2034t))) -> pat_cond_1 kl_V2034 kl_V2034h kl_V2034t _ -> pat_cond_4 _ -> throwError "if: expected boolean" kl_identical :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_identical (!kl_V2039) (!kl_V2040) (!kl_V2041) (!kl_V2042) = do !appl_0 <- kl_V2039 `pseq` (kl_V2041 `pseq` kl_shen_lazyderef kl_V2039 kl_V2041) !appl_1 <- kl_V2040 `pseq` (kl_V2041 `pseq` kl_shen_lazyderef kl_V2040 kl_V2041) appl_0 `pseq` (appl_1 `pseq` (kl_V2041 `pseq` (kl_V2042 `pseq` kl_shen_lzyEqEq appl_0 appl_1 kl_V2041 kl_V2042))) kl_shen_lzyEqEq :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_lzyEqEq (!kl_V2064) (!kl_V2065) (!kl_V2066) (!kl_V2067) = do !kl_if_0 <- kl_V2065 `pseq` (kl_V2064 `pseq` eq kl_V2065 kl_V2064) case kl_if_0 of Atom (B (True)) -> do kl_V2067 `pseq` kl_thaw kl_V2067 Atom (B (False)) -> do !kl_if_1 <- let pat_cond_2 kl_V2064 kl_V2064h kl_V2064t = do let pat_cond_3 kl_V2065 kl_V2065h kl_V2065t = do return (Atom (B True)) pat_cond_4 = do do return (Atom (B False)) in case kl_V2065 of !(kl_V2065@(Cons (!kl_V2065h) (!kl_V2065t))) -> pat_cond_3 kl_V2065 kl_V2065h kl_V2065t _ -> pat_cond_4 pat_cond_5 = do do return (Atom (B False)) in case kl_V2064 of !(kl_V2064@(Cons (!kl_V2064h) (!kl_V2064t))) -> pat_cond_2 kl_V2064 kl_V2064h kl_V2064t _ -> pat_cond_5 case kl_if_1 of Atom (B (True)) -> do !appl_6 <- kl_V2064 `pseq` hd kl_V2064 !appl_7 <- appl_6 `pseq` (kl_V2066 `pseq` kl_shen_lazyderef appl_6 kl_V2066) !appl_8 <- kl_V2065 `pseq` hd kl_V2065 !appl_9 <- appl_8 `pseq` (kl_V2066 `pseq` kl_shen_lazyderef appl_8 kl_V2066) let !appl_10 = ApplC (PL "thunk" (do !appl_11 <- kl_V2064 `pseq` tl kl_V2064 !appl_12 <- kl_V2065 `pseq` tl kl_V2065 appl_11 `pseq` (appl_12 `pseq` (kl_V2066 `pseq` (kl_V2067 `pseq` kl_shen_lzyEqEq appl_11 appl_12 kl_V2066 kl_V2067))))) appl_7 `pseq` (appl_9 `pseq` (kl_V2066 `pseq` (appl_10 `pseq` kl_shen_lzyEqEq appl_7 appl_9 kl_V2066 appl_10))) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_pvar :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_pvar (!kl_V2069) = do !appl_0 <- kl_V2069 `pseq` addressFrom kl_V2069 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.app") !appl_2 <- appl_0 `pseq` applyWrapper aw_1 [appl_0, Core.Types.Atom (Core.Types.Str ""), Core.Types.Atom (Core.Types.UnboundSym "shen.a")] appl_2 `pseq` cn (Core.Types.Atom (Core.Types.Str "Var")) appl_2 kl_bind :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_bind (!kl_V2074) (!kl_V2075) (!kl_V2076) (!kl_V2077) = do !appl_0 <- kl_V2074 `pseq` (kl_V2075 `pseq` (kl_V2076 `pseq` kl_shen_bindv kl_V2074 kl_V2075 kl_V2076)) let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Result) -> do !appl_2 <- kl_V2074 `pseq` (kl_V2076 `pseq` kl_shen_unbindv kl_V2074 kl_V2076) appl_2 `pseq` (kl_Result `pseq` kl_do appl_2 kl_Result)))) !appl_3 <- kl_V2077 `pseq` kl_thaw kl_V2077 !appl_4 <- appl_3 `pseq` applyWrapper appl_1 [appl_3] appl_0 `pseq` (appl_4 `pseq` kl_do appl_0 appl_4) kl_fwhen :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_fwhen (!kl_V2095) (!kl_V2096) (!kl_V2097) = do let pat_cond_0 = do kl_V2097 `pseq` kl_thaw kl_V2097 pat_cond_1 = do return (Atom (B False)) pat_cond_2 = do do let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "shen.app") !appl_4 <- kl_V2095 `pseq` applyWrapper aw_3 [kl_V2095, Core.Types.Atom (Core.Types.Str "%"), Core.Types.Atom (Core.Types.UnboundSym "shen.s")] !appl_5 <- appl_4 `pseq` cn (Core.Types.Atom (Core.Types.Str "fwhen expects a boolean: not ")) appl_4 appl_5 `pseq` simpleError appl_5 in case kl_V2095 of kl_V2095@(Atom (UnboundSym "true")) -> pat_cond_0 kl_V2095@(Atom (B (True))) -> pat_cond_0 kl_V2095@(Atom (UnboundSym "false")) -> pat_cond_1 kl_V2095@(Atom (B (False))) -> pat_cond_1 _ -> pat_cond_2 kl_call :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_call (!kl_V2113) (!kl_V2114) (!kl_V2115) = do let pat_cond_0 kl_V2113 kl_V2113h kl_V2113t = do !appl_1 <- kl_V2113h `pseq` (kl_V2114 `pseq` kl_shen_lazyderef kl_V2113h kl_V2114) !appl_2 <- appl_1 `pseq` kl_function appl_1 appl_2 `pseq` (kl_V2113t `pseq` (kl_V2114 `pseq` (kl_V2115 `pseq` kl_shen_call_help appl_2 kl_V2113t kl_V2114 kl_V2115))) pat_cond_3 = do do return (Atom (B False)) in case kl_V2113 of !(kl_V2113@(Cons (!kl_V2113h) (!kl_V2113t))) -> pat_cond_0 kl_V2113 kl_V2113h kl_V2113t _ -> pat_cond_3 kl_shen_call_help :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_call_help (!kl_V2120) (!kl_V2121) (!kl_V2122) (!kl_V2123) = do let !appl_0 = Atom Nil !kl_if_1 <- appl_0 `pseq` (kl_V2121 `pseq` eq appl_0 kl_V2121) case kl_if_1 of Atom (B (True)) -> do kl_V2122 `pseq` (kl_V2123 `pseq` applyWrapper kl_V2120 [kl_V2122, kl_V2123]) Atom (B (False)) -> do let pat_cond_2 kl_V2121 kl_V2121h kl_V2121t = do !appl_3 <- kl_V2121h `pseq` applyWrapper kl_V2120 [kl_V2121h] appl_3 `pseq` (kl_V2121t `pseq` (kl_V2122 `pseq` (kl_V2123 `pseq` kl_shen_call_help appl_3 kl_V2121t kl_V2122 kl_V2123))) pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_5 [ApplC (wrapNamed "shen.call-help" kl_shen_call_help)] in case kl_V2121 of !(kl_V2121@(Cons (!kl_V2121h) (!kl_V2121t))) -> pat_cond_2 kl_V2121 kl_V2121h kl_V2121t _ -> pat_cond_4 _ -> throwError "if: expected boolean" kl_shen_intprolog :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_intprolog (!kl_V2125) = do let pat_cond_0 kl_V2125 kl_V2125h kl_V2125hh kl_V2125ht kl_V2125t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_ProcessN) -> do let !appl_2 = Atom Nil !appl_3 <- kl_V2125t `pseq` (appl_2 `pseq` klCons kl_V2125t appl_2) !appl_4 <- kl_V2125ht `pseq` (appl_3 `pseq` klCons kl_V2125ht appl_3) !appl_5 <- appl_4 `pseq` (kl_ProcessN `pseq` kl_shen_insert_prolog_variables appl_4 kl_ProcessN) kl_V2125hh `pseq` (appl_5 `pseq` (kl_ProcessN `pseq` kl_shen_intprolog_help kl_V2125hh appl_5 kl_ProcessN))))) !appl_6 <- kl_shen_start_new_prolog_process appl_6 `pseq` applyWrapper appl_1 [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.intprolog" kl_shen_intprolog)] in case kl_V2125 of !(kl_V2125@(Cons (!(kl_V2125h@(Cons (!kl_V2125hh) (!kl_V2125ht)))) (!kl_V2125t))) -> pat_cond_0 kl_V2125 kl_V2125h kl_V2125hh kl_V2125ht kl_V2125t _ -> pat_cond_7 kl_shen_intprolog_help :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_intprolog_help (!kl_V2129) (!kl_V2130) (!kl_V2131) = do !kl_if_0 <- let pat_cond_1 kl_V2130 kl_V2130h kl_V2130t = do !kl_if_2 <- let pat_cond_3 kl_V2130t kl_V2130th kl_V2130tt = do let !appl_4 = Atom Nil !kl_if_5 <- appl_4 `pseq` (kl_V2130tt `pseq` eq appl_4 kl_V2130tt) 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_V2130t of !(kl_V2130t@(Cons (!kl_V2130th) (!kl_V2130tt))) -> pat_cond_3 kl_V2130t kl_V2130th kl_V2130tt _ -> 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_V2130 of !(kl_V2130@(Cons (!kl_V2130h) (!kl_V2130t))) -> pat_cond_1 kl_V2130 kl_V2130h kl_V2130t _ -> pat_cond_7 case kl_if_0 of Atom (B (True)) -> do !appl_8 <- kl_V2130 `pseq` hd kl_V2130 !appl_9 <- kl_V2130 `pseq` tl kl_V2130 !appl_10 <- appl_9 `pseq` hd appl_9 kl_V2129 `pseq` (appl_8 `pseq` (appl_10 `pseq` (kl_V2131 `pseq` kl_shen_intprolog_help_help kl_V2129 appl_8 appl_10 kl_V2131))) Atom (B (False)) -> do do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_11 [ApplC (wrapNamed "shen.intprolog-help" kl_shen_intprolog_help)] _ -> throwError "if: expected boolean" kl_shen_intprolog_help_help :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_intprolog_help_help (!kl_V2136) (!kl_V2137) (!kl_V2138) (!kl_V2139) = do let !appl_0 = Atom Nil !kl_if_1 <- appl_0 `pseq` (kl_V2137 `pseq` eq appl_0 kl_V2137) case kl_if_1 of Atom (B (True)) -> do let !appl_2 = ApplC (PL "thunk" (do kl_V2138 `pseq` (kl_V2139 `pseq` kl_shen_call_rest kl_V2138 kl_V2139))) kl_V2139 `pseq` (appl_2 `pseq` applyWrapper kl_V2136 [kl_V2139, appl_2]) Atom (B (False)) -> do let pat_cond_3 kl_V2137 kl_V2137h kl_V2137t = do !appl_4 <- kl_V2137h `pseq` applyWrapper kl_V2136 [kl_V2137h] appl_4 `pseq` (kl_V2137t `pseq` (kl_V2138 `pseq` (kl_V2139 `pseq` kl_shen_intprolog_help_help appl_4 kl_V2137t kl_V2138 kl_V2139))) pat_cond_5 = do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_6 [ApplC (wrapNamed "shen.intprolog-help-help" kl_shen_intprolog_help_help)] in case kl_V2137 of !(kl_V2137@(Cons (!kl_V2137h) (!kl_V2137t))) -> pat_cond_3 kl_V2137 kl_V2137h kl_V2137t _ -> pat_cond_5 _ -> throwError "if: expected boolean" kl_shen_call_rest :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_call_rest (!kl_V2144) (!kl_V2145) = do let !appl_0 = Atom Nil !kl_if_1 <- appl_0 `pseq` (kl_V2144 `pseq` eq appl_0 kl_V2144) case kl_if_1 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do let pat_cond_2 kl_V2144 kl_V2144h kl_V2144hh kl_V2144ht kl_V2144hth kl_V2144htt kl_V2144t = do !appl_3 <- kl_V2144hth `pseq` applyWrapper kl_V2144hh [kl_V2144hth] !appl_4 <- appl_3 `pseq` (kl_V2144htt `pseq` klCons appl_3 kl_V2144htt) !appl_5 <- appl_4 `pseq` (kl_V2144t `pseq` klCons appl_4 kl_V2144t) appl_5 `pseq` (kl_V2145 `pseq` kl_shen_call_rest appl_5 kl_V2145) pat_cond_6 = do !kl_if_7 <- let pat_cond_8 kl_V2144 kl_V2144h kl_V2144t = do !kl_if_9 <- let pat_cond_10 kl_V2144h kl_V2144hh kl_V2144ht = do let !appl_11 = Atom Nil !kl_if_12 <- appl_11 `pseq` (kl_V2144ht `pseq` eq appl_11 kl_V2144ht) case kl_if_12 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_13 = do do return (Atom (B False)) in case kl_V2144h of !(kl_V2144h@(Cons (!kl_V2144hh) (!kl_V2144ht))) -> pat_cond_10 kl_V2144h kl_V2144hh kl_V2144ht _ -> pat_cond_13 case kl_if_9 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_14 = do do return (Atom (B False)) in case kl_V2144 of !(kl_V2144@(Cons (!kl_V2144h) (!kl_V2144t))) -> pat_cond_8 kl_V2144 kl_V2144h kl_V2144t _ -> pat_cond_14 case kl_if_7 of Atom (B (True)) -> do !appl_15 <- kl_V2144 `pseq` hd kl_V2144 !appl_16 <- appl_15 `pseq` hd appl_15 let !appl_17 = ApplC (PL "thunk" (do !appl_18 <- kl_V2144 `pseq` tl kl_V2144 appl_18 `pseq` (kl_V2145 `pseq` kl_shen_call_rest appl_18 kl_V2145))) kl_V2145 `pseq` (appl_17 `pseq` applyWrapper appl_16 [kl_V2145, appl_17]) Atom (B (False)) -> do do let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_19 [ApplC (wrapNamed "shen.call-rest" kl_shen_call_rest)] _ -> throwError "if: expected boolean" in case kl_V2144 of !(kl_V2144@(Cons (!(kl_V2144h@(Cons (!kl_V2144hh) (!(kl_V2144ht@(Cons (!kl_V2144hth) (!kl_V2144htt))))))) (!kl_V2144t))) -> pat_cond_2 kl_V2144 kl_V2144h kl_V2144hh kl_V2144ht kl_V2144hth kl_V2144htt kl_V2144t _ -> pat_cond_6 _ -> throwError "if: expected boolean" kl_shen_start_new_prolog_process :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_start_new_prolog_process = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_IncrementProcessCounter) -> do kl_IncrementProcessCounter `pseq` kl_shen_initialise_prolog kl_IncrementProcessCounter))) !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*process-counter*")) !appl_2 <- appl_1 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_1 !appl_3 <- appl_2 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*process-counter*")) appl_2 appl_3 `pseq` applyWrapper appl_0 [appl_3] kl_shen_insert_prolog_variables :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_insert_prolog_variables (!kl_V2148) (!kl_V2149) = do !appl_0 <- kl_V2148 `pseq` kl_shen_flatten kl_V2148 kl_V2148 `pseq` (appl_0 `pseq` (kl_V2149 `pseq` kl_shen_insert_prolog_variables_help kl_V2148 appl_0 kl_V2149)) kl_shen_insert_prolog_variables_help :: Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_insert_prolog_variables_help (!kl_V2157) (!kl_V2158) (!kl_V2159) = do let !appl_0 = Atom Nil !kl_if_1 <- appl_0 `pseq` (kl_V2158 `pseq` eq appl_0 kl_V2158) case kl_if_1 of Atom (B (True)) -> do return kl_V2157 Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V2158 kl_V2158h kl_V2158t = do !kl_if_4 <- kl_V2158h `pseq` kl_variableP kl_V2158h case kl_if_4 of Atom (B (True)) -> do return (Atom (B True)) Atom (B (False)) -> do do return (Atom (B False)) _ -> throwError "if: expected boolean" pat_cond_5 = do do return (Atom (B False)) in case kl_V2158 of !(kl_V2158@(Cons (!kl_V2158h) (!kl_V2158t))) -> pat_cond_3 kl_V2158 kl_V2158h kl_V2158t _ -> pat_cond_5 case kl_if_2 of Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_V) -> do let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_XVDivY) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Z_Y) -> do kl_XVDivY `pseq` (kl_Z_Y `pseq` (kl_V2159 `pseq` kl_shen_insert_prolog_variables_help kl_XVDivY kl_Z_Y kl_V2159))))) !appl_9 <- kl_V2158 `pseq` hd kl_V2158 !appl_10 <- kl_V2158 `pseq` tl kl_V2158 !appl_11 <- appl_9 `pseq` (appl_10 `pseq` kl_remove appl_9 appl_10) appl_11 `pseq` applyWrapper appl_8 [appl_11]))) !appl_12 <- kl_V2158 `pseq` hd kl_V2158 !appl_13 <- kl_V `pseq` (appl_12 `pseq` (kl_V2157 `pseq` kl_subst kl_V appl_12 kl_V2157)) appl_13 `pseq` applyWrapper appl_7 [appl_13]))) !appl_14 <- kl_V2159 `pseq` kl_shen_newpv kl_V2159 appl_14 `pseq` applyWrapper appl_6 [appl_14] Atom (B (False)) -> do let pat_cond_15 kl_V2158 kl_V2158h kl_V2158t = do kl_V2157 `pseq` (kl_V2158t `pseq` (kl_V2159 `pseq` kl_shen_insert_prolog_variables_help kl_V2157 kl_V2158t kl_V2159)) pat_cond_16 = do do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error") applyWrapper aw_17 [ApplC (wrapNamed "shen.insert-prolog-variables-help" kl_shen_insert_prolog_variables_help)] in case kl_V2158 of !(kl_V2158@(Cons (!kl_V2158h) (!kl_V2158t))) -> pat_cond_15 kl_V2158 kl_V2158h kl_V2158t _ -> pat_cond_16 _ -> throwError "if: expected boolean" _ -> throwError "if: expected boolean" kl_shen_initialise_prolog :: Core.Types.KLValue -> Core.Types.KLContext Core.Types.Env Core.Types.KLValue kl_shen_initialise_prolog (!kl_V2161) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Vector) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Counter) -> do return kl_V2161))) !appl_2 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*varcounter*")) !appl_3 <- appl_2 `pseq` (kl_V2161 `pseq` addressTo appl_2 kl_V2161 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))) appl_3 `pseq` applyWrapper appl_1 [appl_3]))) !appl_4 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*prologvectors*")) !appl_5 <- kl_vector (Core.Types.Atom (Core.Types.N (Core.Types.KI 10))) !appl_6 <- appl_5 `pseq` kl_shen_fillvector appl_5 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) (Core.Types.Atom (Core.Types.N (Core.Types.KI 10))) (Core.Types.Atom (Core.Types.UnboundSym "shen.-null-")) !appl_7 <- appl_4 `pseq` (kl_V2161 `pseq` (appl_6 `pseq` addressTo appl_4 kl_V2161 appl_6)) appl_7 `pseq` applyWrapper appl_0 [appl_7] expr6 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue expr6 = 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")))