shentong-0.3.2: Shentong/Backend/Core.hs
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE Strict #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE ViewPatterns #-}
module Backend.Core where
import Control.Monad.Except
import Control.Parallel
import Environment
import Core.Primitives as Primitives
import Backend.Utils
import Core.Types
import Core.Utils
import Wrap
import Backend.Toplevel
{-
Copyright (c) 2015, Mark Tarver
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of Mark Tarver may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-}
kl_shen_RBkl :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_RBkl (!kl_V1193) (!kl_V1194) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBdefineRB kl_X)))
!appl_1 <- kl_V1193 `pseq` (kl_V1194 `pseq` klCons kl_V1193 kl_V1194)
let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_V1193 `pseq` (kl_X `pseq` kl_shen_syntax_error kl_V1193 kl_X))))
let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "compile")
appl_0 `pseq` (appl_1 `pseq` (appl_2 `pseq` applyWrapper aw_3 [appl_0,
appl_1,
appl_2]))
kl_shen_syntax_error :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_syntax_error (!kl_V1201) (!kl_V1202) = do let pat_cond_0 kl_V1202 kl_V1202h kl_V1202t = do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.next-50")
!appl_2 <- kl_V1202h `pseq` applyWrapper aw_1 [Core.Types.Atom (Core.Types.N (Core.Types.KI 50)),
kl_V1202h]
let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_4 <- appl_2 `pseq` applyWrapper aw_3 [appl_2,
Core.Types.Atom (Core.Types.Str "\n"),
Core.Types.Atom (Core.Types.UnboundSym "shen.a")]
!appl_5 <- appl_4 `pseq` cn (Core.Types.Atom (Core.Types.Str " here:\n\n ")) appl_4
let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_7 <- kl_V1201 `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V1201,
appl_5,
Core.Types.Atom (Core.Types.UnboundSym "shen.a")])
!appl_8 <- appl_7 `pseq` cn (Core.Types.Atom (Core.Types.Str "syntax error in ")) appl_7
appl_8 `pseq` simpleError appl_8
pat_cond_9 = do do let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_11 <- kl_V1201 `pseq` applyWrapper aw_10 [kl_V1201,
Core.Types.Atom (Core.Types.Str "\n"),
Core.Types.Atom (Core.Types.UnboundSym "shen.a")]
!appl_12 <- appl_11 `pseq` cn (Core.Types.Atom (Core.Types.Str "syntax error in ")) appl_11
appl_12 `pseq` simpleError appl_12
in case kl_V1202 of
!(kl_V1202@(Cons (!kl_V1202h)
(!kl_V1202t))) -> pat_cond_0 kl_V1202 kl_V1202h kl_V1202t
_ -> pat_cond_9
kl_shen_LBdefineRB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBdefineRB (!kl_V1204) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_2 <- applyWrapper aw_1 []
!kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
case kl_if_3 of
Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnameRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_6 <- applyWrapper aw_5 []
!appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBnameRB `pseq` eq appl_6 kl_Parse_shen_LBnameRB)
let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]
case kl_if_9 of
Atom (B (True)) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrulesRB) -> do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_12 <- applyWrapper aw_11 []
!appl_13 <- appl_12 `pseq` (kl_Parse_shen_LBrulesRB `pseq` eq appl_12 kl_Parse_shen_LBrulesRB)
let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_15 <- appl_13 `pseq` applyWrapper aw_14 [appl_13]
case kl_if_15 of
Atom (B (True)) -> do !appl_16 <- kl_Parse_shen_LBrulesRB `pseq` hd kl_Parse_shen_LBrulesRB
let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_18 <- kl_Parse_shen_LBnameRB `pseq` applyWrapper aw_17 [kl_Parse_shen_LBnameRB]
let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_20 <- kl_Parse_shen_LBrulesRB `pseq` applyWrapper aw_19 [kl_Parse_shen_LBrulesRB]
!appl_21 <- appl_18 `pseq` (appl_20 `pseq` kl_shen_compile_to_machine_code appl_18 appl_20)
let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_16 `pseq` (appl_21 `pseq` applyWrapper aw_22 [appl_16,
appl_21])
Atom (B (False)) -> do do let !aw_23 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_23 []
_ -> throwError "if: expected boolean")))
!appl_24 <- kl_Parse_shen_LBnameRB `pseq` kl_shen_LBrulesRB kl_Parse_shen_LBnameRB
appl_24 `pseq` applyWrapper appl_10 [appl_24]
Atom (B (False)) -> do do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_25 []
_ -> throwError "if: expected boolean")))
!appl_26 <- kl_V1204 `pseq` kl_shen_LBnameRB kl_V1204
appl_26 `pseq` applyWrapper appl_4 [appl_26]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
let !appl_27 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnameRB) -> do let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_29 <- applyWrapper aw_28 []
!appl_30 <- appl_29 `pseq` (kl_Parse_shen_LBnameRB `pseq` eq appl_29 kl_Parse_shen_LBnameRB)
let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_32 <- appl_30 `pseq` applyWrapper aw_31 [appl_30]
case kl_if_32 of
Atom (B (True)) -> do let !appl_33 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsignatureRB) -> do let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_35 <- applyWrapper aw_34 []
!appl_36 <- appl_35 `pseq` (kl_Parse_shen_LBsignatureRB `pseq` eq appl_35 kl_Parse_shen_LBsignatureRB)
let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_38 <- appl_36 `pseq` applyWrapper aw_37 [appl_36]
case kl_if_38 of
Atom (B (True)) -> do let !appl_39 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrulesRB) -> do let !aw_40 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_41 <- applyWrapper aw_40 []
!appl_42 <- appl_41 `pseq` (kl_Parse_shen_LBrulesRB `pseq` eq appl_41 kl_Parse_shen_LBrulesRB)
let !aw_43 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_44 <- appl_42 `pseq` applyWrapper aw_43 [appl_42]
case kl_if_44 of
Atom (B (True)) -> do !appl_45 <- kl_Parse_shen_LBrulesRB `pseq` hd kl_Parse_shen_LBrulesRB
let !aw_46 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_47 <- kl_Parse_shen_LBnameRB `pseq` applyWrapper aw_46 [kl_Parse_shen_LBnameRB]
let !aw_48 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_49 <- kl_Parse_shen_LBrulesRB `pseq` applyWrapper aw_48 [kl_Parse_shen_LBrulesRB]
!appl_50 <- appl_47 `pseq` (appl_49 `pseq` kl_shen_compile_to_machine_code appl_47 appl_49)
let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_45 `pseq` (appl_50 `pseq` applyWrapper aw_51 [appl_45,
appl_50])
Atom (B (False)) -> do do let !aw_52 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_52 []
_ -> throwError "if: expected boolean")))
!appl_53 <- kl_Parse_shen_LBsignatureRB `pseq` kl_shen_LBrulesRB kl_Parse_shen_LBsignatureRB
appl_53 `pseq` applyWrapper appl_39 [appl_53]
Atom (B (False)) -> do do let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_54 []
_ -> throwError "if: expected boolean")))
!appl_55 <- kl_Parse_shen_LBnameRB `pseq` kl_shen_LBsignatureRB kl_Parse_shen_LBnameRB
appl_55 `pseq` applyWrapper appl_33 [appl_55]
Atom (B (False)) -> do do let !aw_56 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_56 []
_ -> throwError "if: expected boolean")))
!appl_57 <- kl_V1204 `pseq` kl_shen_LBnameRB kl_V1204
!appl_58 <- appl_57 `pseq` applyWrapper appl_27 [appl_57]
appl_58 `pseq` applyWrapper appl_0 [appl_58]
kl_shen_LBnameRB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBnameRB (!kl_V1206) = do !appl_0 <- kl_V1206 `pseq` hd kl_V1206
!kl_if_1 <- appl_0 `pseq` consP appl_0
case kl_if_1 of
Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- kl_V1206 `pseq` hd kl_V1206
!appl_4 <- appl_3 `pseq` tl appl_3
let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_6 <- kl_V1206 `pseq` applyWrapper aw_5 [kl_V1206]
let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_8 <- appl_4 `pseq` (appl_6 `pseq` applyWrapper aw_7 [appl_4,
appl_6])
!appl_9 <- appl_8 `pseq` hd appl_8
let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "symbol?")
!kl_if_11 <- kl_Parse_X `pseq` applyWrapper aw_10 [kl_Parse_X]
!kl_if_12 <- case kl_if_11 of
Atom (B (True)) -> do !appl_13 <- kl_Parse_X `pseq` kl_shen_sysfuncP kl_Parse_X
let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_15 <- appl_13 `pseq` applyWrapper aw_14 [appl_13]
case kl_if_15 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
!appl_16 <- case kl_if_12 of
Atom (B (True)) -> do return kl_Parse_X
Atom (B (False)) -> do do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_18 <- kl_Parse_X `pseq` applyWrapper aw_17 [kl_Parse_X,
Core.Types.Atom (Core.Types.Str " is not a legitimate function name.\n"),
Core.Types.Atom (Core.Types.UnboundSym "shen.a")]
appl_18 `pseq` simpleError appl_18
_ -> throwError "if: expected boolean"
let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_9 `pseq` (appl_16 `pseq` applyWrapper aw_19 [appl_9,
appl_16]))))
!appl_20 <- kl_V1206 `pseq` hd kl_V1206
!appl_21 <- appl_20 `pseq` hd appl_20
appl_21 `pseq` applyWrapper appl_2 [appl_21]
Atom (B (False)) -> do do let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_22 []
_ -> throwError "if: expected boolean"
kl_shen_sysfuncP :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_sysfuncP (!kl_V1208) = do !appl_0 <- intern (Core.Types.Atom (Core.Types.Str "shen"))
!appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))
let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "get")
!appl_3 <- appl_0 `pseq` (appl_1 `pseq` applyWrapper aw_2 [appl_0,
Core.Types.Atom (Core.Types.UnboundSym "shen.external-symbols"),
appl_1])
let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "element?")
kl_V1208 `pseq` (appl_3 `pseq` applyWrapper aw_4 [kl_V1208,
appl_3])
kl_shen_LBsignatureRB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBsignatureRB (!kl_V1210) = do !appl_0 <- kl_V1210 `pseq` hd kl_V1210
!kl_if_1 <- appl_0 `pseq` consP appl_0
!kl_if_2 <- case kl_if_1 of
Atom (B (True)) -> do !appl_3 <- kl_V1210 `pseq` hd kl_V1210
!appl_4 <- appl_3 `pseq` hd appl_3
!kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "{")) appl_4
case kl_if_5 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_2 of
Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsignature_helpRB) -> do let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_8 <- applyWrapper aw_7 []
!appl_9 <- appl_8 `pseq` (kl_Parse_shen_LBsignature_helpRB `pseq` eq appl_8 kl_Parse_shen_LBsignature_helpRB)
let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_11 <- appl_9 `pseq` applyWrapper aw_10 [appl_9]
case kl_if_11 of
Atom (B (True)) -> do !appl_12 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB
!kl_if_13 <- appl_12 `pseq` consP appl_12
!kl_if_14 <- case kl_if_13 of
Atom (B (True)) -> do !appl_15 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB
!appl_16 <- appl_15 `pseq` hd appl_15
!kl_if_17 <- appl_16 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "}")) appl_16
case kl_if_17 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_14 of
Atom (B (True)) -> do !appl_18 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB
!appl_19 <- appl_18 `pseq` tl appl_18
let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_21 <- kl_Parse_shen_LBsignature_helpRB `pseq` applyWrapper aw_20 [kl_Parse_shen_LBsignature_helpRB]
let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_23 <- appl_19 `pseq` (appl_21 `pseq` applyWrapper aw_22 [appl_19,
appl_21])
!appl_24 <- appl_23 `pseq` hd appl_23
let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_26 <- kl_Parse_shen_LBsignature_helpRB `pseq` applyWrapper aw_25 [kl_Parse_shen_LBsignature_helpRB]
!appl_27 <- appl_26 `pseq` kl_shen_curry_type appl_26
let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "shen.demodulate")
!appl_29 <- appl_27 `pseq` applyWrapper aw_28 [appl_27]
let !aw_30 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_24 `pseq` (appl_29 `pseq` applyWrapper aw_30 [appl_24,
appl_29])
Atom (B (False)) -> do do let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_31 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_32 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_32 []
_ -> throwError "if: expected boolean")))
!appl_33 <- kl_V1210 `pseq` hd kl_V1210
!appl_34 <- appl_33 `pseq` tl appl_33
let !aw_35 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_36 <- kl_V1210 `pseq` applyWrapper aw_35 [kl_V1210]
let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_38 <- appl_34 `pseq` (appl_36 `pseq` applyWrapper aw_37 [appl_34,
appl_36])
!appl_39 <- appl_38 `pseq` kl_shen_LBsignature_helpRB appl_38
appl_39 `pseq` applyWrapper appl_6 [appl_39]
Atom (B (False)) -> do do let !aw_40 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_40 []
_ -> throwError "if: expected boolean"
kl_shen_curry_type :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_curry_type (!kl_V1212) = do let pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt = do let !appl_1 = Atom Nil
!appl_2 <- kl_V1212tt `pseq` (appl_1 `pseq` klCons kl_V1212tt appl_1)
!appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_2
!appl_4 <- kl_V1212h `pseq` (appl_3 `pseq` klCons kl_V1212h appl_3)
appl_4 `pseq` kl_shen_curry_type appl_4
pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt = do let !appl_6 = Atom Nil
!appl_7 <- kl_V1212tt `pseq` (appl_6 `pseq` klCons kl_V1212tt appl_6)
!appl_8 <- appl_7 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_7
!appl_9 <- kl_V1212h `pseq` (appl_8 `pseq` klCons kl_V1212h appl_8)
appl_9 `pseq` kl_shen_curry_type appl_9
pat_cond_10 kl_V1212 kl_V1212h kl_V1212t = do let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_curry_type kl_Z)))
let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "map")
appl_11 `pseq` (kl_V1212 `pseq` applyWrapper aw_12 [appl_11,
kl_V1212])
pat_cond_13 = do do return kl_V1212
in case kl_V1212 of
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (Atom (UnboundSym "-->"))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (Atom (UnboundSym "-->"))
(!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (Atom (UnboundSym "-->"))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (PL "-->"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (Atom (UnboundSym "-->"))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (Func "-->"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (PL "-->" _))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (Atom (UnboundSym "-->"))
(!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (PL "-->" _))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (PL "-->"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (PL "-->" _))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (Func "-->"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (Func "-->"
_))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (Atom (UnboundSym "-->"))
(!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (Func "-->"
_))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (PL "-->"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (Func "-->"
_))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (Func "-->"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (Atom (UnboundSym "*"))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (Atom (UnboundSym "*"))
(!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (Atom (UnboundSym "*"))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (PL "*"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (Atom (UnboundSym "*"))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (Func "*"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (PL "*" _))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (Atom (UnboundSym "*"))
(!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (PL "*" _))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (PL "*"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (PL "*" _))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (Func "*"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (Func "*" _))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (Atom (UnboundSym "*"))
(!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (Func "*" _))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (PL "*"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!(kl_V1212t@(Cons (ApplC (Func "*" _))
(!(kl_V1212tt@(Cons (!kl_V1212tth)
(!(kl_V1212ttt@(Cons (ApplC (Func "*"
_))
(!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt
!(kl_V1212@(Cons (!kl_V1212h)
(!kl_V1212t))) -> pat_cond_10 kl_V1212 kl_V1212h kl_V1212t
_ -> pat_cond_13
kl_shen_LBsignature_helpRB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBsignature_helpRB (!kl_V1214) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_2 <- applyWrapper aw_1 []
!kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
case kl_if_3 of
Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_6 <- applyWrapper aw_5 []
!appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)
let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]
case kl_if_9 of
Atom (B (True)) -> do !appl_10 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
let !appl_11 = Atom Nil
let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_10 `pseq` (appl_11 `pseq` applyWrapper aw_12 [appl_10,
appl_11])
Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_13 []
_ -> throwError "if: expected boolean")))
let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "<e>")
!appl_15 <- kl_V1214 `pseq` applyWrapper aw_14 [kl_V1214]
appl_15 `pseq` applyWrapper appl_4 [appl_15]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
!appl_16 <- kl_V1214 `pseq` hd kl_V1214
!kl_if_17 <- appl_16 `pseq` consP appl_16
!appl_18 <- case kl_if_17 of
Atom (B (True)) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsignature_helpRB) -> do let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_22 <- applyWrapper aw_21 []
!appl_23 <- appl_22 `pseq` (kl_Parse_shen_LBsignature_helpRB `pseq` eq appl_22 kl_Parse_shen_LBsignature_helpRB)
let !aw_24 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_25 <- appl_23 `pseq` applyWrapper aw_24 [appl_23]
case kl_if_25 of
Atom (B (True)) -> do let !appl_26 = Atom Nil
!appl_27 <- appl_26 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "}")) appl_26
!appl_28 <- appl_27 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "{")) appl_27
let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "element?")
!appl_30 <- kl_Parse_X `pseq` (appl_28 `pseq` applyWrapper aw_29 [kl_Parse_X,
appl_28])
let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_32 <- appl_30 `pseq` applyWrapper aw_31 [appl_30]
case kl_if_32 of
Atom (B (True)) -> do !appl_33 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB
let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_35 <- kl_Parse_shen_LBsignature_helpRB `pseq` applyWrapper aw_34 [kl_Parse_shen_LBsignature_helpRB]
!appl_36 <- kl_Parse_X `pseq` (appl_35 `pseq` klCons kl_Parse_X appl_35)
let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_33 `pseq` (appl_36 `pseq` applyWrapper aw_37 [appl_33,
appl_36])
Atom (B (False)) -> do do let !aw_38 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_38 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_39 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_39 []
_ -> throwError "if: expected boolean")))
!appl_40 <- kl_V1214 `pseq` hd kl_V1214
!appl_41 <- appl_40 `pseq` tl appl_40
let !aw_42 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_43 <- kl_V1214 `pseq` applyWrapper aw_42 [kl_V1214]
let !aw_44 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_45 <- appl_41 `pseq` (appl_43 `pseq` applyWrapper aw_44 [appl_41,
appl_43])
!appl_46 <- appl_45 `pseq` kl_shen_LBsignature_helpRB appl_45
appl_46 `pseq` applyWrapper appl_20 [appl_46])))
!appl_47 <- kl_V1214 `pseq` hd kl_V1214
!appl_48 <- appl_47 `pseq` hd appl_47
appl_48 `pseq` applyWrapper appl_19 [appl_48]
Atom (B (False)) -> do do let !aw_49 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_49 []
_ -> throwError "if: expected boolean"
appl_18 `pseq` applyWrapper appl_0 [appl_18]
kl_shen_LBrulesRB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBrulesRB (!kl_V1216) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_2 <- applyWrapper aw_1 []
!kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
case kl_if_3 of
Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBruleRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_6 <- applyWrapper aw_5 []
!appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBruleRB `pseq` eq appl_6 kl_Parse_shen_LBruleRB)
let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]
case kl_if_9 of
Atom (B (True)) -> do !appl_10 <- kl_Parse_shen_LBruleRB `pseq` hd kl_Parse_shen_LBruleRB
let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_12 <- kl_Parse_shen_LBruleRB `pseq` applyWrapper aw_11 [kl_Parse_shen_LBruleRB]
!appl_13 <- appl_12 `pseq` kl_shen_linearise appl_12
let !appl_14 = Atom Nil
!appl_15 <- appl_13 `pseq` (appl_14 `pseq` klCons appl_13 appl_14)
let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_10 `pseq` (appl_15 `pseq` applyWrapper aw_16 [appl_10,
appl_15])
Atom (B (False)) -> do do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_17 []
_ -> throwError "if: expected boolean")))
!appl_18 <- kl_V1216 `pseq` kl_shen_LBruleRB kl_V1216
appl_18 `pseq` applyWrapper appl_4 [appl_18]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBruleRB) -> do let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_21 <- applyWrapper aw_20 []
!appl_22 <- appl_21 `pseq` (kl_Parse_shen_LBruleRB `pseq` eq appl_21 kl_Parse_shen_LBruleRB)
let !aw_23 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_24 <- appl_22 `pseq` applyWrapper aw_23 [appl_22]
case kl_if_24 of
Atom (B (True)) -> do let !appl_25 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrulesRB) -> do let !aw_26 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_27 <- applyWrapper aw_26 []
!appl_28 <- appl_27 `pseq` (kl_Parse_shen_LBrulesRB `pseq` eq appl_27 kl_Parse_shen_LBrulesRB)
let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_30 <- appl_28 `pseq` applyWrapper aw_29 [appl_28]
case kl_if_30 of
Atom (B (True)) -> do !appl_31 <- kl_Parse_shen_LBrulesRB `pseq` hd kl_Parse_shen_LBrulesRB
let !aw_32 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_33 <- kl_Parse_shen_LBruleRB `pseq` applyWrapper aw_32 [kl_Parse_shen_LBruleRB]
!appl_34 <- appl_33 `pseq` kl_shen_linearise appl_33
let !aw_35 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_36 <- kl_Parse_shen_LBrulesRB `pseq` applyWrapper aw_35 [kl_Parse_shen_LBrulesRB]
!appl_37 <- appl_34 `pseq` (appl_36 `pseq` klCons appl_34 appl_36)
let !aw_38 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_31 `pseq` (appl_37 `pseq` applyWrapper aw_38 [appl_31,
appl_37])
Atom (B (False)) -> do do let !aw_39 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_39 []
_ -> throwError "if: expected boolean")))
!appl_40 <- kl_Parse_shen_LBruleRB `pseq` kl_shen_LBrulesRB kl_Parse_shen_LBruleRB
appl_40 `pseq` applyWrapper appl_25 [appl_40]
Atom (B (False)) -> do do let !aw_41 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_41 []
_ -> throwError "if: expected boolean")))
!appl_42 <- kl_V1216 `pseq` kl_shen_LBruleRB kl_V1216
!appl_43 <- appl_42 `pseq` applyWrapper appl_19 [appl_42]
appl_43 `pseq` applyWrapper appl_0 [appl_43]
kl_shen_LBruleRB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBruleRB (!kl_V1218) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_2 <- applyWrapper aw_1 []
!kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
case kl_if_3 of
Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_6 <- applyWrapper aw_5 []
!kl_if_7 <- kl_YaccParse `pseq` (appl_6 `pseq` eq kl_YaccParse appl_6)
case kl_if_7 of
Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_10 <- applyWrapper aw_9 []
!kl_if_11 <- kl_YaccParse `pseq` (appl_10 `pseq` eq kl_YaccParse appl_10)
case kl_if_11 of
Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_14 <- applyWrapper aw_13 []
!appl_15 <- appl_14 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_14 kl_Parse_shen_LBpatternsRB)
let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_17 <- appl_15 `pseq` applyWrapper aw_16 [appl_15]
case kl_if_17 of
Atom (B (True)) -> do !appl_18 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!kl_if_19 <- appl_18 `pseq` consP appl_18
!kl_if_20 <- case kl_if_19 of
Atom (B (True)) -> do !appl_21 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!appl_22 <- appl_21 `pseq` hd appl_21
!kl_if_23 <- appl_22 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "<-")) appl_22
case kl_if_23 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_20 of
Atom (B (True)) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_26 <- applyWrapper aw_25 []
!appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_26 kl_Parse_shen_LBactionRB)
let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_29 <- appl_27 `pseq` applyWrapper aw_28 [appl_27]
case kl_if_29 of
Atom (B (True)) -> do !appl_30 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_32 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_31 [kl_Parse_shen_LBpatternsRB]
let !aw_33 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_34 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_33 [kl_Parse_shen_LBactionRB]
let !appl_35 = Atom Nil
!appl_36 <- appl_34 `pseq` (appl_35 `pseq` klCons appl_34 appl_35)
!appl_37 <- appl_36 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.choicepoint!")) appl_36
let !appl_38 = Atom Nil
!appl_39 <- appl_37 `pseq` (appl_38 `pseq` klCons appl_37 appl_38)
!appl_40 <- appl_32 `pseq` (appl_39 `pseq` klCons appl_32 appl_39)
let !aw_41 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_30 `pseq` (appl_40 `pseq` applyWrapper aw_41 [appl_30,
appl_40])
Atom (B (False)) -> do do let !aw_42 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_42 []
_ -> throwError "if: expected boolean")))
!appl_43 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!appl_44 <- appl_43 `pseq` tl appl_43
let !aw_45 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_46 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_45 [kl_Parse_shen_LBpatternsRB]
let !aw_47 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_48 <- appl_44 `pseq` (appl_46 `pseq` applyWrapper aw_47 [appl_44,
appl_46])
!appl_49 <- appl_48 `pseq` kl_shen_LBactionRB appl_48
appl_49 `pseq` applyWrapper appl_24 [appl_49]
Atom (B (False)) -> do do let !aw_50 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_50 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_51 []
_ -> throwError "if: expected boolean")))
!appl_52 <- kl_V1218 `pseq` kl_shen_LBpatternsRB kl_V1218
appl_52 `pseq` applyWrapper appl_12 [appl_52]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
let !appl_53 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_55 <- applyWrapper aw_54 []
!appl_56 <- appl_55 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_55 kl_Parse_shen_LBpatternsRB)
let !aw_57 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_58 <- appl_56 `pseq` applyWrapper aw_57 [appl_56]
case kl_if_58 of
Atom (B (True)) -> do !appl_59 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!kl_if_60 <- appl_59 `pseq` consP appl_59
!kl_if_61 <- case kl_if_60 of
Atom (B (True)) -> do !appl_62 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!appl_63 <- appl_62 `pseq` hd appl_62
!kl_if_64 <- appl_63 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "<-")) appl_63
case kl_if_64 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_61 of
Atom (B (True)) -> do let !appl_65 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_66 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_67 <- applyWrapper aw_66 []
!appl_68 <- appl_67 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_67 kl_Parse_shen_LBactionRB)
let !aw_69 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_70 <- appl_68 `pseq` applyWrapper aw_69 [appl_68]
case kl_if_70 of
Atom (B (True)) -> do !appl_71 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
!kl_if_72 <- appl_71 `pseq` consP appl_71
!kl_if_73 <- case kl_if_72 of
Atom (B (True)) -> do !appl_74 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
!appl_75 <- appl_74 `pseq` hd appl_74
!kl_if_76 <- appl_75 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_75
case kl_if_76 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_73 of
Atom (B (True)) -> do let !appl_77 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBguardRB) -> do let !aw_78 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_79 <- applyWrapper aw_78 []
!appl_80 <- appl_79 `pseq` (kl_Parse_shen_LBguardRB `pseq` eq appl_79 kl_Parse_shen_LBguardRB)
let !aw_81 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_82 <- appl_80 `pseq` applyWrapper aw_81 [appl_80]
case kl_if_82 of
Atom (B (True)) -> do !appl_83 <- kl_Parse_shen_LBguardRB `pseq` hd kl_Parse_shen_LBguardRB
let !aw_84 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_85 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_84 [kl_Parse_shen_LBpatternsRB]
let !aw_86 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_87 <- kl_Parse_shen_LBguardRB `pseq` applyWrapper aw_86 [kl_Parse_shen_LBguardRB]
let !aw_88 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_89 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_88 [kl_Parse_shen_LBactionRB]
let !appl_90 = Atom Nil
!appl_91 <- appl_89 `pseq` (appl_90 `pseq` klCons appl_89 appl_90)
!appl_92 <- appl_91 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.choicepoint!")) appl_91
let !appl_93 = Atom Nil
!appl_94 <- appl_92 `pseq` (appl_93 `pseq` klCons appl_92 appl_93)
!appl_95 <- appl_87 `pseq` (appl_94 `pseq` klCons appl_87 appl_94)
!appl_96 <- appl_95 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_95
let !appl_97 = Atom Nil
!appl_98 <- appl_96 `pseq` (appl_97 `pseq` klCons appl_96 appl_97)
!appl_99 <- appl_85 `pseq` (appl_98 `pseq` klCons appl_85 appl_98)
let !aw_100 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_83 `pseq` (appl_99 `pseq` applyWrapper aw_100 [appl_83,
appl_99])
Atom (B (False)) -> do do let !aw_101 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_101 []
_ -> throwError "if: expected boolean")))
!appl_102 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
!appl_103 <- appl_102 `pseq` tl appl_102
let !aw_104 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_105 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_104 [kl_Parse_shen_LBactionRB]
let !aw_106 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_107 <- appl_103 `pseq` (appl_105 `pseq` applyWrapper aw_106 [appl_103,
appl_105])
!appl_108 <- appl_107 `pseq` kl_shen_LBguardRB appl_107
appl_108 `pseq` applyWrapper appl_77 [appl_108]
Atom (B (False)) -> do do let !aw_109 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_109 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_110 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_110 []
_ -> throwError "if: expected boolean")))
!appl_111 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!appl_112 <- appl_111 `pseq` tl appl_111
let !aw_113 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_114 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_113 [kl_Parse_shen_LBpatternsRB]
let !aw_115 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_116 <- appl_112 `pseq` (appl_114 `pseq` applyWrapper aw_115 [appl_112,
appl_114])
!appl_117 <- appl_116 `pseq` kl_shen_LBactionRB appl_116
appl_117 `pseq` applyWrapper appl_65 [appl_117]
Atom (B (False)) -> do do let !aw_118 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_118 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_119 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_119 []
_ -> throwError "if: expected boolean")))
!appl_120 <- kl_V1218 `pseq` kl_shen_LBpatternsRB kl_V1218
!appl_121 <- appl_120 `pseq` applyWrapper appl_53 [appl_120]
appl_121 `pseq` applyWrapper appl_8 [appl_121]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
let !appl_122 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_123 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_124 <- applyWrapper aw_123 []
!appl_125 <- appl_124 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_124 kl_Parse_shen_LBpatternsRB)
let !aw_126 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_127 <- appl_125 `pseq` applyWrapper aw_126 [appl_125]
case kl_if_127 of
Atom (B (True)) -> do !appl_128 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!kl_if_129 <- appl_128 `pseq` consP appl_128
!kl_if_130 <- case kl_if_129 of
Atom (B (True)) -> do !appl_131 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!appl_132 <- appl_131 `pseq` hd appl_131
!kl_if_133 <- appl_132 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_132
case kl_if_133 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_130 of
Atom (B (True)) -> do let !appl_134 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_135 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_136 <- applyWrapper aw_135 []
!appl_137 <- appl_136 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_136 kl_Parse_shen_LBactionRB)
let !aw_138 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_139 <- appl_137 `pseq` applyWrapper aw_138 [appl_137]
case kl_if_139 of
Atom (B (True)) -> do !appl_140 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
let !aw_141 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_142 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_141 [kl_Parse_shen_LBpatternsRB]
let !aw_143 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_144 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_143 [kl_Parse_shen_LBactionRB]
let !appl_145 = Atom Nil
!appl_146 <- appl_144 `pseq` (appl_145 `pseq` klCons appl_144 appl_145)
!appl_147 <- appl_142 `pseq` (appl_146 `pseq` klCons appl_142 appl_146)
let !aw_148 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_140 `pseq` (appl_147 `pseq` applyWrapper aw_148 [appl_140,
appl_147])
Atom (B (False)) -> do do let !aw_149 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_149 []
_ -> throwError "if: expected boolean")))
!appl_150 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!appl_151 <- appl_150 `pseq` tl appl_150
let !aw_152 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_153 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_152 [kl_Parse_shen_LBpatternsRB]
let !aw_154 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_155 <- appl_151 `pseq` (appl_153 `pseq` applyWrapper aw_154 [appl_151,
appl_153])
!appl_156 <- appl_155 `pseq` kl_shen_LBactionRB appl_155
appl_156 `pseq` applyWrapper appl_134 [appl_156]
Atom (B (False)) -> do do let !aw_157 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_157 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_158 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_158 []
_ -> throwError "if: expected boolean")))
!appl_159 <- kl_V1218 `pseq` kl_shen_LBpatternsRB kl_V1218
!appl_160 <- appl_159 `pseq` applyWrapper appl_122 [appl_159]
appl_160 `pseq` applyWrapper appl_4 [appl_160]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
let !appl_161 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_162 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_163 <- applyWrapper aw_162 []
!appl_164 <- appl_163 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_163 kl_Parse_shen_LBpatternsRB)
let !aw_165 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_166 <- appl_164 `pseq` applyWrapper aw_165 [appl_164]
case kl_if_166 of
Atom (B (True)) -> do !appl_167 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!kl_if_168 <- appl_167 `pseq` consP appl_167
!kl_if_169 <- case kl_if_168 of
Atom (B (True)) -> do !appl_170 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!appl_171 <- appl_170 `pseq` hd appl_170
!kl_if_172 <- appl_171 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_171
case kl_if_172 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_169 of
Atom (B (True)) -> do let !appl_173 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_174 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_175 <- applyWrapper aw_174 []
!appl_176 <- appl_175 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_175 kl_Parse_shen_LBactionRB)
let !aw_177 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_178 <- appl_176 `pseq` applyWrapper aw_177 [appl_176]
case kl_if_178 of
Atom (B (True)) -> do !appl_179 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
!kl_if_180 <- appl_179 `pseq` consP appl_179
!kl_if_181 <- case kl_if_180 of
Atom (B (True)) -> do !appl_182 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
!appl_183 <- appl_182 `pseq` hd appl_182
!kl_if_184 <- appl_183 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_183
case kl_if_184 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_181 of
Atom (B (True)) -> do let !appl_185 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBguardRB) -> do let !aw_186 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_187 <- applyWrapper aw_186 []
!appl_188 <- appl_187 `pseq` (kl_Parse_shen_LBguardRB `pseq` eq appl_187 kl_Parse_shen_LBguardRB)
let !aw_189 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_190 <- appl_188 `pseq` applyWrapper aw_189 [appl_188]
case kl_if_190 of
Atom (B (True)) -> do !appl_191 <- kl_Parse_shen_LBguardRB `pseq` hd kl_Parse_shen_LBguardRB
let !aw_192 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_193 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_192 [kl_Parse_shen_LBpatternsRB]
let !aw_194 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_195 <- kl_Parse_shen_LBguardRB `pseq` applyWrapper aw_194 [kl_Parse_shen_LBguardRB]
let !aw_196 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_197 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_196 [kl_Parse_shen_LBactionRB]
let !appl_198 = Atom Nil
!appl_199 <- appl_197 `pseq` (appl_198 `pseq` klCons appl_197 appl_198)
!appl_200 <- appl_195 `pseq` (appl_199 `pseq` klCons appl_195 appl_199)
!appl_201 <- appl_200 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_200
let !appl_202 = Atom Nil
!appl_203 <- appl_201 `pseq` (appl_202 `pseq` klCons appl_201 appl_202)
!appl_204 <- appl_193 `pseq` (appl_203 `pseq` klCons appl_193 appl_203)
let !aw_205 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_191 `pseq` (appl_204 `pseq` applyWrapper aw_205 [appl_191,
appl_204])
Atom (B (False)) -> do do let !aw_206 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_206 []
_ -> throwError "if: expected boolean")))
!appl_207 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
!appl_208 <- appl_207 `pseq` tl appl_207
let !aw_209 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_210 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_209 [kl_Parse_shen_LBactionRB]
let !aw_211 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_212 <- appl_208 `pseq` (appl_210 `pseq` applyWrapper aw_211 [appl_208,
appl_210])
!appl_213 <- appl_212 `pseq` kl_shen_LBguardRB appl_212
appl_213 `pseq` applyWrapper appl_185 [appl_213]
Atom (B (False)) -> do do let !aw_214 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_214 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_215 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_215 []
_ -> throwError "if: expected boolean")))
!appl_216 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
!appl_217 <- appl_216 `pseq` tl appl_216
let !aw_218 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_219 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_218 [kl_Parse_shen_LBpatternsRB]
let !aw_220 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_221 <- appl_217 `pseq` (appl_219 `pseq` applyWrapper aw_220 [appl_217,
appl_219])
!appl_222 <- appl_221 `pseq` kl_shen_LBactionRB appl_221
appl_222 `pseq` applyWrapper appl_173 [appl_222]
Atom (B (False)) -> do do let !aw_223 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_223 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_224 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_224 []
_ -> throwError "if: expected boolean")))
!appl_225 <- kl_V1218 `pseq` kl_shen_LBpatternsRB kl_V1218
!appl_226 <- appl_225 `pseq` applyWrapper appl_161 [appl_225]
appl_226 `pseq` applyWrapper appl_0 [appl_226]
kl_shen_fail_if :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_fail_if (!kl_V1221) (!kl_V1222) = do !kl_if_0 <- kl_V1222 `pseq` applyWrapper kl_V1221 [kl_V1222]
case kl_if_0 of
Atom (B (True)) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_1 []
Atom (B (False)) -> do do return kl_V1222
_ -> throwError "if: expected boolean"
kl_shen_succeedsP :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_succeedsP (!kl_V1228) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_1 <- applyWrapper aw_0 []
!kl_if_2 <- kl_V1228 `pseq` (appl_1 `pseq` eq kl_V1228 appl_1)
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B False))
Atom (B (False)) -> do do return (Atom (B True))
_ -> throwError "if: expected boolean"
kl_shen_LBpatternsRB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBpatternsRB (!kl_V1230) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_2 <- applyWrapper aw_1 []
!kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
case kl_if_3 of
Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_6 <- applyWrapper aw_5 []
!appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)
let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]
case kl_if_9 of
Atom (B (True)) -> do !appl_10 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
let !appl_11 = Atom Nil
let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_10 `pseq` (appl_11 `pseq` applyWrapper aw_12 [appl_10,
appl_11])
Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_13 []
_ -> throwError "if: expected boolean")))
let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "<e>")
!appl_15 <- kl_V1230 `pseq` applyWrapper aw_14 [kl_V1230]
appl_15 `pseq` applyWrapper appl_4 [appl_15]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternRB) -> do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_18 <- applyWrapper aw_17 []
!appl_19 <- appl_18 `pseq` (kl_Parse_shen_LBpatternRB `pseq` eq appl_18 kl_Parse_shen_LBpatternRB)
let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_21 <- appl_19 `pseq` applyWrapper aw_20 [appl_19]
case kl_if_21 of
Atom (B (True)) -> do let !appl_22 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_23 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_24 <- applyWrapper aw_23 []
!appl_25 <- appl_24 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_24 kl_Parse_shen_LBpatternsRB)
let !aw_26 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_27 <- appl_25 `pseq` applyWrapper aw_26 [appl_25]
case kl_if_27 of
Atom (B (True)) -> do !appl_28 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_30 <- kl_Parse_shen_LBpatternRB `pseq` applyWrapper aw_29 [kl_Parse_shen_LBpatternRB]
let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_32 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_31 [kl_Parse_shen_LBpatternsRB]
!appl_33 <- appl_30 `pseq` (appl_32 `pseq` klCons appl_30 appl_32)
let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_28 `pseq` (appl_33 `pseq` applyWrapper aw_34 [appl_28,
appl_33])
Atom (B (False)) -> do do let !aw_35 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_35 []
_ -> throwError "if: expected boolean")))
!appl_36 <- kl_Parse_shen_LBpatternRB `pseq` kl_shen_LBpatternsRB kl_Parse_shen_LBpatternRB
appl_36 `pseq` applyWrapper appl_22 [appl_36]
Atom (B (False)) -> do do let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_37 []
_ -> throwError "if: expected boolean")))
!appl_38 <- kl_V1230 `pseq` kl_shen_LBpatternRB kl_V1230
!appl_39 <- appl_38 `pseq` applyWrapper appl_16 [appl_38]
appl_39 `pseq` applyWrapper appl_0 [appl_39]
kl_shen_LBpatternRB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBpatternRB (!kl_V1237) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_2 <- applyWrapper aw_1 []
!kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
case kl_if_3 of
Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_6 <- applyWrapper aw_5 []
!kl_if_7 <- kl_YaccParse `pseq` (appl_6 `pseq` eq kl_YaccParse appl_6)
case kl_if_7 of
Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_10 <- applyWrapper aw_9 []
!kl_if_11 <- kl_YaccParse `pseq` (appl_10 `pseq` eq kl_YaccParse appl_10)
case kl_if_11 of
Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_14 <- applyWrapper aw_13 []
!kl_if_15 <- kl_YaccParse `pseq` (appl_14 `pseq` eq kl_YaccParse appl_14)
case kl_if_15 of
Atom (B (True)) -> do let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_18 <- applyWrapper aw_17 []
!kl_if_19 <- kl_YaccParse `pseq` (appl_18 `pseq` eq kl_YaccParse appl_18)
case kl_if_19 of
Atom (B (True)) -> do let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_22 <- applyWrapper aw_21 []
!kl_if_23 <- kl_YaccParse `pseq` (appl_22 `pseq` eq kl_YaccParse appl_22)
case kl_if_23 of
Atom (B (True)) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsimple_patternRB) -> do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_26 <- applyWrapper aw_25 []
!appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBsimple_patternRB `pseq` eq appl_26 kl_Parse_shen_LBsimple_patternRB)
let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_29 <- appl_27 `pseq` applyWrapper aw_28 [appl_27]
case kl_if_29 of
Atom (B (True)) -> do !appl_30 <- kl_Parse_shen_LBsimple_patternRB `pseq` hd kl_Parse_shen_LBsimple_patternRB
let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_32 <- kl_Parse_shen_LBsimple_patternRB `pseq` applyWrapper aw_31 [kl_Parse_shen_LBsimple_patternRB]
let !aw_33 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_30 `pseq` (appl_32 `pseq` applyWrapper aw_33 [appl_30,
appl_32])
Atom (B (False)) -> do do let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_34 []
_ -> throwError "if: expected boolean")))
!appl_35 <- kl_V1237 `pseq` kl_shen_LBsimple_patternRB kl_V1237
appl_35 `pseq` applyWrapper appl_24 [appl_35]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
!appl_36 <- kl_V1237 `pseq` hd kl_V1237
!kl_if_37 <- appl_36 `pseq` consP appl_36
!appl_38 <- case kl_if_37 of
Atom (B (True)) -> do let !appl_39 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let pat_cond_40 kl_Parse_X kl_Parse_Xh kl_Parse_Xt = do !appl_41 <- kl_V1237 `pseq` hd kl_V1237
!appl_42 <- appl_41 `pseq` tl appl_41
let !aw_43 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_44 <- kl_V1237 `pseq` applyWrapper aw_43 [kl_V1237]
let !aw_45 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_46 <- appl_42 `pseq` (appl_44 `pseq` applyWrapper aw_45 [appl_42,
appl_44])
!appl_47 <- appl_46 `pseq` hd appl_46
!appl_48 <- kl_Parse_X `pseq` kl_shen_constructor_error kl_Parse_X
let !aw_49 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_47 `pseq` (appl_48 `pseq` applyWrapper aw_49 [appl_47,
appl_48])
pat_cond_50 = do do let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_51 []
in case kl_Parse_X of
!(kl_Parse_X@(Cons (!kl_Parse_Xh)
(!kl_Parse_Xt))) -> pat_cond_40 kl_Parse_X kl_Parse_Xh kl_Parse_Xt
_ -> pat_cond_50)))
!appl_52 <- kl_V1237 `pseq` hd kl_V1237
!appl_53 <- appl_52 `pseq` hd appl_52
appl_53 `pseq` applyWrapper appl_39 [appl_53]
Atom (B (False)) -> do do let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_54 []
_ -> throwError "if: expected boolean"
appl_38 `pseq` applyWrapper appl_20 [appl_38]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
!appl_55 <- kl_V1237 `pseq` hd kl_V1237
!kl_if_56 <- appl_55 `pseq` consP appl_55
!kl_if_57 <- case kl_if_56 of
Atom (B (True)) -> do !appl_58 <- kl_V1237 `pseq` hd kl_V1237
!appl_59 <- appl_58 `pseq` hd appl_58
!kl_if_60 <- appl_59 `pseq` consP appl_59
case kl_if_60 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
!appl_61 <- case kl_if_57 of
Atom (B (True)) -> do !appl_62 <- kl_V1237 `pseq` hd kl_V1237
!appl_63 <- appl_62 `pseq` hd appl_62
!appl_64 <- kl_V1237 `pseq` tl kl_V1237
!appl_65 <- appl_64 `pseq` hd appl_64
let !aw_66 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_67 <- appl_63 `pseq` (appl_65 `pseq` applyWrapper aw_66 [appl_63,
appl_65])
!appl_68 <- appl_67 `pseq` hd appl_67
!kl_if_69 <- appl_68 `pseq` consP appl_68
!kl_if_70 <- case kl_if_69 of
Atom (B (True)) -> do !appl_71 <- kl_V1237 `pseq` hd kl_V1237
!appl_72 <- appl_71 `pseq` hd appl_71
!appl_73 <- kl_V1237 `pseq` tl kl_V1237
!appl_74 <- appl_73 `pseq` hd appl_73
let !aw_75 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_76 <- appl_72 `pseq` (appl_74 `pseq` applyWrapper aw_75 [appl_72,
appl_74])
!appl_77 <- appl_76 `pseq` hd appl_76
!appl_78 <- appl_77 `pseq` hd appl_77
!kl_if_79 <- appl_78 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "vector")) appl_78
case kl_if_79 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_70 of
Atom (B (True)) -> do !appl_80 <- kl_V1237 `pseq` hd kl_V1237
!appl_81 <- appl_80 `pseq` hd appl_80
!appl_82 <- kl_V1237 `pseq` tl kl_V1237
!appl_83 <- appl_82 `pseq` hd appl_82
let !aw_84 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_85 <- appl_81 `pseq` (appl_83 `pseq` applyWrapper aw_84 [appl_81,
appl_83])
!appl_86 <- appl_85 `pseq` hd appl_85
!appl_87 <- appl_86 `pseq` tl appl_86
!appl_88 <- kl_V1237 `pseq` hd kl_V1237
!appl_89 <- appl_88 `pseq` hd appl_88
!appl_90 <- kl_V1237 `pseq` tl kl_V1237
!appl_91 <- appl_90 `pseq` hd appl_90
let !aw_92 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_93 <- appl_89 `pseq` (appl_91 `pseq` applyWrapper aw_92 [appl_89,
appl_91])
let !aw_94 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_95 <- appl_93 `pseq` applyWrapper aw_94 [appl_93]
let !aw_96 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_97 <- appl_87 `pseq` (appl_95 `pseq` applyWrapper aw_96 [appl_87,
appl_95])
!appl_98 <- appl_97 `pseq` hd appl_97
!kl_if_99 <- appl_98 `pseq` consP appl_98
!kl_if_100 <- case kl_if_99 of
Atom (B (True)) -> do !appl_101 <- kl_V1237 `pseq` hd kl_V1237
!appl_102 <- appl_101 `pseq` hd appl_101
!appl_103 <- kl_V1237 `pseq` tl kl_V1237
!appl_104 <- appl_103 `pseq` hd appl_103
let !aw_105 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_106 <- appl_102 `pseq` (appl_104 `pseq` applyWrapper aw_105 [appl_102,
appl_104])
!appl_107 <- appl_106 `pseq` hd appl_106
!appl_108 <- appl_107 `pseq` tl appl_107
!appl_109 <- kl_V1237 `pseq` hd kl_V1237
!appl_110 <- appl_109 `pseq` hd appl_109
!appl_111 <- kl_V1237 `pseq` tl kl_V1237
!appl_112 <- appl_111 `pseq` hd appl_111
let !aw_113 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_114 <- appl_110 `pseq` (appl_112 `pseq` applyWrapper aw_113 [appl_110,
appl_112])
let !aw_115 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_116 <- appl_114 `pseq` applyWrapper aw_115 [appl_114]
let !aw_117 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_118 <- appl_108 `pseq` (appl_116 `pseq` applyWrapper aw_117 [appl_108,
appl_116])
!appl_119 <- appl_118 `pseq` hd appl_118
!appl_120 <- appl_119 `pseq` hd appl_119
!kl_if_121 <- appl_120 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_120
case kl_if_121 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_100 of
Atom (B (True)) -> do !appl_122 <- kl_V1237 `pseq` hd kl_V1237
!appl_123 <- appl_122 `pseq` tl appl_122
!appl_124 <- kl_V1237 `pseq` tl kl_V1237
!appl_125 <- appl_124 `pseq` hd appl_124
let !aw_126 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_127 <- appl_123 `pseq` (appl_125 `pseq` applyWrapper aw_126 [appl_123,
appl_125])
!appl_128 <- appl_127 `pseq` hd appl_127
let !appl_129 = Atom Nil
!appl_130 <- appl_129 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_129
!appl_131 <- appl_130 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "vector")) appl_130
let !aw_132 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_128 `pseq` (appl_131 `pseq` applyWrapper aw_132 [appl_128,
appl_131])
Atom (B (False)) -> do do let !aw_133 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_133 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_134 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_134 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_135 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_135 []
_ -> throwError "if: expected boolean"
appl_61 `pseq` applyWrapper appl_16 [appl_61]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
!appl_136 <- kl_V1237 `pseq` hd kl_V1237
!kl_if_137 <- appl_136 `pseq` consP appl_136
!kl_if_138 <- case kl_if_137 of
Atom (B (True)) -> do !appl_139 <- kl_V1237 `pseq` hd kl_V1237
!appl_140 <- appl_139 `pseq` hd appl_139
!kl_if_141 <- appl_140 `pseq` consP appl_140
case kl_if_141 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
!appl_142 <- case kl_if_138 of
Atom (B (True)) -> do !appl_143 <- kl_V1237 `pseq` hd kl_V1237
!appl_144 <- appl_143 `pseq` hd appl_143
!appl_145 <- kl_V1237 `pseq` tl kl_V1237
!appl_146 <- appl_145 `pseq` hd appl_145
let !aw_147 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_148 <- appl_144 `pseq` (appl_146 `pseq` applyWrapper aw_147 [appl_144,
appl_146])
!appl_149 <- appl_148 `pseq` hd appl_148
!kl_if_150 <- appl_149 `pseq` consP appl_149
!kl_if_151 <- case kl_if_150 of
Atom (B (True)) -> do !appl_152 <- kl_V1237 `pseq` hd kl_V1237
!appl_153 <- appl_152 `pseq` hd appl_152
!appl_154 <- kl_V1237 `pseq` tl kl_V1237
!appl_155 <- appl_154 `pseq` hd appl_154
let !aw_156 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_157 <- appl_153 `pseq` (appl_155 `pseq` applyWrapper aw_156 [appl_153,
appl_155])
!appl_158 <- appl_157 `pseq` hd appl_157
!appl_159 <- appl_158 `pseq` hd appl_158
!kl_if_160 <- appl_159 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "@s")) appl_159
case kl_if_160 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_151 of
Atom (B (True)) -> do let !appl_161 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_162 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_163 <- applyWrapper aw_162 []
!appl_164 <- appl_163 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_163 kl_Parse_shen_LBpattern1RB)
let !aw_165 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_166 <- appl_164 `pseq` applyWrapper aw_165 [appl_164]
case kl_if_166 of
Atom (B (True)) -> do let !appl_167 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_168 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_169 <- applyWrapper aw_168 []
!appl_170 <- appl_169 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_169 kl_Parse_shen_LBpattern2RB)
let !aw_171 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_172 <- appl_170 `pseq` applyWrapper aw_171 [appl_170]
case kl_if_172 of
Atom (B (True)) -> do !appl_173 <- kl_V1237 `pseq` hd kl_V1237
!appl_174 <- appl_173 `pseq` tl appl_173
!appl_175 <- kl_V1237 `pseq` tl kl_V1237
!appl_176 <- appl_175 `pseq` hd appl_175
let !aw_177 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_178 <- appl_174 `pseq` (appl_176 `pseq` applyWrapper aw_177 [appl_174,
appl_176])
!appl_179 <- appl_178 `pseq` hd appl_178
let !aw_180 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_181 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_180 [kl_Parse_shen_LBpattern1RB]
let !aw_182 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_183 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_182 [kl_Parse_shen_LBpattern2RB]
let !appl_184 = Atom Nil
!appl_185 <- appl_183 `pseq` (appl_184 `pseq` klCons appl_183 appl_184)
!appl_186 <- appl_181 `pseq` (appl_185 `pseq` klCons appl_181 appl_185)
!appl_187 <- appl_186 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "@s")) appl_186
let !aw_188 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_179 `pseq` (appl_187 `pseq` applyWrapper aw_188 [appl_179,
appl_187])
Atom (B (False)) -> do do let !aw_189 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_189 []
_ -> throwError "if: expected boolean")))
!appl_190 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB
appl_190 `pseq` applyWrapper appl_167 [appl_190]
Atom (B (False)) -> do do let !aw_191 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_191 []
_ -> throwError "if: expected boolean")))
!appl_192 <- kl_V1237 `pseq` hd kl_V1237
!appl_193 <- appl_192 `pseq` hd appl_192
!appl_194 <- kl_V1237 `pseq` tl kl_V1237
!appl_195 <- appl_194 `pseq` hd appl_194
let !aw_196 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_197 <- appl_193 `pseq` (appl_195 `pseq` applyWrapper aw_196 [appl_193,
appl_195])
!appl_198 <- appl_197 `pseq` hd appl_197
!appl_199 <- appl_198 `pseq` tl appl_198
!appl_200 <- kl_V1237 `pseq` hd kl_V1237
!appl_201 <- appl_200 `pseq` hd appl_200
!appl_202 <- kl_V1237 `pseq` tl kl_V1237
!appl_203 <- appl_202 `pseq` hd appl_202
let !aw_204 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_205 <- appl_201 `pseq` (appl_203 `pseq` applyWrapper aw_204 [appl_201,
appl_203])
let !aw_206 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_207 <- appl_205 `pseq` applyWrapper aw_206 [appl_205]
let !aw_208 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_209 <- appl_199 `pseq` (appl_207 `pseq` applyWrapper aw_208 [appl_199,
appl_207])
!appl_210 <- appl_209 `pseq` kl_shen_LBpattern1RB appl_209
appl_210 `pseq` applyWrapper appl_161 [appl_210]
Atom (B (False)) -> do do let !aw_211 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_211 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_212 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_212 []
_ -> throwError "if: expected boolean"
appl_142 `pseq` applyWrapper appl_12 [appl_142]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
!appl_213 <- kl_V1237 `pseq` hd kl_V1237
!kl_if_214 <- appl_213 `pseq` consP appl_213
!kl_if_215 <- case kl_if_214 of
Atom (B (True)) -> do !appl_216 <- kl_V1237 `pseq` hd kl_V1237
!appl_217 <- appl_216 `pseq` hd appl_216
!kl_if_218 <- appl_217 `pseq` consP appl_217
case kl_if_218 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
!appl_219 <- case kl_if_215 of
Atom (B (True)) -> do !appl_220 <- kl_V1237 `pseq` hd kl_V1237
!appl_221 <- appl_220 `pseq` hd appl_220
!appl_222 <- kl_V1237 `pseq` tl kl_V1237
!appl_223 <- appl_222 `pseq` hd appl_222
let !aw_224 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_225 <- appl_221 `pseq` (appl_223 `pseq` applyWrapper aw_224 [appl_221,
appl_223])
!appl_226 <- appl_225 `pseq` hd appl_225
!kl_if_227 <- appl_226 `pseq` consP appl_226
!kl_if_228 <- case kl_if_227 of
Atom (B (True)) -> do !appl_229 <- kl_V1237 `pseq` hd kl_V1237
!appl_230 <- appl_229 `pseq` hd appl_229
!appl_231 <- kl_V1237 `pseq` tl kl_V1237
!appl_232 <- appl_231 `pseq` hd appl_231
let !aw_233 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_234 <- appl_230 `pseq` (appl_232 `pseq` applyWrapper aw_233 [appl_230,
appl_232])
!appl_235 <- appl_234 `pseq` hd appl_234
!appl_236 <- appl_235 `pseq` hd appl_235
!kl_if_237 <- appl_236 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "@v")) appl_236
case kl_if_237 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_228 of
Atom (B (True)) -> do let !appl_238 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_239 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_240 <- applyWrapper aw_239 []
!appl_241 <- appl_240 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_240 kl_Parse_shen_LBpattern1RB)
let !aw_242 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_243 <- appl_241 `pseq` applyWrapper aw_242 [appl_241]
case kl_if_243 of
Atom (B (True)) -> do let !appl_244 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_245 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_246 <- applyWrapper aw_245 []
!appl_247 <- appl_246 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_246 kl_Parse_shen_LBpattern2RB)
let !aw_248 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_249 <- appl_247 `pseq` applyWrapper aw_248 [appl_247]
case kl_if_249 of
Atom (B (True)) -> do !appl_250 <- kl_V1237 `pseq` hd kl_V1237
!appl_251 <- appl_250 `pseq` tl appl_250
!appl_252 <- kl_V1237 `pseq` tl kl_V1237
!appl_253 <- appl_252 `pseq` hd appl_252
let !aw_254 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_255 <- appl_251 `pseq` (appl_253 `pseq` applyWrapper aw_254 [appl_251,
appl_253])
!appl_256 <- appl_255 `pseq` hd appl_255
let !aw_257 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_258 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_257 [kl_Parse_shen_LBpattern1RB]
let !aw_259 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_260 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_259 [kl_Parse_shen_LBpattern2RB]
let !appl_261 = Atom Nil
!appl_262 <- appl_260 `pseq` (appl_261 `pseq` klCons appl_260 appl_261)
!appl_263 <- appl_258 `pseq` (appl_262 `pseq` klCons appl_258 appl_262)
!appl_264 <- appl_263 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "@v")) appl_263
let !aw_265 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_256 `pseq` (appl_264 `pseq` applyWrapper aw_265 [appl_256,
appl_264])
Atom (B (False)) -> do do let !aw_266 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_266 []
_ -> throwError "if: expected boolean")))
!appl_267 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB
appl_267 `pseq` applyWrapper appl_244 [appl_267]
Atom (B (False)) -> do do let !aw_268 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_268 []
_ -> throwError "if: expected boolean")))
!appl_269 <- kl_V1237 `pseq` hd kl_V1237
!appl_270 <- appl_269 `pseq` hd appl_269
!appl_271 <- kl_V1237 `pseq` tl kl_V1237
!appl_272 <- appl_271 `pseq` hd appl_271
let !aw_273 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_274 <- appl_270 `pseq` (appl_272 `pseq` applyWrapper aw_273 [appl_270,
appl_272])
!appl_275 <- appl_274 `pseq` hd appl_274
!appl_276 <- appl_275 `pseq` tl appl_275
!appl_277 <- kl_V1237 `pseq` hd kl_V1237
!appl_278 <- appl_277 `pseq` hd appl_277
!appl_279 <- kl_V1237 `pseq` tl kl_V1237
!appl_280 <- appl_279 `pseq` hd appl_279
let !aw_281 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_282 <- appl_278 `pseq` (appl_280 `pseq` applyWrapper aw_281 [appl_278,
appl_280])
let !aw_283 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_284 <- appl_282 `pseq` applyWrapper aw_283 [appl_282]
let !aw_285 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_286 <- appl_276 `pseq` (appl_284 `pseq` applyWrapper aw_285 [appl_276,
appl_284])
!appl_287 <- appl_286 `pseq` kl_shen_LBpattern1RB appl_286
appl_287 `pseq` applyWrapper appl_238 [appl_287]
Atom (B (False)) -> do do let !aw_288 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_288 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_289 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_289 []
_ -> throwError "if: expected boolean"
appl_219 `pseq` applyWrapper appl_8 [appl_219]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
!appl_290 <- kl_V1237 `pseq` hd kl_V1237
!kl_if_291 <- appl_290 `pseq` consP appl_290
!kl_if_292 <- case kl_if_291 of
Atom (B (True)) -> do !appl_293 <- kl_V1237 `pseq` hd kl_V1237
!appl_294 <- appl_293 `pseq` hd appl_293
!kl_if_295 <- appl_294 `pseq` consP appl_294
case kl_if_295 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
!appl_296 <- case kl_if_292 of
Atom (B (True)) -> do !appl_297 <- kl_V1237 `pseq` hd kl_V1237
!appl_298 <- appl_297 `pseq` hd appl_297
!appl_299 <- kl_V1237 `pseq` tl kl_V1237
!appl_300 <- appl_299 `pseq` hd appl_299
let !aw_301 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_302 <- appl_298 `pseq` (appl_300 `pseq` applyWrapper aw_301 [appl_298,
appl_300])
!appl_303 <- appl_302 `pseq` hd appl_302
!kl_if_304 <- appl_303 `pseq` consP appl_303
!kl_if_305 <- case kl_if_304 of
Atom (B (True)) -> do !appl_306 <- kl_V1237 `pseq` hd kl_V1237
!appl_307 <- appl_306 `pseq` hd appl_306
!appl_308 <- kl_V1237 `pseq` tl kl_V1237
!appl_309 <- appl_308 `pseq` hd appl_308
let !aw_310 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_311 <- appl_307 `pseq` (appl_309 `pseq` applyWrapper aw_310 [appl_307,
appl_309])
!appl_312 <- appl_311 `pseq` hd appl_311
!appl_313 <- appl_312 `pseq` hd appl_312
!kl_if_314 <- appl_313 `pseq` eq (ApplC (wrapNamed "cons" klCons)) appl_313
case kl_if_314 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_305 of
Atom (B (True)) -> do let !appl_315 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_316 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_317 <- applyWrapper aw_316 []
!appl_318 <- appl_317 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_317 kl_Parse_shen_LBpattern1RB)
let !aw_319 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_320 <- appl_318 `pseq` applyWrapper aw_319 [appl_318]
case kl_if_320 of
Atom (B (True)) -> do let !appl_321 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_322 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_323 <- applyWrapper aw_322 []
!appl_324 <- appl_323 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_323 kl_Parse_shen_LBpattern2RB)
let !aw_325 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_326 <- appl_324 `pseq` applyWrapper aw_325 [appl_324]
case kl_if_326 of
Atom (B (True)) -> do !appl_327 <- kl_V1237 `pseq` hd kl_V1237
!appl_328 <- appl_327 `pseq` tl appl_327
!appl_329 <- kl_V1237 `pseq` tl kl_V1237
!appl_330 <- appl_329 `pseq` hd appl_329
let !aw_331 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_332 <- appl_328 `pseq` (appl_330 `pseq` applyWrapper aw_331 [appl_328,
appl_330])
!appl_333 <- appl_332 `pseq` hd appl_332
let !aw_334 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_335 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_334 [kl_Parse_shen_LBpattern1RB]
let !aw_336 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_337 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_336 [kl_Parse_shen_LBpattern2RB]
let !appl_338 = Atom Nil
!appl_339 <- appl_337 `pseq` (appl_338 `pseq` klCons appl_337 appl_338)
!appl_340 <- appl_335 `pseq` (appl_339 `pseq` klCons appl_335 appl_339)
!appl_341 <- appl_340 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_340
let !aw_342 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_333 `pseq` (appl_341 `pseq` applyWrapper aw_342 [appl_333,
appl_341])
Atom (B (False)) -> do do let !aw_343 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_343 []
_ -> throwError "if: expected boolean")))
!appl_344 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB
appl_344 `pseq` applyWrapper appl_321 [appl_344]
Atom (B (False)) -> do do let !aw_345 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_345 []
_ -> throwError "if: expected boolean")))
!appl_346 <- kl_V1237 `pseq` hd kl_V1237
!appl_347 <- appl_346 `pseq` hd appl_346
!appl_348 <- kl_V1237 `pseq` tl kl_V1237
!appl_349 <- appl_348 `pseq` hd appl_348
let !aw_350 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_351 <- appl_347 `pseq` (appl_349 `pseq` applyWrapper aw_350 [appl_347,
appl_349])
!appl_352 <- appl_351 `pseq` hd appl_351
!appl_353 <- appl_352 `pseq` tl appl_352
!appl_354 <- kl_V1237 `pseq` hd kl_V1237
!appl_355 <- appl_354 `pseq` hd appl_354
!appl_356 <- kl_V1237 `pseq` tl kl_V1237
!appl_357 <- appl_356 `pseq` hd appl_356
let !aw_358 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_359 <- appl_355 `pseq` (appl_357 `pseq` applyWrapper aw_358 [appl_355,
appl_357])
let !aw_360 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_361 <- appl_359 `pseq` applyWrapper aw_360 [appl_359]
let !aw_362 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_363 <- appl_353 `pseq` (appl_361 `pseq` applyWrapper aw_362 [appl_353,
appl_361])
!appl_364 <- appl_363 `pseq` kl_shen_LBpattern1RB appl_363
appl_364 `pseq` applyWrapper appl_315 [appl_364]
Atom (B (False)) -> do do let !aw_365 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_365 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_366 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_366 []
_ -> throwError "if: expected boolean"
appl_296 `pseq` applyWrapper appl_4 [appl_296]
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
!appl_367 <- kl_V1237 `pseq` hd kl_V1237
!kl_if_368 <- appl_367 `pseq` consP appl_367
!kl_if_369 <- case kl_if_368 of
Atom (B (True)) -> do !appl_370 <- kl_V1237 `pseq` hd kl_V1237
!appl_371 <- appl_370 `pseq` hd appl_370
!kl_if_372 <- appl_371 `pseq` consP appl_371
case kl_if_372 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
!appl_373 <- case kl_if_369 of
Atom (B (True)) -> do !appl_374 <- kl_V1237 `pseq` hd kl_V1237
!appl_375 <- appl_374 `pseq` hd appl_374
!appl_376 <- kl_V1237 `pseq` tl kl_V1237
!appl_377 <- appl_376 `pseq` hd appl_376
let !aw_378 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_379 <- appl_375 `pseq` (appl_377 `pseq` applyWrapper aw_378 [appl_375,
appl_377])
!appl_380 <- appl_379 `pseq` hd appl_379
!kl_if_381 <- appl_380 `pseq` consP appl_380
!kl_if_382 <- case kl_if_381 of
Atom (B (True)) -> do !appl_383 <- kl_V1237 `pseq` hd kl_V1237
!appl_384 <- appl_383 `pseq` hd appl_383
!appl_385 <- kl_V1237 `pseq` tl kl_V1237
!appl_386 <- appl_385 `pseq` hd appl_385
let !aw_387 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_388 <- appl_384 `pseq` (appl_386 `pseq` applyWrapper aw_387 [appl_384,
appl_386])
!appl_389 <- appl_388 `pseq` hd appl_388
!appl_390 <- appl_389 `pseq` hd appl_389
!kl_if_391 <- appl_390 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "@p")) appl_390
case kl_if_391 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_382 of
Atom (B (True)) -> do let !appl_392 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_393 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_394 <- applyWrapper aw_393 []
!appl_395 <- appl_394 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_394 kl_Parse_shen_LBpattern1RB)
let !aw_396 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_397 <- appl_395 `pseq` applyWrapper aw_396 [appl_395]
case kl_if_397 of
Atom (B (True)) -> do let !appl_398 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_399 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_400 <- applyWrapper aw_399 []
!appl_401 <- appl_400 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_400 kl_Parse_shen_LBpattern2RB)
let !aw_402 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_403 <- appl_401 `pseq` applyWrapper aw_402 [appl_401]
case kl_if_403 of
Atom (B (True)) -> do !appl_404 <- kl_V1237 `pseq` hd kl_V1237
!appl_405 <- appl_404 `pseq` tl appl_404
!appl_406 <- kl_V1237 `pseq` tl kl_V1237
!appl_407 <- appl_406 `pseq` hd appl_406
let !aw_408 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_409 <- appl_405 `pseq` (appl_407 `pseq` applyWrapper aw_408 [appl_405,
appl_407])
!appl_410 <- appl_409 `pseq` hd appl_409
let !aw_411 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_412 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_411 [kl_Parse_shen_LBpattern1RB]
let !aw_413 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_414 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_413 [kl_Parse_shen_LBpattern2RB]
let !appl_415 = Atom Nil
!appl_416 <- appl_414 `pseq` (appl_415 `pseq` klCons appl_414 appl_415)
!appl_417 <- appl_412 `pseq` (appl_416 `pseq` klCons appl_412 appl_416)
!appl_418 <- appl_417 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "@p")) appl_417
let !aw_419 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_410 `pseq` (appl_418 `pseq` applyWrapper aw_419 [appl_410,
appl_418])
Atom (B (False)) -> do do let !aw_420 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_420 []
_ -> throwError "if: expected boolean")))
!appl_421 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB
appl_421 `pseq` applyWrapper appl_398 [appl_421]
Atom (B (False)) -> do do let !aw_422 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_422 []
_ -> throwError "if: expected boolean")))
!appl_423 <- kl_V1237 `pseq` hd kl_V1237
!appl_424 <- appl_423 `pseq` hd appl_423
!appl_425 <- kl_V1237 `pseq` tl kl_V1237
!appl_426 <- appl_425 `pseq` hd appl_425
let !aw_427 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_428 <- appl_424 `pseq` (appl_426 `pseq` applyWrapper aw_427 [appl_424,
appl_426])
!appl_429 <- appl_428 `pseq` hd appl_428
!appl_430 <- appl_429 `pseq` tl appl_429
!appl_431 <- kl_V1237 `pseq` hd kl_V1237
!appl_432 <- appl_431 `pseq` hd appl_431
!appl_433 <- kl_V1237 `pseq` tl kl_V1237
!appl_434 <- appl_433 `pseq` hd appl_433
let !aw_435 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_436 <- appl_432 `pseq` (appl_434 `pseq` applyWrapper aw_435 [appl_432,
appl_434])
let !aw_437 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_438 <- appl_436 `pseq` applyWrapper aw_437 [appl_436]
let !aw_439 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_440 <- appl_430 `pseq` (appl_438 `pseq` applyWrapper aw_439 [appl_430,
appl_438])
!appl_441 <- appl_440 `pseq` kl_shen_LBpattern1RB appl_440
appl_441 `pseq` applyWrapper appl_392 [appl_441]
Atom (B (False)) -> do do let !aw_442 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_442 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_443 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_443 []
_ -> throwError "if: expected boolean"
appl_373 `pseq` applyWrapper appl_0 [appl_373]
kl_shen_constructor_error :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_constructor_error (!kl_V1239) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_1 <- kl_V1239 `pseq` applyWrapper aw_0 [kl_V1239,
Core.Types.Atom (Core.Types.Str " is not a legitimate constructor\n"),
Core.Types.Atom (Core.Types.UnboundSym "shen.a")]
appl_1 `pseq` simpleError appl_1
kl_shen_LBsimple_patternRB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBsimple_patternRB (!kl_V1241) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_2 <- applyWrapper aw_1 []
!kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
case kl_if_3 of
Atom (B (True)) -> do !appl_4 <- kl_V1241 `pseq` hd kl_V1241
!kl_if_5 <- appl_4 `pseq` consP appl_4
case kl_if_5 of
Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_7 = Atom Nil
!appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "<-")) appl_7
!appl_9 <- appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_8
let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "element?")
!appl_11 <- kl_Parse_X `pseq` (appl_9 `pseq` applyWrapper aw_10 [kl_Parse_X,
appl_9])
let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_13 <- appl_11 `pseq` applyWrapper aw_12 [appl_11]
case kl_if_13 of
Atom (B (True)) -> do !appl_14 <- kl_V1241 `pseq` hd kl_V1241
!appl_15 <- appl_14 `pseq` tl appl_14
let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_17 <- kl_V1241 `pseq` applyWrapper aw_16 [kl_V1241]
let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_19 <- appl_15 `pseq` (appl_17 `pseq` applyWrapper aw_18 [appl_15,
appl_17])
!appl_20 <- appl_19 `pseq` hd appl_19
let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_20 `pseq` (kl_Parse_X `pseq` applyWrapper aw_21 [appl_20,
kl_Parse_X])
Atom (B (False)) -> do do let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_22 []
_ -> throwError "if: expected boolean")))
!appl_23 <- kl_V1241 `pseq` hd kl_V1241
!appl_24 <- appl_23 `pseq` hd appl_23
appl_24 `pseq` applyWrapper appl_6 [appl_24]
Atom (B (False)) -> do do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_25 []
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return kl_YaccParse
_ -> throwError "if: expected boolean")))
!appl_26 <- kl_V1241 `pseq` hd kl_V1241
!kl_if_27 <- appl_26 `pseq` consP appl_26
!appl_28 <- case kl_if_27 of
Atom (B (True)) -> do let !appl_29 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let pat_cond_30 = do !appl_31 <- kl_V1241 `pseq` hd kl_V1241
!appl_32 <- appl_31 `pseq` tl appl_31
let !aw_33 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_34 <- kl_V1241 `pseq` applyWrapper aw_33 [kl_V1241]
let !aw_35 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_36 <- appl_32 `pseq` (appl_34 `pseq` applyWrapper aw_35 [appl_32,
appl_34])
!appl_37 <- appl_36 `pseq` hd appl_36
let !aw_38 = Core.Types.Atom (Core.Types.UnboundSym "gensym")
!appl_39 <- applyWrapper aw_38 [Core.Types.Atom (Core.Types.UnboundSym "Parse_Y")]
let !aw_40 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_37 `pseq` (appl_39 `pseq` applyWrapper aw_40 [appl_37,
appl_39])
pat_cond_41 = do do let !aw_42 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_42 []
in case kl_Parse_X of
kl_Parse_X@(Atom (UnboundSym "_")) -> pat_cond_30
kl_Parse_X@(ApplC (PL "_"
_)) -> pat_cond_30
kl_Parse_X@(ApplC (Func "_"
_)) -> pat_cond_30
_ -> pat_cond_41)))
!appl_43 <- kl_V1241 `pseq` hd kl_V1241
!appl_44 <- appl_43 `pseq` hd appl_43
appl_44 `pseq` applyWrapper appl_29 [appl_44]
Atom (B (False)) -> do do let !aw_45 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_45 []
_ -> throwError "if: expected boolean"
appl_28 `pseq` applyWrapper appl_0 [appl_28]
kl_shen_LBpattern1RB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBpattern1RB (!kl_V1243) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternRB) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_2 <- applyWrapper aw_1 []
!appl_3 <- appl_2 `pseq` (kl_Parse_shen_LBpatternRB `pseq` eq appl_2 kl_Parse_shen_LBpatternRB)
let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_5 <- appl_3 `pseq` applyWrapper aw_4 [appl_3]
case kl_if_5 of
Atom (B (True)) -> do !appl_6 <- kl_Parse_shen_LBpatternRB `pseq` hd kl_Parse_shen_LBpatternRB
let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_8 <- kl_Parse_shen_LBpatternRB `pseq` applyWrapper aw_7 [kl_Parse_shen_LBpatternRB]
let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6,
appl_8])
Atom (B (False)) -> do do let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_10 []
_ -> throwError "if: expected boolean")))
!appl_11 <- kl_V1243 `pseq` kl_shen_LBpatternRB kl_V1243
appl_11 `pseq` applyWrapper appl_0 [appl_11]
kl_shen_LBpattern2RB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBpattern2RB (!kl_V1245) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternRB) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")
!appl_2 <- applyWrapper aw_1 []
!appl_3 <- appl_2 `pseq` (kl_Parse_shen_LBpatternRB `pseq` eq appl_2 kl_Parse_shen_LBpatternRB)
let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_5 <- appl_3 `pseq` applyWrapper aw_4 [appl_3]
case kl_if_5 of
Atom (B (True)) -> do !appl_6 <- kl_Parse_shen_LBpatternRB `pseq` hd kl_Parse_shen_LBpatternRB
let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_8 <- kl_Parse_shen_LBpatternRB `pseq` applyWrapper aw_7 [kl_Parse_shen_LBpatternRB]
let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6,
appl_8])
Atom (B (False)) -> do do let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_10 []
_ -> throwError "if: expected boolean")))
!appl_11 <- kl_V1245 `pseq` kl_shen_LBpatternRB kl_V1245
appl_11 `pseq` applyWrapper appl_0 [appl_11]
kl_shen_LBactionRB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBactionRB (!kl_V1247) = do !appl_0 <- kl_V1247 `pseq` hd kl_V1247
!kl_if_1 <- appl_0 `pseq` consP appl_0
case kl_if_1 of
Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- kl_V1247 `pseq` hd kl_V1247
!appl_4 <- appl_3 `pseq` tl appl_3
let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_6 <- kl_V1247 `pseq` applyWrapper aw_5 [kl_V1247]
let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_8 <- appl_4 `pseq` (appl_6 `pseq` applyWrapper aw_7 [appl_4,
appl_6])
!appl_9 <- appl_8 `pseq` hd appl_8
let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_9 `pseq` (kl_Parse_X `pseq` applyWrapper aw_10 [appl_9,
kl_Parse_X]))))
!appl_11 <- kl_V1247 `pseq` hd kl_V1247
!appl_12 <- appl_11 `pseq` hd appl_11
appl_12 `pseq` applyWrapper appl_2 [appl_12]
Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_13 []
_ -> throwError "if: expected boolean"
kl_shen_LBguardRB :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_LBguardRB (!kl_V1249) = do !appl_0 <- kl_V1249 `pseq` hd kl_V1249
!kl_if_1 <- appl_0 `pseq` consP appl_0
case kl_if_1 of
Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- kl_V1249 `pseq` hd kl_V1249
!appl_4 <- appl_3 `pseq` tl appl_3
let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")
!appl_6 <- kl_V1249 `pseq` applyWrapper aw_5 [kl_V1249]
let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
!appl_8 <- appl_4 `pseq` (appl_6 `pseq` applyWrapper aw_7 [appl_4,
appl_6])
!appl_9 <- appl_8 `pseq` hd appl_8
let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")
appl_9 `pseq` (kl_Parse_X `pseq` applyWrapper aw_10 [appl_9,
kl_Parse_X]))))
!appl_11 <- kl_V1249 `pseq` hd kl_V1249
!appl_12 <- appl_11 `pseq` hd appl_11
appl_12 `pseq` applyWrapper appl_2 [appl_12]
Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")
applyWrapper aw_13 []
_ -> throwError "if: expected boolean"
kl_shen_compile_to_machine_code :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_compile_to_machine_code (!kl_V1252) (!kl_V1253) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_LambdaPlus) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_KL) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Record) -> do return kl_KL)))
!appl_3 <- kl_V1252 `pseq` (kl_KL `pseq` kl_shen_record_source kl_V1252 kl_KL)
appl_3 `pseq` applyWrapper appl_2 [appl_3])))
!appl_4 <- kl_V1252 `pseq` (kl_LambdaPlus `pseq` kl_shen_compile_to_kl kl_V1252 kl_LambdaPlus)
appl_4 `pseq` applyWrapper appl_1 [appl_4])))
!appl_5 <- kl_V1252 `pseq` (kl_V1253 `pseq` kl_shen_compile_to_lambdaPlus kl_V1252 kl_V1253)
appl_5 `pseq` applyWrapper appl_0 [appl_5]
kl_shen_record_source :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_record_source (!kl_V1258) (!kl_V1259) = do !kl_if_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*installing-kl*"))
case kl_if_0 of
Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))
Atom (B (False)) -> do do !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))
let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "put")
kl_V1258 `pseq` (kl_V1259 `pseq` (appl_1 `pseq` applyWrapper aw_2 [kl_V1258,
Core.Types.Atom (Core.Types.UnboundSym "shen.source"),
kl_V1259,
appl_1]))
_ -> throwError "if: expected boolean"
kl_shen_compile_to_lambdaPlus :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_compile_to_lambdaPlus (!kl_V1262) (!kl_V1263) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Arity) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_UpDateSymbolTable) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Free) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Variables) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Strip) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_Abstractions) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Applications) -> do let !appl_7 = Atom Nil
!appl_8 <- kl_Applications `pseq` (appl_7 `pseq` klCons kl_Applications appl_7)
kl_Variables `pseq` (appl_8 `pseq` klCons kl_Variables appl_8))))
let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_Variables `pseq` (kl_X `pseq` kl_shen_application_build kl_Variables kl_X))))
let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "map")
!appl_11 <- appl_9 `pseq` (kl_Abstractions `pseq` applyWrapper aw_10 [appl_9,
kl_Abstractions])
appl_11 `pseq` applyWrapper appl_6 [appl_11])))
let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_abstract_rule kl_X)))
let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "map")
!appl_14 <- appl_12 `pseq` (kl_Strip `pseq` applyWrapper aw_13 [appl_12,
kl_Strip])
appl_14 `pseq` applyWrapper appl_5 [appl_14])))
let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_strip_protect kl_X)))
let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "map")
!appl_17 <- appl_15 `pseq` (kl_V1263 `pseq` applyWrapper aw_16 [appl_15,
kl_V1263])
appl_17 `pseq` applyWrapper appl_4 [appl_17])))
!appl_18 <- kl_Arity `pseq` kl_shen_parameters kl_Arity
appl_18 `pseq` applyWrapper appl_3 [appl_18])))
let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Rule) -> do kl_V1262 `pseq` (kl_Rule `pseq` kl_shen_free_variable_check kl_V1262 kl_Rule))))
let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "for-each")
!appl_21 <- appl_19 `pseq` (kl_V1263 `pseq` applyWrapper aw_20 [appl_19,
kl_V1263])
appl_21 `pseq` applyWrapper appl_2 [appl_21])))
!appl_22 <- kl_V1262 `pseq` (kl_Arity `pseq` kl_shen_update_symbol_table kl_V1262 kl_Arity)
appl_22 `pseq` applyWrapper appl_1 [appl_22])))
!appl_23 <- kl_V1262 `pseq` (kl_V1263 `pseq` kl_shen_aritycheck kl_V1262 kl_V1263)
appl_23 `pseq` applyWrapper appl_0 [appl_23]
kl_shen_update_symbol_table :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_update_symbol_table (!kl_V1266) (!kl_V1267) = do let pat_cond_0 = do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))
pat_cond_1 = do do let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.lambda-form")
!appl_3 <- kl_V1266 `pseq` (kl_V1267 `pseq` applyWrapper aw_2 [kl_V1266,
kl_V1267])
!appl_4 <- appl_3 `pseq` evalKL appl_3
!appl_5 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))
let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "put")
kl_V1266 `pseq` (appl_4 `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V1266,
Core.Types.Atom (Core.Types.UnboundSym "shen.lambda-form"),
appl_4,
appl_5]))
in case kl_V1267 of
kl_V1267@(Atom (N (KI 0))) -> pat_cond_0
_ -> pat_cond_1
kl_shen_free_variable_check :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_free_variable_check (!kl_V1270) (!kl_V1271) = do !kl_if_0 <- let pat_cond_1 kl_V1271 kl_V1271h kl_V1271t = do !kl_if_2 <- let pat_cond_3 kl_V1271t kl_V1271th kl_V1271tt = do let !appl_4 = Atom Nil
!kl_if_5 <- appl_4 `pseq` (kl_V1271tt `pseq` eq appl_4 kl_V1271tt)
case kl_if_5 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_6 = do do return (Atom (B False))
in case kl_V1271t of
!(kl_V1271t@(Cons (!kl_V1271th)
(!kl_V1271tt))) -> pat_cond_3 kl_V1271t kl_V1271th kl_V1271tt
_ -> pat_cond_6
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_7 = do do return (Atom (B False))
in case kl_V1271 of
!(kl_V1271@(Cons (!kl_V1271h)
(!kl_V1271t))) -> pat_cond_1 kl_V1271 kl_V1271h kl_V1271t
_ -> pat_cond_7
case kl_if_0 of
Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Bound) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Free) -> do kl_V1270 `pseq` (kl_Free `pseq` kl_shen_free_variable_warnings kl_V1270 kl_Free))))
!appl_10 <- kl_V1271 `pseq` tl kl_V1271
!appl_11 <- appl_10 `pseq` hd appl_10
!appl_12 <- kl_Bound `pseq` (appl_11 `pseq` kl_shen_extract_free_vars kl_Bound appl_11)
appl_12 `pseq` applyWrapper appl_9 [appl_12])))
!appl_13 <- kl_V1271 `pseq` hd kl_V1271
!appl_14 <- appl_13 `pseq` kl_shen_extract_vars appl_13
appl_14 `pseq` applyWrapper appl_8 [appl_14]
Atom (B (False)) -> do do let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_15 [ApplC (wrapNamed "shen.free_variable_check" kl_shen_free_variable_check)]
_ -> throwError "if: expected boolean"
kl_shen_extract_vars :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_extract_vars (!kl_V1273) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "variable?")
!kl_if_1 <- kl_V1273 `pseq` applyWrapper aw_0 [kl_V1273]
case kl_if_1 of
Atom (B (True)) -> do let !appl_2 = Atom Nil
kl_V1273 `pseq` (appl_2 `pseq` klCons kl_V1273 appl_2)
Atom (B (False)) -> do let pat_cond_3 kl_V1273 kl_V1273h kl_V1273t = do !appl_4 <- kl_V1273h `pseq` kl_shen_extract_vars kl_V1273h
!appl_5 <- kl_V1273t `pseq` kl_shen_extract_vars kl_V1273t
let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "union")
appl_4 `pseq` (appl_5 `pseq` applyWrapper aw_6 [appl_4,
appl_5])
pat_cond_7 = do do return (Atom Nil)
in case kl_V1273 of
!(kl_V1273@(Cons (!kl_V1273h)
(!kl_V1273t))) -> pat_cond_3 kl_V1273 kl_V1273h kl_V1273t
_ -> pat_cond_7
_ -> throwError "if: expected boolean"
kl_shen_extract_free_vars :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_extract_free_vars (!kl_V1285) (!kl_V1286) = do !kl_if_0 <- let pat_cond_1 kl_V1286 kl_V1286h kl_V1286t = do !kl_if_2 <- let pat_cond_3 kl_V1286t kl_V1286th kl_V1286tt = do let !appl_4 = Atom Nil
!kl_if_5 <- appl_4 `pseq` (kl_V1286tt `pseq` eq appl_4 kl_V1286tt)
!kl_if_6 <- case kl_if_5 of
Atom (B (True)) -> do let pat_cond_7 = do return (Atom (B True))
pat_cond_8 = do do return (Atom (B False))
in case kl_V1286h of
kl_V1286h@(Atom (UnboundSym "protect")) -> pat_cond_7
kl_V1286h@(ApplC (PL "protect"
_)) -> pat_cond_7
kl_V1286h@(ApplC (Func "protect"
_)) -> pat_cond_7
_ -> pat_cond_8
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_6 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_9 = do do return (Atom (B False))
in case kl_V1286t of
!(kl_V1286t@(Cons (!kl_V1286th)
(!kl_V1286tt))) -> pat_cond_3 kl_V1286t kl_V1286th kl_V1286tt
_ -> pat_cond_9
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_10 = do do return (Atom (B False))
in case kl_V1286 of
!(kl_V1286@(Cons (!kl_V1286h)
(!kl_V1286t))) -> pat_cond_1 kl_V1286 kl_V1286h kl_V1286t
_ -> pat_cond_10
case kl_if_0 of
Atom (B (True)) -> do return (Atom Nil)
Atom (B (False)) -> do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "variable?")
!kl_if_12 <- kl_V1286 `pseq` applyWrapper aw_11 [kl_V1286]
!kl_if_13 <- case kl_if_12 of
Atom (B (True)) -> do let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "element?")
!appl_15 <- kl_V1286 `pseq` (kl_V1285 `pseq` applyWrapper aw_14 [kl_V1286,
kl_V1285])
let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_17 <- appl_15 `pseq` applyWrapper aw_16 [appl_15]
case kl_if_17 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_13 of
Atom (B (True)) -> do let !appl_18 = Atom Nil
kl_V1286 `pseq` (appl_18 `pseq` klCons kl_V1286 appl_18)
Atom (B (False)) -> do !kl_if_19 <- let pat_cond_20 kl_V1286 kl_V1286h kl_V1286t = do !kl_if_21 <- let pat_cond_22 = do !kl_if_23 <- let pat_cond_24 kl_V1286t kl_V1286th kl_V1286tt = do !kl_if_25 <- let pat_cond_26 kl_V1286tt kl_V1286tth kl_V1286ttt = do let !appl_27 = Atom Nil
!kl_if_28 <- appl_27 `pseq` (kl_V1286ttt `pseq` eq appl_27 kl_V1286ttt)
case kl_if_28 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_29 = do do return (Atom (B False))
in case kl_V1286tt of
!(kl_V1286tt@(Cons (!kl_V1286tth)
(!kl_V1286ttt))) -> pat_cond_26 kl_V1286tt kl_V1286tth kl_V1286ttt
_ -> pat_cond_29
case kl_if_25 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_30 = do do return (Atom (B False))
in case kl_V1286t of
!(kl_V1286t@(Cons (!kl_V1286th)
(!kl_V1286tt))) -> pat_cond_24 kl_V1286t kl_V1286th kl_V1286tt
_ -> pat_cond_30
case kl_if_23 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_31 = do do return (Atom (B False))
in case kl_V1286h of
kl_V1286h@(Atom (UnboundSym "lambda")) -> pat_cond_22
kl_V1286h@(ApplC (PL "lambda"
_)) -> pat_cond_22
kl_V1286h@(ApplC (Func "lambda"
_)) -> pat_cond_22
_ -> pat_cond_31
case kl_if_21 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_32 = do do return (Atom (B False))
in case kl_V1286 of
!(kl_V1286@(Cons (!kl_V1286h)
(!kl_V1286t))) -> pat_cond_20 kl_V1286 kl_V1286h kl_V1286t
_ -> pat_cond_32
case kl_if_19 of
Atom (B (True)) -> do !appl_33 <- kl_V1286 `pseq` tl kl_V1286
!appl_34 <- appl_33 `pseq` hd appl_33
!appl_35 <- appl_34 `pseq` (kl_V1285 `pseq` klCons appl_34 kl_V1285)
!appl_36 <- kl_V1286 `pseq` tl kl_V1286
!appl_37 <- appl_36 `pseq` tl appl_36
!appl_38 <- appl_37 `pseq` hd appl_37
appl_35 `pseq` (appl_38 `pseq` kl_shen_extract_free_vars appl_35 appl_38)
Atom (B (False)) -> do !kl_if_39 <- let pat_cond_40 kl_V1286 kl_V1286h kl_V1286t = do !kl_if_41 <- let pat_cond_42 = do !kl_if_43 <- let pat_cond_44 kl_V1286t kl_V1286th kl_V1286tt = do !kl_if_45 <- let pat_cond_46 kl_V1286tt kl_V1286tth kl_V1286ttt = do !kl_if_47 <- let pat_cond_48 kl_V1286ttt kl_V1286ttth kl_V1286tttt = do let !appl_49 = Atom Nil
!kl_if_50 <- appl_49 `pseq` (kl_V1286tttt `pseq` eq appl_49 kl_V1286tttt)
case kl_if_50 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_51 = do do return (Atom (B False))
in case kl_V1286ttt of
!(kl_V1286ttt@(Cons (!kl_V1286ttth)
(!kl_V1286tttt))) -> pat_cond_48 kl_V1286ttt kl_V1286ttth kl_V1286tttt
_ -> pat_cond_51
case kl_if_47 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_52 = do do return (Atom (B False))
in case kl_V1286tt of
!(kl_V1286tt@(Cons (!kl_V1286tth)
(!kl_V1286ttt))) -> pat_cond_46 kl_V1286tt kl_V1286tth kl_V1286ttt
_ -> pat_cond_52
case kl_if_45 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_53 = do do return (Atom (B False))
in case kl_V1286t of
!(kl_V1286t@(Cons (!kl_V1286th)
(!kl_V1286tt))) -> pat_cond_44 kl_V1286t kl_V1286th kl_V1286tt
_ -> pat_cond_53
case kl_if_43 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_54 = do do return (Atom (B False))
in case kl_V1286h of
kl_V1286h@(Atom (UnboundSym "let")) -> pat_cond_42
kl_V1286h@(ApplC (PL "let"
_)) -> pat_cond_42
kl_V1286h@(ApplC (Func "let"
_)) -> pat_cond_42
_ -> pat_cond_54
case kl_if_41 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_55 = do do return (Atom (B False))
in case kl_V1286 of
!(kl_V1286@(Cons (!kl_V1286h)
(!kl_V1286t))) -> pat_cond_40 kl_V1286 kl_V1286h kl_V1286t
_ -> pat_cond_55
case kl_if_39 of
Atom (B (True)) -> do !appl_56 <- kl_V1286 `pseq` tl kl_V1286
!appl_57 <- appl_56 `pseq` tl appl_56
!appl_58 <- appl_57 `pseq` hd appl_57
!appl_59 <- kl_V1285 `pseq` (appl_58 `pseq` kl_shen_extract_free_vars kl_V1285 appl_58)
!appl_60 <- kl_V1286 `pseq` tl kl_V1286
!appl_61 <- appl_60 `pseq` hd appl_60
!appl_62 <- appl_61 `pseq` (kl_V1285 `pseq` klCons appl_61 kl_V1285)
!appl_63 <- kl_V1286 `pseq` tl kl_V1286
!appl_64 <- appl_63 `pseq` tl appl_63
!appl_65 <- appl_64 `pseq` tl appl_64
!appl_66 <- appl_65 `pseq` hd appl_65
!appl_67 <- appl_62 `pseq` (appl_66 `pseq` kl_shen_extract_free_vars appl_62 appl_66)
let !aw_68 = Core.Types.Atom (Core.Types.UnboundSym "union")
appl_59 `pseq` (appl_67 `pseq` applyWrapper aw_68 [appl_59,
appl_67])
Atom (B (False)) -> do let pat_cond_69 kl_V1286 kl_V1286h kl_V1286t = do !appl_70 <- kl_V1285 `pseq` (kl_V1286h `pseq` kl_shen_extract_free_vars kl_V1285 kl_V1286h)
!appl_71 <- kl_V1285 `pseq` (kl_V1286t `pseq` kl_shen_extract_free_vars kl_V1285 kl_V1286t)
let !aw_72 = Core.Types.Atom (Core.Types.UnboundSym "union")
appl_70 `pseq` (appl_71 `pseq` applyWrapper aw_72 [appl_70,
appl_71])
pat_cond_73 = do do return (Atom Nil)
in case kl_V1286 of
!(kl_V1286@(Cons (!kl_V1286h)
(!kl_V1286t))) -> pat_cond_69 kl_V1286 kl_V1286h kl_V1286t
_ -> pat_cond_73
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
kl_shen_free_variable_warnings :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_free_variable_warnings (!kl_V1291) (!kl_V1292) = do let !appl_0 = Atom Nil
!kl_if_1 <- appl_0 `pseq` (kl_V1292 `pseq` eq appl_0 kl_V1292)
case kl_if_1 of
Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "_"))
Atom (B (False)) -> do do !appl_2 <- kl_V1292 `pseq` kl_shen_list_variables kl_V1292
let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_4 <- appl_2 `pseq` applyWrapper aw_3 [appl_2,
Core.Types.Atom (Core.Types.Str ""),
Core.Types.Atom (Core.Types.UnboundSym "shen.a")]
!appl_5 <- appl_4 `pseq` cn (Core.Types.Atom (Core.Types.Str ": ")) appl_4
let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_7 <- kl_V1291 `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V1291,
appl_5,
Core.Types.Atom (Core.Types.UnboundSym "shen.a")])
!appl_8 <- appl_7 `pseq` cn (Core.Types.Atom (Core.Types.Str "error: the following variables are free in ")) appl_7
appl_8 `pseq` simpleError appl_8
_ -> throwError "if: expected boolean"
kl_shen_list_variables :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_list_variables (!kl_V1294) = do !kl_if_0 <- let pat_cond_1 kl_V1294 kl_V1294h kl_V1294t = do let !appl_2 = Atom Nil
!kl_if_3 <- appl_2 `pseq` (kl_V1294t `pseq` eq appl_2 kl_V1294t)
case kl_if_3 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_4 = do do return (Atom (B False))
in case kl_V1294 of
!(kl_V1294@(Cons (!kl_V1294h)
(!kl_V1294t))) -> pat_cond_1 kl_V1294 kl_V1294h kl_V1294t
_ -> pat_cond_4
case kl_if_0 of
Atom (B (True)) -> do !appl_5 <- kl_V1294 `pseq` hd kl_V1294
!appl_6 <- appl_5 `pseq` str appl_5
appl_6 `pseq` cn appl_6 (Core.Types.Atom (Core.Types.Str "."))
Atom (B (False)) -> do let pat_cond_7 kl_V1294 kl_V1294h kl_V1294t = do !appl_8 <- kl_V1294h `pseq` str kl_V1294h
!appl_9 <- kl_V1294t `pseq` kl_shen_list_variables kl_V1294t
!appl_10 <- appl_9 `pseq` cn (Core.Types.Atom (Core.Types.Str ", ")) appl_9
appl_8 `pseq` (appl_10 `pseq` cn appl_8 appl_10)
pat_cond_11 = do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_12 [ApplC (wrapNamed "shen.list_variables" kl_shen_list_variables)]
in case kl_V1294 of
!(kl_V1294@(Cons (!kl_V1294h)
(!kl_V1294t))) -> pat_cond_7 kl_V1294 kl_V1294h kl_V1294t
_ -> pat_cond_11
_ -> throwError "if: expected boolean"
kl_shen_strip_protect :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_strip_protect (!kl_V1296) = do !kl_if_0 <- let pat_cond_1 kl_V1296 kl_V1296h kl_V1296t = do !kl_if_2 <- let pat_cond_3 kl_V1296t kl_V1296th kl_V1296tt = do let !appl_4 = Atom Nil
!kl_if_5 <- appl_4 `pseq` (kl_V1296tt `pseq` eq appl_4 kl_V1296tt)
!kl_if_6 <- case kl_if_5 of
Atom (B (True)) -> do let pat_cond_7 = do return (Atom (B True))
pat_cond_8 = do do return (Atom (B False))
in case kl_V1296h of
kl_V1296h@(Atom (UnboundSym "protect")) -> pat_cond_7
kl_V1296h@(ApplC (PL "protect"
_)) -> pat_cond_7
kl_V1296h@(ApplC (Func "protect"
_)) -> pat_cond_7
_ -> pat_cond_8
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_6 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_9 = do do return (Atom (B False))
in case kl_V1296t of
!(kl_V1296t@(Cons (!kl_V1296th)
(!kl_V1296tt))) -> pat_cond_3 kl_V1296t kl_V1296th kl_V1296tt
_ -> pat_cond_9
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_10 = do do return (Atom (B False))
in case kl_V1296 of
!(kl_V1296@(Cons (!kl_V1296h)
(!kl_V1296t))) -> pat_cond_1 kl_V1296 kl_V1296h kl_V1296t
_ -> pat_cond_10
case kl_if_0 of
Atom (B (True)) -> do !appl_11 <- kl_V1296 `pseq` tl kl_V1296
!appl_12 <- appl_11 `pseq` hd appl_11
appl_12 `pseq` kl_shen_strip_protect appl_12
Atom (B (False)) -> do let pat_cond_13 kl_V1296 kl_V1296h kl_V1296t = do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_strip_protect kl_Z)))
let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "map")
appl_14 `pseq` (kl_V1296 `pseq` applyWrapper aw_15 [appl_14,
kl_V1296])
pat_cond_16 = do do return kl_V1296
in case kl_V1296 of
!(kl_V1296@(Cons (!kl_V1296h)
(!kl_V1296t))) -> pat_cond_13 kl_V1296 kl_V1296h kl_V1296t
_ -> pat_cond_16
_ -> throwError "if: expected boolean"
kl_shen_linearise :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_linearise (!kl_V1298) = do !kl_if_0 <- let pat_cond_1 kl_V1298 kl_V1298h kl_V1298t = do !kl_if_2 <- let pat_cond_3 kl_V1298t kl_V1298th kl_V1298tt = do let !appl_4 = Atom Nil
!kl_if_5 <- appl_4 `pseq` (kl_V1298tt `pseq` eq appl_4 kl_V1298tt)
case kl_if_5 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_6 = do do return (Atom (B False))
in case kl_V1298t of
!(kl_V1298t@(Cons (!kl_V1298th)
(!kl_V1298tt))) -> pat_cond_3 kl_V1298t kl_V1298th kl_V1298tt
_ -> pat_cond_6
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_7 = do do return (Atom (B False))
in case kl_V1298 of
!(kl_V1298@(Cons (!kl_V1298h)
(!kl_V1298t))) -> pat_cond_1 kl_V1298 kl_V1298h kl_V1298t
_ -> pat_cond_7
case kl_if_0 of
Atom (B (True)) -> do !appl_8 <- kl_V1298 `pseq` hd kl_V1298
!appl_9 <- appl_8 `pseq` kl_shen_flatten appl_8
!appl_10 <- kl_V1298 `pseq` hd kl_V1298
!appl_11 <- kl_V1298 `pseq` tl kl_V1298
!appl_12 <- appl_11 `pseq` hd appl_11
appl_9 `pseq` (appl_10 `pseq` (appl_12 `pseq` kl_shen_linearise_help appl_9 appl_10 appl_12))
Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_13 [ApplC (wrapNamed "shen.linearise" kl_shen_linearise)]
_ -> throwError "if: expected boolean"
kl_shen_flatten :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_flatten (!kl_V1300) = do let !appl_0 = Atom Nil
!kl_if_1 <- appl_0 `pseq` (kl_V1300 `pseq` eq appl_0 kl_V1300)
case kl_if_1 of
Atom (B (True)) -> do return (Atom Nil)
Atom (B (False)) -> do let pat_cond_2 kl_V1300 kl_V1300h kl_V1300t = do !appl_3 <- kl_V1300h `pseq` kl_shen_flatten kl_V1300h
!appl_4 <- kl_V1300t `pseq` kl_shen_flatten kl_V1300t
let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "append")
appl_3 `pseq` (appl_4 `pseq` applyWrapper aw_5 [appl_3,
appl_4])
pat_cond_6 = do do let !appl_7 = Atom Nil
kl_V1300 `pseq` (appl_7 `pseq` klCons kl_V1300 appl_7)
in case kl_V1300 of
!(kl_V1300@(Cons (!kl_V1300h)
(!kl_V1300t))) -> pat_cond_2 kl_V1300 kl_V1300h kl_V1300t
_ -> pat_cond_6
_ -> throwError "if: expected boolean"
kl_shen_linearise_help :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_linearise_help (!kl_V1304) (!kl_V1305) (!kl_V1306) = do let !appl_0 = Atom Nil
!kl_if_1 <- appl_0 `pseq` (kl_V1304 `pseq` eq appl_0 kl_V1304)
case kl_if_1 of
Atom (B (True)) -> do let !appl_2 = Atom Nil
!appl_3 <- kl_V1306 `pseq` (appl_2 `pseq` klCons kl_V1306 appl_2)
kl_V1305 `pseq` (appl_3 `pseq` klCons kl_V1305 appl_3)
Atom (B (False)) -> do let pat_cond_4 kl_V1304 kl_V1304h kl_V1304t = do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "variable?")
!kl_if_6 <- kl_V1304h `pseq` applyWrapper aw_5 [kl_V1304h]
!kl_if_7 <- case kl_if_6 of
Atom (B (True)) -> do let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "element?")
!kl_if_9 <- kl_V1304h `pseq` (kl_V1304t `pseq` applyWrapper aw_8 [kl_V1304h,
kl_V1304t])
case kl_if_9 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_7 of
Atom (B (True)) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Var) -> do let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_NewAction) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_NewPatts) -> do kl_V1304t `pseq` (kl_NewPatts `pseq` (kl_NewAction `pseq` kl_shen_linearise_help kl_V1304t kl_NewPatts kl_NewAction)))))
!appl_13 <- kl_V1304h `pseq` (kl_Var `pseq` (kl_V1305 `pseq` kl_shen_linearise_X kl_V1304h kl_Var kl_V1305))
appl_13 `pseq` applyWrapper appl_12 [appl_13])))
let !appl_14 = Atom Nil
!appl_15 <- kl_Var `pseq` (appl_14 `pseq` klCons kl_Var appl_14)
!appl_16 <- kl_V1304h `pseq` (appl_15 `pseq` klCons kl_V1304h appl_15)
!appl_17 <- appl_16 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_16
let !appl_18 = Atom Nil
!appl_19 <- kl_V1306 `pseq` (appl_18 `pseq` klCons kl_V1306 appl_18)
!appl_20 <- appl_17 `pseq` (appl_19 `pseq` klCons appl_17 appl_19)
!appl_21 <- appl_20 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_20
appl_21 `pseq` applyWrapper appl_11 [appl_21])))
let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "gensym")
!appl_23 <- kl_V1304h `pseq` applyWrapper aw_22 [kl_V1304h]
appl_23 `pseq` applyWrapper appl_10 [appl_23]
Atom (B (False)) -> do do kl_V1304t `pseq` (kl_V1305 `pseq` (kl_V1306 `pseq` kl_shen_linearise_help kl_V1304t kl_V1305 kl_V1306))
_ -> throwError "if: expected boolean"
pat_cond_24 = do do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_25 [ApplC (wrapNamed "shen.linearise_help" kl_shen_linearise_help)]
in case kl_V1304 of
!(kl_V1304@(Cons (!kl_V1304h)
(!kl_V1304t))) -> pat_cond_4 kl_V1304 kl_V1304h kl_V1304t
_ -> pat_cond_24
_ -> throwError "if: expected boolean"
kl_shen_linearise_X :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_linearise_X (!kl_V1319) (!kl_V1320) (!kl_V1321) = do !kl_if_0 <- kl_V1321 `pseq` (kl_V1319 `pseq` eq kl_V1321 kl_V1319)
case kl_if_0 of
Atom (B (True)) -> do return kl_V1320
Atom (B (False)) -> do let pat_cond_1 kl_V1321 kl_V1321h kl_V1321t = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_L) -> do !kl_if_3 <- kl_L `pseq` (kl_V1321h `pseq` eq kl_L kl_V1321h)
case kl_if_3 of
Atom (B (True)) -> do !appl_4 <- kl_V1319 `pseq` (kl_V1320 `pseq` (kl_V1321t `pseq` kl_shen_linearise_X kl_V1319 kl_V1320 kl_V1321t))
kl_V1321h `pseq` (appl_4 `pseq` klCons kl_V1321h appl_4)
Atom (B (False)) -> do do kl_L `pseq` (kl_V1321t `pseq` klCons kl_L kl_V1321t)
_ -> throwError "if: expected boolean")))
!appl_5 <- kl_V1319 `pseq` (kl_V1320 `pseq` (kl_V1321h `pseq` kl_shen_linearise_X kl_V1319 kl_V1320 kl_V1321h))
appl_5 `pseq` applyWrapper appl_2 [appl_5]
pat_cond_6 = do do return kl_V1321
in case kl_V1321 of
!(kl_V1321@(Cons (!kl_V1321h)
(!kl_V1321t))) -> pat_cond_1 kl_V1321 kl_V1321h kl_V1321t
_ -> pat_cond_6
_ -> throwError "if: expected boolean"
kl_shen_aritycheck :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_aritycheck (!kl_V1324) (!kl_V1325) = do !kl_if_0 <- let pat_cond_1 kl_V1325 kl_V1325h kl_V1325t = do !kl_if_2 <- let pat_cond_3 kl_V1325h kl_V1325hh kl_V1325ht = do !kl_if_4 <- let pat_cond_5 kl_V1325ht kl_V1325hth kl_V1325htt = do let !appl_6 = Atom Nil
!kl_if_7 <- appl_6 `pseq` (kl_V1325htt `pseq` eq appl_6 kl_V1325htt)
!kl_if_8 <- case kl_if_7 of
Atom (B (True)) -> do let !appl_9 = Atom Nil
!kl_if_10 <- appl_9 `pseq` (kl_V1325t `pseq` eq appl_9 kl_V1325t)
case kl_if_10 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_8 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_11 = do do return (Atom (B False))
in case kl_V1325ht of
!(kl_V1325ht@(Cons (!kl_V1325hth)
(!kl_V1325htt))) -> pat_cond_5 kl_V1325ht kl_V1325hth kl_V1325htt
_ -> pat_cond_11
case kl_if_4 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_12 = do do return (Atom (B False))
in case kl_V1325h of
!(kl_V1325h@(Cons (!kl_V1325hh)
(!kl_V1325ht))) -> pat_cond_3 kl_V1325h kl_V1325hh kl_V1325ht
_ -> pat_cond_12
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_13 = do do return (Atom (B False))
in case kl_V1325 of
!(kl_V1325@(Cons (!kl_V1325h)
(!kl_V1325t))) -> pat_cond_1 kl_V1325 kl_V1325h kl_V1325t
_ -> pat_cond_13
case kl_if_0 of
Atom (B (True)) -> do !appl_14 <- kl_V1325 `pseq` hd kl_V1325
!appl_15 <- appl_14 `pseq` tl appl_14
!appl_16 <- appl_15 `pseq` hd appl_15
!appl_17 <- appl_16 `pseq` kl_shen_aritycheck_action appl_16
let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "arity")
!appl_19 <- kl_V1324 `pseq` applyWrapper aw_18 [kl_V1324]
!appl_20 <- kl_V1325 `pseq` hd kl_V1325
!appl_21 <- appl_20 `pseq` hd appl_20
let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "length")
!appl_23 <- appl_21 `pseq` applyWrapper aw_22 [appl_21]
!appl_24 <- kl_V1324 `pseq` (appl_19 `pseq` (appl_23 `pseq` kl_shen_aritycheck_name kl_V1324 appl_19 appl_23))
let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "do")
appl_17 `pseq` (appl_24 `pseq` applyWrapper aw_25 [appl_17,
appl_24])
Atom (B (False)) -> do !kl_if_26 <- let pat_cond_27 kl_V1325 kl_V1325h kl_V1325t = do !kl_if_28 <- let pat_cond_29 kl_V1325h kl_V1325hh kl_V1325ht = do !kl_if_30 <- let pat_cond_31 kl_V1325ht kl_V1325hth kl_V1325htt = do let !appl_32 = Atom Nil
!kl_if_33 <- appl_32 `pseq` (kl_V1325htt `pseq` eq appl_32 kl_V1325htt)
!kl_if_34 <- case kl_if_33 of
Atom (B (True)) -> do !kl_if_35 <- let pat_cond_36 kl_V1325t kl_V1325th kl_V1325tt = do !kl_if_37 <- let pat_cond_38 kl_V1325th kl_V1325thh kl_V1325tht = do !kl_if_39 <- let pat_cond_40 kl_V1325tht kl_V1325thth kl_V1325thtt = do let !appl_41 = Atom Nil
!kl_if_42 <- appl_41 `pseq` (kl_V1325thtt `pseq` eq appl_41 kl_V1325thtt)
case kl_if_42 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_43 = do do return (Atom (B False))
in case kl_V1325tht of
!(kl_V1325tht@(Cons (!kl_V1325thth)
(!kl_V1325thtt))) -> pat_cond_40 kl_V1325tht kl_V1325thth kl_V1325thtt
_ -> pat_cond_43
case kl_if_39 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_44 = do do return (Atom (B False))
in case kl_V1325th of
!(kl_V1325th@(Cons (!kl_V1325thh)
(!kl_V1325tht))) -> pat_cond_38 kl_V1325th kl_V1325thh kl_V1325tht
_ -> pat_cond_44
case kl_if_37 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_45 = do do return (Atom (B False))
in case kl_V1325t of
!(kl_V1325t@(Cons (!kl_V1325th)
(!kl_V1325tt))) -> pat_cond_36 kl_V1325t kl_V1325th kl_V1325tt
_ -> pat_cond_45
case kl_if_35 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_34 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_46 = do do return (Atom (B False))
in case kl_V1325ht of
!(kl_V1325ht@(Cons (!kl_V1325hth)
(!kl_V1325htt))) -> pat_cond_31 kl_V1325ht kl_V1325hth kl_V1325htt
_ -> pat_cond_46
case kl_if_30 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_47 = do do return (Atom (B False))
in case kl_V1325h of
!(kl_V1325h@(Cons (!kl_V1325hh)
(!kl_V1325ht))) -> pat_cond_29 kl_V1325h kl_V1325hh kl_V1325ht
_ -> pat_cond_47
case kl_if_28 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_48 = do do return (Atom (B False))
in case kl_V1325 of
!(kl_V1325@(Cons (!kl_V1325h)
(!kl_V1325t))) -> pat_cond_27 kl_V1325 kl_V1325h kl_V1325t
_ -> pat_cond_48
case kl_if_26 of
Atom (B (True)) -> do !appl_49 <- kl_V1325 `pseq` hd kl_V1325
!appl_50 <- appl_49 `pseq` hd appl_49
let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "length")
!appl_52 <- appl_50 `pseq` applyWrapper aw_51 [appl_50]
!appl_53 <- kl_V1325 `pseq` tl kl_V1325
!appl_54 <- appl_53 `pseq` hd appl_53
!appl_55 <- appl_54 `pseq` hd appl_54
let !aw_56 = Core.Types.Atom (Core.Types.UnboundSym "length")
!appl_57 <- appl_55 `pseq` applyWrapper aw_56 [appl_55]
!kl_if_58 <- appl_52 `pseq` (appl_57 `pseq` eq appl_52 appl_57)
case kl_if_58 of
Atom (B (True)) -> do !appl_59 <- kl_V1325 `pseq` hd kl_V1325
!appl_60 <- appl_59 `pseq` tl appl_59
!appl_61 <- appl_60 `pseq` hd appl_60
!appl_62 <- appl_61 `pseq` kl_shen_aritycheck_action appl_61
!appl_63 <- kl_V1325 `pseq` tl kl_V1325
!appl_64 <- kl_V1324 `pseq` (appl_63 `pseq` kl_shen_aritycheck kl_V1324 appl_63)
let !aw_65 = Core.Types.Atom (Core.Types.UnboundSym "do")
appl_62 `pseq` (appl_64 `pseq` applyWrapper aw_65 [appl_62,
appl_64])
Atom (B (False)) -> do do let !aw_66 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_67 <- kl_V1324 `pseq` applyWrapper aw_66 [kl_V1324,
Core.Types.Atom (Core.Types.Str "\n"),
Core.Types.Atom (Core.Types.UnboundSym "shen.a")]
!appl_68 <- appl_67 `pseq` cn (Core.Types.Atom (Core.Types.Str "arity error in ")) appl_67
appl_68 `pseq` simpleError appl_68
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do let !aw_69 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_69 [ApplC (wrapNamed "shen.aritycheck" kl_shen_aritycheck)]
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
kl_shen_aritycheck_name :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_aritycheck_name (!kl_V1338) (!kl_V1339) (!kl_V1340) = do let pat_cond_0 = do return kl_V1340
pat_cond_1 = do !kl_if_2 <- kl_V1340 `pseq` (kl_V1339 `pseq` eq kl_V1340 kl_V1339)
case kl_if_2 of
Atom (B (True)) -> do return kl_V1340
Atom (B (False)) -> do do let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_4 <- kl_V1338 `pseq` applyWrapper aw_3 [kl_V1338,
Core.Types.Atom (Core.Types.Str " can cause errors.\n"),
Core.Types.Atom (Core.Types.UnboundSym "shen.a")]
!appl_5 <- appl_4 `pseq` cn (Core.Types.Atom (Core.Types.Str "\nwarning: changing the arity of ")) appl_4
let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")
!appl_7 <- applyWrapper aw_6 []
let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")
!appl_9 <- appl_5 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_5,
appl_7])
let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "do")
appl_9 `pseq` (kl_V1340 `pseq` applyWrapper aw_10 [appl_9,
kl_V1340])
_ -> throwError "if: expected boolean"
in case kl_V1339 of
kl_V1339@(Atom (N (KI (-1)))) -> pat_cond_0
_ -> pat_cond_1
kl_shen_aritycheck_action :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_aritycheck_action (!kl_V1346) = do let pat_cond_0 kl_V1346 kl_V1346h kl_V1346t = do !appl_1 <- kl_V1346h `pseq` (kl_V1346t `pseq` kl_shen_aah kl_V1346h kl_V1346t)
let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do kl_Y `pseq` kl_shen_aritycheck_action kl_Y)))
let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "for-each")
!appl_4 <- appl_2 `pseq` (kl_V1346 `pseq` applyWrapper aw_3 [appl_2,
kl_V1346])
let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "do")
appl_1 `pseq` (appl_4 `pseq` applyWrapper aw_5 [appl_1,
appl_4])
pat_cond_6 = do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))
in case kl_V1346 of
!(kl_V1346@(Cons (!kl_V1346h)
(!kl_V1346t))) -> pat_cond_0 kl_V1346 kl_V1346h kl_V1346t
_ -> pat_cond_6
kl_shen_aah :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_aah (!kl_V1349) (!kl_V1350) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Arity) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Len) -> do !kl_if_2 <- kl_Arity `pseq` greaterThan kl_Arity (Core.Types.Atom (Core.Types.N (Core.Types.KI (-1))))
!kl_if_3 <- case kl_if_2 of
Atom (B (True)) -> do !kl_if_4 <- kl_Len `pseq` (kl_Arity `pseq` greaterThan kl_Len kl_Arity)
case kl_if_4 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_3 of
Atom (B (True)) -> do !kl_if_5 <- kl_Len `pseq` greaterThan kl_Len (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))
!appl_6 <- case kl_if_5 of
Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.Str "s"))
Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.Str ""))
_ -> throwError "if: expected boolean"
let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_8 <- appl_6 `pseq` applyWrapper aw_7 [appl_6,
Core.Types.Atom (Core.Types.Str ".\n"),
Core.Types.Atom (Core.Types.UnboundSym "shen.a")]
!appl_9 <- appl_8 `pseq` cn (Core.Types.Atom (Core.Types.Str " argument")) appl_8
let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_11 <- kl_Len `pseq` (appl_9 `pseq` applyWrapper aw_10 [kl_Len,
appl_9,
Core.Types.Atom (Core.Types.UnboundSym "shen.a")])
!appl_12 <- appl_11 `pseq` cn (Core.Types.Atom (Core.Types.Str " might not like ")) appl_11
let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_14 <- kl_V1349 `pseq` (appl_12 `pseq` applyWrapper aw_13 [kl_V1349,
appl_12,
Core.Types.Atom (Core.Types.UnboundSym "shen.a")])
!appl_15 <- appl_14 `pseq` cn (Core.Types.Atom (Core.Types.Str "warning: ")) appl_14
let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")
!appl_17 <- applyWrapper aw_16 []
let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")
appl_15 `pseq` (appl_17 `pseq` applyWrapper aw_18 [appl_15,
appl_17])
Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))
_ -> throwError "if: expected boolean")))
let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "length")
!appl_20 <- kl_V1350 `pseq` applyWrapper aw_19 [kl_V1350]
appl_20 `pseq` applyWrapper appl_1 [appl_20])))
let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "arity")
!appl_22 <- kl_V1349 `pseq` applyWrapper aw_21 [kl_V1349]
appl_22 `pseq` applyWrapper appl_0 [appl_22]
kl_shen_abstract_rule :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_abstract_rule (!kl_V1352) = do !kl_if_0 <- let pat_cond_1 kl_V1352 kl_V1352h kl_V1352t = do !kl_if_2 <- let pat_cond_3 kl_V1352t kl_V1352th kl_V1352tt = do let !appl_4 = Atom Nil
!kl_if_5 <- appl_4 `pseq` (kl_V1352tt `pseq` eq appl_4 kl_V1352tt)
case kl_if_5 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_6 = do do return (Atom (B False))
in case kl_V1352t of
!(kl_V1352t@(Cons (!kl_V1352th)
(!kl_V1352tt))) -> pat_cond_3 kl_V1352t kl_V1352th kl_V1352tt
_ -> pat_cond_6
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_7 = do do return (Atom (B False))
in case kl_V1352 of
!(kl_V1352@(Cons (!kl_V1352h)
(!kl_V1352t))) -> pat_cond_1 kl_V1352 kl_V1352h kl_V1352t
_ -> pat_cond_7
case kl_if_0 of
Atom (B (True)) -> do !appl_8 <- kl_V1352 `pseq` hd kl_V1352
!appl_9 <- kl_V1352 `pseq` tl kl_V1352
!appl_10 <- appl_9 `pseq` hd appl_9
appl_8 `pseq` (appl_10 `pseq` kl_shen_abstraction_build appl_8 appl_10)
Atom (B (False)) -> do do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_11 [ApplC (wrapNamed "shen.abstract_rule" kl_shen_abstract_rule)]
_ -> throwError "if: expected boolean"
kl_shen_abstraction_build :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_abstraction_build (!kl_V1355) (!kl_V1356) = do let !appl_0 = Atom Nil
!kl_if_1 <- appl_0 `pseq` (kl_V1355 `pseq` eq appl_0 kl_V1355)
case kl_if_1 of
Atom (B (True)) -> do return kl_V1356
Atom (B (False)) -> do let pat_cond_2 kl_V1355 kl_V1355h kl_V1355t = do !appl_3 <- kl_V1355t `pseq` (kl_V1356 `pseq` kl_shen_abstraction_build kl_V1355t kl_V1356)
let !appl_4 = Atom Nil
!appl_5 <- appl_3 `pseq` (appl_4 `pseq` klCons appl_3 appl_4)
!appl_6 <- kl_V1355h `pseq` (appl_5 `pseq` klCons kl_V1355h appl_5)
appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_6
pat_cond_7 = do do let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_8 [ApplC (wrapNamed "shen.abstraction_build" kl_shen_abstraction_build)]
in case kl_V1355 of
!(kl_V1355@(Cons (!kl_V1355h)
(!kl_V1355t))) -> pat_cond_2 kl_V1355 kl_V1355h kl_V1355t
_ -> pat_cond_7
_ -> throwError "if: expected boolean"
kl_shen_parameters :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_parameters (!kl_V1358) = do let pat_cond_0 = do return (Atom Nil)
pat_cond_1 = do do let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "gensym")
!appl_3 <- applyWrapper aw_2 [Core.Types.Atom (Core.Types.UnboundSym "V")]
!appl_4 <- kl_V1358 `pseq` Primitives.subtract kl_V1358 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))
!appl_5 <- appl_4 `pseq` kl_shen_parameters appl_4
appl_3 `pseq` (appl_5 `pseq` klCons appl_3 appl_5)
in case kl_V1358 of
kl_V1358@(Atom (N (KI 0))) -> pat_cond_0
_ -> pat_cond_1
kl_shen_application_build :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_application_build (!kl_V1361) (!kl_V1362) = do let !appl_0 = Atom Nil
!kl_if_1 <- appl_0 `pseq` (kl_V1361 `pseq` eq appl_0 kl_V1361)
case kl_if_1 of
Atom (B (True)) -> do return kl_V1362
Atom (B (False)) -> do let pat_cond_2 kl_V1361 kl_V1361h kl_V1361t = do let !appl_3 = Atom Nil
!appl_4 <- kl_V1361h `pseq` (appl_3 `pseq` klCons kl_V1361h appl_3)
!appl_5 <- kl_V1362 `pseq` (appl_4 `pseq` klCons kl_V1362 appl_4)
kl_V1361t `pseq` (appl_5 `pseq` kl_shen_application_build kl_V1361t appl_5)
pat_cond_6 = do do let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_7 [ApplC (wrapNamed "shen.application_build" kl_shen_application_build)]
in case kl_V1361 of
!(kl_V1361@(Cons (!kl_V1361h)
(!kl_V1361t))) -> pat_cond_2 kl_V1361 kl_V1361h kl_V1361t
_ -> pat_cond_6
_ -> throwError "if: expected boolean"
kl_shen_compile_to_kl :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_compile_to_kl (!kl_V1365) (!kl_V1366) = do !kl_if_0 <- let pat_cond_1 kl_V1366 kl_V1366h kl_V1366t = do !kl_if_2 <- let pat_cond_3 kl_V1366t kl_V1366th kl_V1366tt = do let !appl_4 = Atom Nil
!kl_if_5 <- appl_4 `pseq` (kl_V1366tt `pseq` eq appl_4 kl_V1366tt)
case kl_if_5 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_6 = do do return (Atom (B False))
in case kl_V1366t of
!(kl_V1366t@(Cons (!kl_V1366th)
(!kl_V1366tt))) -> pat_cond_3 kl_V1366t kl_V1366th kl_V1366tt
_ -> pat_cond_6
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_7 = do do return (Atom (B False))
in case kl_V1366 of
!(kl_V1366@(Cons (!kl_V1366h)
(!kl_V1366t))) -> pat_cond_1 kl_V1366 kl_V1366h kl_V1366t
_ -> pat_cond_7
case kl_if_0 of
Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Arity) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Reduce) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_CondExpression) -> do let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_TypeTable) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_TypedCondExpression) -> do !appl_13 <- kl_V1366 `pseq` hd kl_V1366
let !appl_14 = Atom Nil
!appl_15 <- kl_TypedCondExpression `pseq` (appl_14 `pseq` klCons kl_TypedCondExpression appl_14)
!appl_16 <- appl_13 `pseq` (appl_15 `pseq` klCons appl_13 appl_15)
!appl_17 <- kl_V1365 `pseq` (appl_16 `pseq` klCons kl_V1365 appl_16)
appl_17 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defun")) appl_17)))
!kl_if_18 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*optimise*"))
!appl_19 <- case kl_if_18 of
Atom (B (True)) -> do !appl_20 <- kl_V1366 `pseq` hd kl_V1366
appl_20 `pseq` (kl_TypeTable `pseq` (kl_CondExpression `pseq` kl_shen_assign_types appl_20 kl_TypeTable kl_CondExpression))
Atom (B (False)) -> do do return kl_CondExpression
_ -> throwError "if: expected boolean"
appl_19 `pseq` applyWrapper appl_12 [appl_19])))
!kl_if_21 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*optimise*"))
!appl_22 <- case kl_if_21 of
Atom (B (True)) -> do !appl_23 <- kl_V1365 `pseq` kl_shen_get_type kl_V1365
!appl_24 <- kl_V1366 `pseq` hd kl_V1366
appl_23 `pseq` (appl_24 `pseq` kl_shen_typextable appl_23 appl_24)
Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))
_ -> throwError "if: expected boolean"
appl_22 `pseq` applyWrapper appl_11 [appl_22])))
!appl_25 <- kl_V1366 `pseq` hd kl_V1366
!appl_26 <- kl_V1365 `pseq` (appl_25 `pseq` (kl_Reduce `pseq` kl_shen_cond_expression kl_V1365 appl_25 kl_Reduce))
appl_26 `pseq` applyWrapper appl_10 [appl_26])))
let !appl_27 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_reduce kl_X)))
!appl_28 <- kl_V1366 `pseq` tl kl_V1366
!appl_29 <- appl_28 `pseq` hd appl_28
let !aw_30 = Core.Types.Atom (Core.Types.UnboundSym "map")
!appl_31 <- appl_27 `pseq` (appl_29 `pseq` applyWrapper aw_30 [appl_27,
appl_29])
appl_31 `pseq` applyWrapper appl_9 [appl_31])))
!appl_32 <- kl_V1366 `pseq` hd kl_V1366
let !aw_33 = Core.Types.Atom (Core.Types.UnboundSym "length")
!appl_34 <- appl_32 `pseq` applyWrapper aw_33 [appl_32]
!appl_35 <- kl_V1365 `pseq` (appl_34 `pseq` kl_shen_store_arity kl_V1365 appl_34)
appl_35 `pseq` applyWrapper appl_8 [appl_35]
Atom (B (False)) -> do do let !aw_36 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_36 [ApplC (wrapNamed "shen.compile_to_kl" kl_shen_compile_to_kl)]
_ -> throwError "if: expected boolean"
kl_shen_get_type :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_get_type (!kl_V1372) = do let pat_cond_0 kl_V1372 kl_V1372h kl_V1372t = do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))
pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_FType) -> do let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "empty?")
!kl_if_4 <- kl_FType `pseq` applyWrapper aw_3 [kl_FType]
case kl_if_4 of
Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))
Atom (B (False)) -> do do kl_FType `pseq` tl kl_FType
_ -> throwError "if: expected boolean")))
!appl_5 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*signedfuncs*"))
let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "assoc")
!appl_7 <- kl_V1372 `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V1372,
appl_5])
appl_7 `pseq` applyWrapper appl_2 [appl_7]
in case kl_V1372 of
!(kl_V1372@(Cons (!kl_V1372h)
(!kl_V1372t))) -> pat_cond_0 kl_V1372 kl_V1372h kl_V1372t
_ -> pat_cond_1
kl_shen_typextable :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_typextable (!kl_V1383) (!kl_V1384) = do !kl_if_0 <- let pat_cond_1 kl_V1383 kl_V1383h kl_V1383t = do !kl_if_2 <- let pat_cond_3 kl_V1383t kl_V1383th kl_V1383tt = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1383tt kl_V1383tth kl_V1383ttt = do let !appl_8 = Atom Nil
!kl_if_9 <- appl_8 `pseq` (kl_V1383ttt `pseq` eq appl_8 kl_V1383ttt)
!kl_if_10 <- case kl_if_9 of
Atom (B (True)) -> do let pat_cond_11 kl_V1384 kl_V1384h kl_V1384t = do return (Atom (B True))
pat_cond_12 = do do return (Atom (B False))
in case kl_V1384 of
!(kl_V1384@(Cons (!kl_V1384h)
(!kl_V1384t))) -> pat_cond_11 kl_V1384 kl_V1384h kl_V1384t
_ -> pat_cond_12
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_10 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_13 = do do return (Atom (B False))
in case kl_V1383tt of
!(kl_V1383tt@(Cons (!kl_V1383tth)
(!kl_V1383ttt))) -> pat_cond_7 kl_V1383tt kl_V1383tth kl_V1383ttt
_ -> pat_cond_13
case kl_if_6 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_14 = do do return (Atom (B False))
in case kl_V1383th of
kl_V1383th@(Atom (UnboundSym "-->")) -> pat_cond_5
kl_V1383th@(ApplC (PL "-->"
_)) -> pat_cond_5
kl_V1383th@(ApplC (Func "-->"
_)) -> pat_cond_5
_ -> pat_cond_14
case kl_if_4 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_15 = do do return (Atom (B False))
in case kl_V1383t of
!(kl_V1383t@(Cons (!kl_V1383th)
(!kl_V1383tt))) -> pat_cond_3 kl_V1383t kl_V1383th kl_V1383tt
_ -> pat_cond_15
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_16 = do do return (Atom (B False))
in case kl_V1383 of
!(kl_V1383@(Cons (!kl_V1383h)
(!kl_V1383t))) -> pat_cond_1 kl_V1383 kl_V1383h kl_V1383t
_ -> pat_cond_16
case kl_if_0 of
Atom (B (True)) -> do !appl_17 <- kl_V1383 `pseq` hd kl_V1383
let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "variable?")
!kl_if_19 <- appl_17 `pseq` applyWrapper aw_18 [appl_17]
case kl_if_19 of
Atom (B (True)) -> do !appl_20 <- kl_V1383 `pseq` tl kl_V1383
!appl_21 <- appl_20 `pseq` tl appl_20
!appl_22 <- appl_21 `pseq` hd appl_21
!appl_23 <- kl_V1384 `pseq` tl kl_V1384
appl_22 `pseq` (appl_23 `pseq` kl_shen_typextable appl_22 appl_23)
Atom (B (False)) -> do do !appl_24 <- kl_V1384 `pseq` hd kl_V1384
!appl_25 <- kl_V1383 `pseq` hd kl_V1383
!appl_26 <- appl_24 `pseq` (appl_25 `pseq` klCons appl_24 appl_25)
!appl_27 <- kl_V1383 `pseq` tl kl_V1383
!appl_28 <- appl_27 `pseq` tl appl_27
!appl_29 <- appl_28 `pseq` hd appl_28
!appl_30 <- kl_V1384 `pseq` tl kl_V1384
!appl_31 <- appl_29 `pseq` (appl_30 `pseq` kl_shen_typextable appl_29 appl_30)
appl_26 `pseq` (appl_31 `pseq` klCons appl_26 appl_31)
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom Nil)
_ -> throwError "if: expected boolean"
kl_shen_assign_types :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_assign_types (!kl_V1388) (!kl_V1389) (!kl_V1390) = do !kl_if_0 <- let pat_cond_1 kl_V1390 kl_V1390h kl_V1390t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1390t kl_V1390th kl_V1390tt = do !kl_if_6 <- let pat_cond_7 kl_V1390tt kl_V1390tth kl_V1390ttt = do !kl_if_8 <- let pat_cond_9 kl_V1390ttt kl_V1390ttth kl_V1390tttt = do let !appl_10 = Atom Nil
!kl_if_11 <- appl_10 `pseq` (kl_V1390tttt `pseq` eq appl_10 kl_V1390tttt)
case kl_if_11 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_12 = do do return (Atom (B False))
in case kl_V1390ttt of
!(kl_V1390ttt@(Cons (!kl_V1390ttth)
(!kl_V1390tttt))) -> pat_cond_9 kl_V1390ttt kl_V1390ttth kl_V1390tttt
_ -> pat_cond_12
case kl_if_8 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_13 = do do return (Atom (B False))
in case kl_V1390tt of
!(kl_V1390tt@(Cons (!kl_V1390tth)
(!kl_V1390ttt))) -> pat_cond_7 kl_V1390tt kl_V1390tth kl_V1390ttt
_ -> pat_cond_13
case kl_if_6 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_14 = do do return (Atom (B False))
in case kl_V1390t of
!(kl_V1390t@(Cons (!kl_V1390th)
(!kl_V1390tt))) -> pat_cond_5 kl_V1390t kl_V1390th kl_V1390tt
_ -> pat_cond_14
case kl_if_4 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_15 = do do return (Atom (B False))
in case kl_V1390h of
kl_V1390h@(Atom (UnboundSym "let")) -> pat_cond_3
kl_V1390h@(ApplC (PL "let"
_)) -> pat_cond_3
kl_V1390h@(ApplC (Func "let"
_)) -> pat_cond_3
_ -> pat_cond_15
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_16 = do do return (Atom (B False))
in case kl_V1390 of
!(kl_V1390@(Cons (!kl_V1390h)
(!kl_V1390t))) -> pat_cond_1 kl_V1390 kl_V1390h kl_V1390t
_ -> pat_cond_16
case kl_if_0 of
Atom (B (True)) -> do !appl_17 <- kl_V1390 `pseq` tl kl_V1390
!appl_18 <- appl_17 `pseq` hd appl_17
!appl_19 <- kl_V1390 `pseq` tl kl_V1390
!appl_20 <- appl_19 `pseq` tl appl_19
!appl_21 <- appl_20 `pseq` hd appl_20
!appl_22 <- kl_V1388 `pseq` (kl_V1389 `pseq` (appl_21 `pseq` kl_shen_assign_types kl_V1388 kl_V1389 appl_21))
!appl_23 <- kl_V1390 `pseq` tl kl_V1390
!appl_24 <- appl_23 `pseq` hd appl_23
!appl_25 <- appl_24 `pseq` (kl_V1388 `pseq` klCons appl_24 kl_V1388)
!appl_26 <- kl_V1390 `pseq` tl kl_V1390
!appl_27 <- appl_26 `pseq` tl appl_26
!appl_28 <- appl_27 `pseq` tl appl_27
!appl_29 <- appl_28 `pseq` hd appl_28
!appl_30 <- appl_25 `pseq` (kl_V1389 `pseq` (appl_29 `pseq` kl_shen_assign_types appl_25 kl_V1389 appl_29))
let !appl_31 = Atom Nil
!appl_32 <- appl_30 `pseq` (appl_31 `pseq` klCons appl_30 appl_31)
!appl_33 <- appl_22 `pseq` (appl_32 `pseq` klCons appl_22 appl_32)
!appl_34 <- appl_18 `pseq` (appl_33 `pseq` klCons appl_18 appl_33)
appl_34 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_34
Atom (B (False)) -> do !kl_if_35 <- let pat_cond_36 kl_V1390 kl_V1390h kl_V1390t = do !kl_if_37 <- let pat_cond_38 = do !kl_if_39 <- let pat_cond_40 kl_V1390t kl_V1390th kl_V1390tt = do !kl_if_41 <- let pat_cond_42 kl_V1390tt kl_V1390tth kl_V1390ttt = do let !appl_43 = Atom Nil
!kl_if_44 <- appl_43 `pseq` (kl_V1390ttt `pseq` eq appl_43 kl_V1390ttt)
case kl_if_44 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_45 = do do return (Atom (B False))
in case kl_V1390tt of
!(kl_V1390tt@(Cons (!kl_V1390tth)
(!kl_V1390ttt))) -> pat_cond_42 kl_V1390tt kl_V1390tth kl_V1390ttt
_ -> pat_cond_45
case kl_if_41 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_46 = do do return (Atom (B False))
in case kl_V1390t of
!(kl_V1390t@(Cons (!kl_V1390th)
(!kl_V1390tt))) -> pat_cond_40 kl_V1390t kl_V1390th kl_V1390tt
_ -> pat_cond_46
case kl_if_39 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_47 = do do return (Atom (B False))
in case kl_V1390h of
kl_V1390h@(Atom (UnboundSym "lambda")) -> pat_cond_38
kl_V1390h@(ApplC (PL "lambda"
_)) -> pat_cond_38
kl_V1390h@(ApplC (Func "lambda"
_)) -> pat_cond_38
_ -> pat_cond_47
case kl_if_37 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_48 = do do return (Atom (B False))
in case kl_V1390 of
!(kl_V1390@(Cons (!kl_V1390h)
(!kl_V1390t))) -> pat_cond_36 kl_V1390 kl_V1390h kl_V1390t
_ -> pat_cond_48
case kl_if_35 of
Atom (B (True)) -> do !appl_49 <- kl_V1390 `pseq` tl kl_V1390
!appl_50 <- appl_49 `pseq` hd appl_49
!appl_51 <- kl_V1390 `pseq` tl kl_V1390
!appl_52 <- appl_51 `pseq` hd appl_51
!appl_53 <- appl_52 `pseq` (kl_V1388 `pseq` klCons appl_52 kl_V1388)
!appl_54 <- kl_V1390 `pseq` tl kl_V1390
!appl_55 <- appl_54 `pseq` tl appl_54
!appl_56 <- appl_55 `pseq` hd appl_55
!appl_57 <- appl_53 `pseq` (kl_V1389 `pseq` (appl_56 `pseq` kl_shen_assign_types appl_53 kl_V1389 appl_56))
let !appl_58 = Atom Nil
!appl_59 <- appl_57 `pseq` (appl_58 `pseq` klCons appl_57 appl_58)
!appl_60 <- appl_50 `pseq` (appl_59 `pseq` klCons appl_50 appl_59)
appl_60 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lambda")) appl_60
Atom (B (False)) -> do let pat_cond_61 kl_V1390 kl_V1390t = do let !appl_62 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do !appl_63 <- kl_Y `pseq` hd kl_Y
!appl_64 <- kl_V1388 `pseq` (kl_V1389 `pseq` (appl_63 `pseq` kl_shen_assign_types kl_V1388 kl_V1389 appl_63))
!appl_65 <- kl_Y `pseq` tl kl_Y
!appl_66 <- appl_65 `pseq` hd appl_65
!appl_67 <- kl_V1388 `pseq` (kl_V1389 `pseq` (appl_66 `pseq` kl_shen_assign_types kl_V1388 kl_V1389 appl_66))
let !appl_68 = Atom Nil
!appl_69 <- appl_67 `pseq` (appl_68 `pseq` klCons appl_67 appl_68)
appl_64 `pseq` (appl_69 `pseq` klCons appl_64 appl_69))))
let !aw_70 = Core.Types.Atom (Core.Types.UnboundSym "map")
!appl_71 <- appl_62 `pseq` (kl_V1390t `pseq` applyWrapper aw_70 [appl_62,
kl_V1390t])
appl_71 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "cond")) appl_71
pat_cond_72 kl_V1390 kl_V1390h kl_V1390t = do let !appl_73 = ApplC (Func "lambda" (Context (\(!kl_NewTable) -> do let !appl_74 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do let !aw_75 = Core.Types.Atom (Core.Types.UnboundSym "append")
!appl_76 <- kl_V1389 `pseq` (kl_NewTable `pseq` applyWrapper aw_75 [kl_V1389,
kl_NewTable])
kl_V1388 `pseq` (appl_76 `pseq` (kl_Y `pseq` kl_shen_assign_types kl_V1388 appl_76 kl_Y)))))
let !aw_77 = Core.Types.Atom (Core.Types.UnboundSym "map")
!appl_78 <- appl_74 `pseq` (kl_V1390t `pseq` applyWrapper aw_77 [appl_74,
kl_V1390t])
kl_V1390h `pseq` (appl_78 `pseq` klCons kl_V1390h appl_78))))
!appl_79 <- kl_V1390h `pseq` kl_shen_get_type kl_V1390h
!appl_80 <- appl_79 `pseq` (kl_V1390t `pseq` kl_shen_typextable appl_79 kl_V1390t)
appl_80 `pseq` applyWrapper appl_73 [appl_80]
pat_cond_81 = do do let !appl_82 = ApplC (Func "lambda" (Context (\(!kl_AtomType) -> do let pat_cond_83 kl_AtomType kl_AtomTypeh kl_AtomTypet = do let !appl_84 = Atom Nil
!appl_85 <- kl_AtomTypet `pseq` (appl_84 `pseq` klCons kl_AtomTypet appl_84)
!appl_86 <- kl_V1390 `pseq` (appl_85 `pseq` klCons kl_V1390 appl_85)
appl_86 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_86
pat_cond_87 = do do let !aw_88 = Core.Types.Atom (Core.Types.UnboundSym "element?")
!kl_if_89 <- kl_V1390 `pseq` (kl_V1388 `pseq` applyWrapper aw_88 [kl_V1390,
kl_V1388])
case kl_if_89 of
Atom (B (True)) -> do return kl_V1390
Atom (B (False)) -> do do kl_V1390 `pseq` kl_shen_atom_type kl_V1390
_ -> throwError "if: expected boolean"
in case kl_AtomType of
!(kl_AtomType@(Cons (!kl_AtomTypeh)
(!kl_AtomTypet))) -> pat_cond_83 kl_AtomType kl_AtomTypeh kl_AtomTypet
_ -> pat_cond_87)))
let !aw_90 = Core.Types.Atom (Core.Types.UnboundSym "assoc")
!appl_91 <- kl_V1390 `pseq` (kl_V1389 `pseq` applyWrapper aw_90 [kl_V1390,
kl_V1389])
appl_91 `pseq` applyWrapper appl_82 [appl_91]
in case kl_V1390 of
!(kl_V1390@(Cons (Atom (UnboundSym "cond"))
(!kl_V1390t))) -> pat_cond_61 kl_V1390 kl_V1390t
!(kl_V1390@(Cons (ApplC (PL "cond"
_))
(!kl_V1390t))) -> pat_cond_61 kl_V1390 kl_V1390t
!(kl_V1390@(Cons (ApplC (Func "cond"
_))
(!kl_V1390t))) -> pat_cond_61 kl_V1390 kl_V1390t
!(kl_V1390@(Cons (!kl_V1390h)
(!kl_V1390t))) -> pat_cond_72 kl_V1390 kl_V1390h kl_V1390t
_ -> pat_cond_81
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
kl_shen_atom_type :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_atom_type (!kl_V1392) = do !kl_if_0 <- kl_V1392 `pseq` stringP kl_V1392
case kl_if_0 of
Atom (B (True)) -> do let !appl_1 = Atom Nil
!appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_1
!appl_3 <- kl_V1392 `pseq` (appl_2 `pseq` klCons kl_V1392 appl_2)
appl_3 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_3
Atom (B (False)) -> do do !kl_if_4 <- kl_V1392 `pseq` numberP kl_V1392
case kl_if_4 of
Atom (B (True)) -> do let !appl_5 = Atom Nil
!appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_5
!appl_7 <- kl_V1392 `pseq` (appl_6 `pseq` klCons kl_V1392 appl_6)
appl_7 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_7
Atom (B (False)) -> do do let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "boolean?")
!kl_if_9 <- kl_V1392 `pseq` applyWrapper aw_8 [kl_V1392]
case kl_if_9 of
Atom (B (True)) -> do let !appl_10 = Atom Nil
!appl_11 <- appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_10
!appl_12 <- kl_V1392 `pseq` (appl_11 `pseq` klCons kl_V1392 appl_11)
appl_12 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_12
Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "symbol?")
!kl_if_14 <- kl_V1392 `pseq` applyWrapper aw_13 [kl_V1392]
case kl_if_14 of
Atom (B (True)) -> do let !appl_15 = Atom Nil
!appl_16 <- appl_15 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_15
!appl_17 <- kl_V1392 `pseq` (appl_16 `pseq` klCons kl_V1392 appl_16)
appl_17 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_17
Atom (B (False)) -> do do return kl_V1392
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
kl_shen_store_arity :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_store_arity (!kl_V1397) (!kl_V1398) = do !kl_if_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*installing-kl*"))
case kl_if_0 of
Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))
Atom (B (False)) -> do do !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))
let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "put")
kl_V1397 `pseq` (kl_V1398 `pseq` (appl_1 `pseq` applyWrapper aw_2 [kl_V1397,
Core.Types.Atom (Core.Types.UnboundSym "arity"),
kl_V1398,
appl_1]))
_ -> throwError "if: expected boolean"
kl_shen_reduce :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_reduce (!kl_V1400) = do let !appl_0 = Atom Nil
!appl_1 <- appl_0 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*teststack*")) appl_0
let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Result) -> do !appl_3 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*teststack*"))
let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "reverse")
!appl_5 <- appl_3 `pseq` applyWrapper aw_4 [appl_3]
!appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.tests")) appl_5
!appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":")) appl_6
let !appl_8 = Atom Nil
!appl_9 <- kl_Result `pseq` (appl_8 `pseq` klCons kl_Result appl_8)
appl_7 `pseq` (appl_9 `pseq` klCons appl_7 appl_9))))
!appl_10 <- kl_V1400 `pseq` kl_shen_reduce_help kl_V1400
!appl_11 <- appl_10 `pseq` applyWrapper appl_2 [appl_10]
let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "do")
appl_1 `pseq` (appl_11 `pseq` applyWrapper aw_12 [appl_1, appl_11])
kl_shen_reduce_help :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_reduce_help (!kl_V1402) = do !kl_if_0 <- let pat_cond_1 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_2 <- let pat_cond_3 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_8 <- let pat_cond_9 kl_V1402hth kl_V1402hthh kl_V1402htht = do !kl_if_10 <- let pat_cond_11 = do !kl_if_12 <- let pat_cond_13 kl_V1402htht kl_V1402hthth kl_V1402hthtt = do !kl_if_14 <- let pat_cond_15 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt = do let !appl_16 = Atom Nil
!kl_if_17 <- appl_16 `pseq` (kl_V1402hthttt `pseq` eq appl_16 kl_V1402hthttt)
!kl_if_18 <- case kl_if_17 of
Atom (B (True)) -> do !kl_if_19 <- let pat_cond_20 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_21 = Atom Nil
!kl_if_22 <- appl_21 `pseq` (kl_V1402httt `pseq` eq appl_21 kl_V1402httt)
!kl_if_23 <- case kl_if_22 of
Atom (B (True)) -> do !kl_if_24 <- let pat_cond_25 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_26 = Atom Nil
!kl_if_27 <- appl_26 `pseq` (kl_V1402tt `pseq` eq appl_26 kl_V1402tt)
case kl_if_27 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_28 = do do return (Atom (B False))
in case kl_V1402t of
!(kl_V1402t@(Cons (!kl_V1402th)
(!kl_V1402tt))) -> pat_cond_25 kl_V1402t kl_V1402th kl_V1402tt
_ -> pat_cond_28
case kl_if_24 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_23 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_29 = do do return (Atom (B False))
in case kl_V1402htt of
!(kl_V1402htt@(Cons (!kl_V1402htth)
(!kl_V1402httt))) -> pat_cond_20 kl_V1402htt kl_V1402htth kl_V1402httt
_ -> pat_cond_29
case kl_if_19 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_18 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_30 = do do return (Atom (B False))
in case kl_V1402hthtt of
!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
(!kl_V1402hthttt))) -> pat_cond_15 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt
_ -> pat_cond_30
case kl_if_14 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_31 = do do return (Atom (B False))
in case kl_V1402htht of
!(kl_V1402htht@(Cons (!kl_V1402hthth)
(!kl_V1402hthtt))) -> pat_cond_13 kl_V1402htht kl_V1402hthth kl_V1402hthtt
_ -> pat_cond_31
case kl_if_12 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_32 = do do return (Atom (B False))
in case kl_V1402hthh of
kl_V1402hthh@(Atom (UnboundSym "cons")) -> pat_cond_11
kl_V1402hthh@(ApplC (PL "cons"
_)) -> pat_cond_11
kl_V1402hthh@(ApplC (Func "cons"
_)) -> pat_cond_11
_ -> pat_cond_32
case kl_if_10 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_33 = do do return (Atom (B False))
in case kl_V1402hth of
!(kl_V1402hth@(Cons (!kl_V1402hthh)
(!kl_V1402htht))) -> pat_cond_9 kl_V1402hth kl_V1402hthh kl_V1402htht
_ -> pat_cond_33
case kl_if_8 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_34 = do do return (Atom (B False))
in case kl_V1402ht of
!(kl_V1402ht@(Cons (!kl_V1402hth)
(!kl_V1402htt))) -> pat_cond_7 kl_V1402ht kl_V1402hth kl_V1402htt
_ -> pat_cond_34
case kl_if_6 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_35 = do do return (Atom (B False))
in case kl_V1402hh of
kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_5
kl_V1402hh@(ApplC (PL "/."
_)) -> pat_cond_5
kl_V1402hh@(ApplC (Func "/."
_)) -> pat_cond_5
_ -> pat_cond_35
case kl_if_4 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_36 = do do return (Atom (B False))
in case kl_V1402h of
!(kl_V1402h@(Cons (!kl_V1402hh)
(!kl_V1402ht))) -> pat_cond_3 kl_V1402h kl_V1402hh kl_V1402ht
_ -> pat_cond_36
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_37 = do do return (Atom (B False))
in case kl_V1402 of
!(kl_V1402@(Cons (!kl_V1402h)
(!kl_V1402t))) -> pat_cond_1 kl_V1402 kl_V1402h kl_V1402t
_ -> pat_cond_37
case kl_if_0 of
Atom (B (True)) -> do !appl_38 <- kl_V1402 `pseq` tl kl_V1402
!appl_39 <- appl_38 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_38
!appl_40 <- appl_39 `pseq` kl_shen_add_test appl_39
let !appl_41 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_42 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))
!appl_43 <- kl_V1402 `pseq` tl kl_V1402
!appl_44 <- appl_43 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_43
let !appl_45 = Atom Nil
!appl_46 <- appl_44 `pseq` (appl_45 `pseq` klCons appl_44 appl_45)
!appl_47 <- kl_Abstraction `pseq` (appl_46 `pseq` klCons kl_Abstraction appl_46)
!appl_48 <- kl_V1402 `pseq` tl kl_V1402
!appl_49 <- appl_48 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_48
let !appl_50 = Atom Nil
!appl_51 <- appl_49 `pseq` (appl_50 `pseq` klCons appl_49 appl_50)
!appl_52 <- appl_47 `pseq` (appl_51 `pseq` klCons appl_47 appl_51)
appl_52 `pseq` applyWrapper appl_42 [appl_52])))
!appl_53 <- kl_V1402 `pseq` hd kl_V1402
!appl_54 <- appl_53 `pseq` tl appl_53
!appl_55 <- appl_54 `pseq` hd appl_54
!appl_56 <- appl_55 `pseq` tl appl_55
!appl_57 <- appl_56 `pseq` hd appl_56
!appl_58 <- kl_V1402 `pseq` hd kl_V1402
!appl_59 <- appl_58 `pseq` tl appl_58
!appl_60 <- appl_59 `pseq` hd appl_59
!appl_61 <- appl_60 `pseq` tl appl_60
!appl_62 <- appl_61 `pseq` tl appl_61
!appl_63 <- appl_62 `pseq` hd appl_62
!appl_64 <- kl_V1402 `pseq` tl kl_V1402
!appl_65 <- appl_64 `pseq` hd appl_64
!appl_66 <- kl_V1402 `pseq` hd kl_V1402
!appl_67 <- appl_66 `pseq` tl appl_66
!appl_68 <- appl_67 `pseq` hd appl_67
!appl_69 <- kl_V1402 `pseq` hd kl_V1402
!appl_70 <- appl_69 `pseq` tl appl_69
!appl_71 <- appl_70 `pseq` tl appl_70
!appl_72 <- appl_71 `pseq` hd appl_71
!appl_73 <- appl_65 `pseq` (appl_68 `pseq` (appl_72 `pseq` kl_shen_ebr appl_65 appl_68 appl_72))
let !appl_74 = Atom Nil
!appl_75 <- appl_73 `pseq` (appl_74 `pseq` klCons appl_73 appl_74)
!appl_76 <- appl_63 `pseq` (appl_75 `pseq` klCons appl_63 appl_75)
!appl_77 <- appl_76 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_76
let !appl_78 = Atom Nil
!appl_79 <- appl_77 `pseq` (appl_78 `pseq` klCons appl_77 appl_78)
!appl_80 <- appl_57 `pseq` (appl_79 `pseq` klCons appl_57 appl_79)
!appl_81 <- appl_80 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_80
!appl_82 <- appl_81 `pseq` applyWrapper appl_41 [appl_81]
let !aw_83 = Core.Types.Atom (Core.Types.UnboundSym "do")
appl_40 `pseq` (appl_82 `pseq` applyWrapper aw_83 [appl_40,
appl_82])
Atom (B (False)) -> do !kl_if_84 <- let pat_cond_85 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_86 <- let pat_cond_87 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_88 <- let pat_cond_89 = do !kl_if_90 <- let pat_cond_91 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_92 <- let pat_cond_93 kl_V1402hth kl_V1402hthh kl_V1402htht = do !kl_if_94 <- let pat_cond_95 = do !kl_if_96 <- let pat_cond_97 kl_V1402htht kl_V1402hthth kl_V1402hthtt = do !kl_if_98 <- let pat_cond_99 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt = do let !appl_100 = Atom Nil
!kl_if_101 <- appl_100 `pseq` (kl_V1402hthttt `pseq` eq appl_100 kl_V1402hthttt)
!kl_if_102 <- case kl_if_101 of
Atom (B (True)) -> do !kl_if_103 <- let pat_cond_104 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_105 = Atom Nil
!kl_if_106 <- appl_105 `pseq` (kl_V1402httt `pseq` eq appl_105 kl_V1402httt)
!kl_if_107 <- case kl_if_106 of
Atom (B (True)) -> do !kl_if_108 <- let pat_cond_109 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_110 = Atom Nil
!kl_if_111 <- appl_110 `pseq` (kl_V1402tt `pseq` eq appl_110 kl_V1402tt)
case kl_if_111 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_112 = do do return (Atom (B False))
in case kl_V1402t of
!(kl_V1402t@(Cons (!kl_V1402th)
(!kl_V1402tt))) -> pat_cond_109 kl_V1402t kl_V1402th kl_V1402tt
_ -> pat_cond_112
case kl_if_108 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_107 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_113 = do do return (Atom (B False))
in case kl_V1402htt of
!(kl_V1402htt@(Cons (!kl_V1402htth)
(!kl_V1402httt))) -> pat_cond_104 kl_V1402htt kl_V1402htth kl_V1402httt
_ -> pat_cond_113
case kl_if_103 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_102 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_114 = do do return (Atom (B False))
in case kl_V1402hthtt of
!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
(!kl_V1402hthttt))) -> pat_cond_99 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt
_ -> pat_cond_114
case kl_if_98 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_115 = do do return (Atom (B False))
in case kl_V1402htht of
!(kl_V1402htht@(Cons (!kl_V1402hthth)
(!kl_V1402hthtt))) -> pat_cond_97 kl_V1402htht kl_V1402hthth kl_V1402hthtt
_ -> pat_cond_115
case kl_if_96 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_116 = do do return (Atom (B False))
in case kl_V1402hthh of
kl_V1402hthh@(Atom (UnboundSym "@p")) -> pat_cond_95
kl_V1402hthh@(ApplC (PL "@p"
_)) -> pat_cond_95
kl_V1402hthh@(ApplC (Func "@p"
_)) -> pat_cond_95
_ -> pat_cond_116
case kl_if_94 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_117 = do do return (Atom (B False))
in case kl_V1402hth of
!(kl_V1402hth@(Cons (!kl_V1402hthh)
(!kl_V1402htht))) -> pat_cond_93 kl_V1402hth kl_V1402hthh kl_V1402htht
_ -> pat_cond_117
case kl_if_92 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_118 = do do return (Atom (B False))
in case kl_V1402ht of
!(kl_V1402ht@(Cons (!kl_V1402hth)
(!kl_V1402htt))) -> pat_cond_91 kl_V1402ht kl_V1402hth kl_V1402htt
_ -> pat_cond_118
case kl_if_90 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_119 = do do return (Atom (B False))
in case kl_V1402hh of
kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_89
kl_V1402hh@(ApplC (PL "/."
_)) -> pat_cond_89
kl_V1402hh@(ApplC (Func "/."
_)) -> pat_cond_89
_ -> pat_cond_119
case kl_if_88 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_120 = do do return (Atom (B False))
in case kl_V1402h of
!(kl_V1402h@(Cons (!kl_V1402hh)
(!kl_V1402ht))) -> pat_cond_87 kl_V1402h kl_V1402hh kl_V1402ht
_ -> pat_cond_120
case kl_if_86 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_121 = do do return (Atom (B False))
in case kl_V1402 of
!(kl_V1402@(Cons (!kl_V1402h)
(!kl_V1402t))) -> pat_cond_85 kl_V1402 kl_V1402h kl_V1402t
_ -> pat_cond_121
case kl_if_84 of
Atom (B (True)) -> do !appl_122 <- kl_V1402 `pseq` tl kl_V1402
!appl_123 <- appl_122 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "tuple?")) appl_122
!appl_124 <- appl_123 `pseq` kl_shen_add_test appl_123
let !appl_125 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_126 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))
!appl_127 <- kl_V1402 `pseq` tl kl_V1402
!appl_128 <- appl_127 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "fst")) appl_127
let !appl_129 = Atom Nil
!appl_130 <- appl_128 `pseq` (appl_129 `pseq` klCons appl_128 appl_129)
!appl_131 <- kl_Abstraction `pseq` (appl_130 `pseq` klCons kl_Abstraction appl_130)
!appl_132 <- kl_V1402 `pseq` tl kl_V1402
!appl_133 <- appl_132 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "snd")) appl_132
let !appl_134 = Atom Nil
!appl_135 <- appl_133 `pseq` (appl_134 `pseq` klCons appl_133 appl_134)
!appl_136 <- appl_131 `pseq` (appl_135 `pseq` klCons appl_131 appl_135)
appl_136 `pseq` applyWrapper appl_126 [appl_136])))
!appl_137 <- kl_V1402 `pseq` hd kl_V1402
!appl_138 <- appl_137 `pseq` tl appl_137
!appl_139 <- appl_138 `pseq` hd appl_138
!appl_140 <- appl_139 `pseq` tl appl_139
!appl_141 <- appl_140 `pseq` hd appl_140
!appl_142 <- kl_V1402 `pseq` hd kl_V1402
!appl_143 <- appl_142 `pseq` tl appl_142
!appl_144 <- appl_143 `pseq` hd appl_143
!appl_145 <- appl_144 `pseq` tl appl_144
!appl_146 <- appl_145 `pseq` tl appl_145
!appl_147 <- appl_146 `pseq` hd appl_146
!appl_148 <- kl_V1402 `pseq` tl kl_V1402
!appl_149 <- appl_148 `pseq` hd appl_148
!appl_150 <- kl_V1402 `pseq` hd kl_V1402
!appl_151 <- appl_150 `pseq` tl appl_150
!appl_152 <- appl_151 `pseq` hd appl_151
!appl_153 <- kl_V1402 `pseq` hd kl_V1402
!appl_154 <- appl_153 `pseq` tl appl_153
!appl_155 <- appl_154 `pseq` tl appl_154
!appl_156 <- appl_155 `pseq` hd appl_155
!appl_157 <- appl_149 `pseq` (appl_152 `pseq` (appl_156 `pseq` kl_shen_ebr appl_149 appl_152 appl_156))
let !appl_158 = Atom Nil
!appl_159 <- appl_157 `pseq` (appl_158 `pseq` klCons appl_157 appl_158)
!appl_160 <- appl_147 `pseq` (appl_159 `pseq` klCons appl_147 appl_159)
!appl_161 <- appl_160 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_160
let !appl_162 = Atom Nil
!appl_163 <- appl_161 `pseq` (appl_162 `pseq` klCons appl_161 appl_162)
!appl_164 <- appl_141 `pseq` (appl_163 `pseq` klCons appl_141 appl_163)
!appl_165 <- appl_164 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_164
!appl_166 <- appl_165 `pseq` applyWrapper appl_125 [appl_165]
let !aw_167 = Core.Types.Atom (Core.Types.UnboundSym "do")
appl_124 `pseq` (appl_166 `pseq` applyWrapper aw_167 [appl_124,
appl_166])
Atom (B (False)) -> do !kl_if_168 <- let pat_cond_169 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_170 <- let pat_cond_171 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_172 <- let pat_cond_173 = do !kl_if_174 <- let pat_cond_175 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_176 <- let pat_cond_177 kl_V1402hth kl_V1402hthh kl_V1402htht = do !kl_if_178 <- let pat_cond_179 = do !kl_if_180 <- let pat_cond_181 kl_V1402htht kl_V1402hthth kl_V1402hthtt = do !kl_if_182 <- let pat_cond_183 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt = do let !appl_184 = Atom Nil
!kl_if_185 <- appl_184 `pseq` (kl_V1402hthttt `pseq` eq appl_184 kl_V1402hthttt)
!kl_if_186 <- case kl_if_185 of
Atom (B (True)) -> do !kl_if_187 <- let pat_cond_188 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_189 = Atom Nil
!kl_if_190 <- appl_189 `pseq` (kl_V1402httt `pseq` eq appl_189 kl_V1402httt)
!kl_if_191 <- case kl_if_190 of
Atom (B (True)) -> do !kl_if_192 <- let pat_cond_193 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_194 = Atom Nil
!kl_if_195 <- appl_194 `pseq` (kl_V1402tt `pseq` eq appl_194 kl_V1402tt)
case kl_if_195 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_196 = do do return (Atom (B False))
in case kl_V1402t of
!(kl_V1402t@(Cons (!kl_V1402th)
(!kl_V1402tt))) -> pat_cond_193 kl_V1402t kl_V1402th kl_V1402tt
_ -> pat_cond_196
case kl_if_192 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_191 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_197 = do do return (Atom (B False))
in case kl_V1402htt of
!(kl_V1402htt@(Cons (!kl_V1402htth)
(!kl_V1402httt))) -> pat_cond_188 kl_V1402htt kl_V1402htth kl_V1402httt
_ -> pat_cond_197
case kl_if_187 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_186 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_198 = do do return (Atom (B False))
in case kl_V1402hthtt of
!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
(!kl_V1402hthttt))) -> pat_cond_183 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt
_ -> pat_cond_198
case kl_if_182 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_199 = do do return (Atom (B False))
in case kl_V1402htht of
!(kl_V1402htht@(Cons (!kl_V1402hthth)
(!kl_V1402hthtt))) -> pat_cond_181 kl_V1402htht kl_V1402hthth kl_V1402hthtt
_ -> pat_cond_199
case kl_if_180 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_200 = do do return (Atom (B False))
in case kl_V1402hthh of
kl_V1402hthh@(Atom (UnboundSym "@v")) -> pat_cond_179
kl_V1402hthh@(ApplC (PL "@v"
_)) -> pat_cond_179
kl_V1402hthh@(ApplC (Func "@v"
_)) -> pat_cond_179
_ -> pat_cond_200
case kl_if_178 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_201 = do do return (Atom (B False))
in case kl_V1402hth of
!(kl_V1402hth@(Cons (!kl_V1402hthh)
(!kl_V1402htht))) -> pat_cond_177 kl_V1402hth kl_V1402hthh kl_V1402htht
_ -> pat_cond_201
case kl_if_176 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_202 = do do return (Atom (B False))
in case kl_V1402ht of
!(kl_V1402ht@(Cons (!kl_V1402hth)
(!kl_V1402htt))) -> pat_cond_175 kl_V1402ht kl_V1402hth kl_V1402htt
_ -> pat_cond_202
case kl_if_174 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_203 = do do return (Atom (B False))
in case kl_V1402hh of
kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_173
kl_V1402hh@(ApplC (PL "/."
_)) -> pat_cond_173
kl_V1402hh@(ApplC (Func "/."
_)) -> pat_cond_173
_ -> pat_cond_203
case kl_if_172 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_204 = do do return (Atom (B False))
in case kl_V1402h of
!(kl_V1402h@(Cons (!kl_V1402hh)
(!kl_V1402ht))) -> pat_cond_171 kl_V1402h kl_V1402hh kl_V1402ht
_ -> pat_cond_204
case kl_if_170 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_205 = do do return (Atom (B False))
in case kl_V1402 of
!(kl_V1402@(Cons (!kl_V1402h)
(!kl_V1402t))) -> pat_cond_169 kl_V1402 kl_V1402h kl_V1402t
_ -> pat_cond_205
case kl_if_168 of
Atom (B (True)) -> do !appl_206 <- kl_V1402 `pseq` tl kl_V1402
!appl_207 <- appl_206 `pseq` klCons (ApplC (wrapNamed "shen.+vector?" kl_shen_PlusvectorP)) appl_206
!appl_208 <- appl_207 `pseq` kl_shen_add_test appl_207
let !appl_209 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_210 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))
!appl_211 <- kl_V1402 `pseq` tl kl_V1402
!appl_212 <- appl_211 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "hdv")) appl_211
let !appl_213 = Atom Nil
!appl_214 <- appl_212 `pseq` (appl_213 `pseq` klCons appl_212 appl_213)
!appl_215 <- kl_Abstraction `pseq` (appl_214 `pseq` klCons kl_Abstraction appl_214)
!appl_216 <- kl_V1402 `pseq` tl kl_V1402
!appl_217 <- appl_216 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "tlv")) appl_216
let !appl_218 = Atom Nil
!appl_219 <- appl_217 `pseq` (appl_218 `pseq` klCons appl_217 appl_218)
!appl_220 <- appl_215 `pseq` (appl_219 `pseq` klCons appl_215 appl_219)
appl_220 `pseq` applyWrapper appl_210 [appl_220])))
!appl_221 <- kl_V1402 `pseq` hd kl_V1402
!appl_222 <- appl_221 `pseq` tl appl_221
!appl_223 <- appl_222 `pseq` hd appl_222
!appl_224 <- appl_223 `pseq` tl appl_223
!appl_225 <- appl_224 `pseq` hd appl_224
!appl_226 <- kl_V1402 `pseq` hd kl_V1402
!appl_227 <- appl_226 `pseq` tl appl_226
!appl_228 <- appl_227 `pseq` hd appl_227
!appl_229 <- appl_228 `pseq` tl appl_228
!appl_230 <- appl_229 `pseq` tl appl_229
!appl_231 <- appl_230 `pseq` hd appl_230
!appl_232 <- kl_V1402 `pseq` tl kl_V1402
!appl_233 <- appl_232 `pseq` hd appl_232
!appl_234 <- kl_V1402 `pseq` hd kl_V1402
!appl_235 <- appl_234 `pseq` tl appl_234
!appl_236 <- appl_235 `pseq` hd appl_235
!appl_237 <- kl_V1402 `pseq` hd kl_V1402
!appl_238 <- appl_237 `pseq` tl appl_237
!appl_239 <- appl_238 `pseq` tl appl_238
!appl_240 <- appl_239 `pseq` hd appl_239
!appl_241 <- appl_233 `pseq` (appl_236 `pseq` (appl_240 `pseq` kl_shen_ebr appl_233 appl_236 appl_240))
let !appl_242 = Atom Nil
!appl_243 <- appl_241 `pseq` (appl_242 `pseq` klCons appl_241 appl_242)
!appl_244 <- appl_231 `pseq` (appl_243 `pseq` klCons appl_231 appl_243)
!appl_245 <- appl_244 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_244
let !appl_246 = Atom Nil
!appl_247 <- appl_245 `pseq` (appl_246 `pseq` klCons appl_245 appl_246)
!appl_248 <- appl_225 `pseq` (appl_247 `pseq` klCons appl_225 appl_247)
!appl_249 <- appl_248 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_248
!appl_250 <- appl_249 `pseq` applyWrapper appl_209 [appl_249]
let !aw_251 = Core.Types.Atom (Core.Types.UnboundSym "do")
appl_208 `pseq` (appl_250 `pseq` applyWrapper aw_251 [appl_208,
appl_250])
Atom (B (False)) -> do !kl_if_252 <- let pat_cond_253 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_254 <- let pat_cond_255 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_256 <- let pat_cond_257 = do !kl_if_258 <- let pat_cond_259 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_260 <- let pat_cond_261 kl_V1402hth kl_V1402hthh kl_V1402htht = do !kl_if_262 <- let pat_cond_263 = do !kl_if_264 <- let pat_cond_265 kl_V1402htht kl_V1402hthth kl_V1402hthtt = do !kl_if_266 <- let pat_cond_267 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt = do let !appl_268 = Atom Nil
!kl_if_269 <- appl_268 `pseq` (kl_V1402hthttt `pseq` eq appl_268 kl_V1402hthttt)
!kl_if_270 <- case kl_if_269 of
Atom (B (True)) -> do !kl_if_271 <- let pat_cond_272 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_273 = Atom Nil
!kl_if_274 <- appl_273 `pseq` (kl_V1402httt `pseq` eq appl_273 kl_V1402httt)
!kl_if_275 <- case kl_if_274 of
Atom (B (True)) -> do !kl_if_276 <- let pat_cond_277 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_278 = Atom Nil
!kl_if_279 <- appl_278 `pseq` (kl_V1402tt `pseq` eq appl_278 kl_V1402tt)
case kl_if_279 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_280 = do do return (Atom (B False))
in case kl_V1402t of
!(kl_V1402t@(Cons (!kl_V1402th)
(!kl_V1402tt))) -> pat_cond_277 kl_V1402t kl_V1402th kl_V1402tt
_ -> pat_cond_280
case kl_if_276 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_275 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_281 = do do return (Atom (B False))
in case kl_V1402htt of
!(kl_V1402htt@(Cons (!kl_V1402htth)
(!kl_V1402httt))) -> pat_cond_272 kl_V1402htt kl_V1402htth kl_V1402httt
_ -> pat_cond_281
case kl_if_271 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_270 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_282 = do do return (Atom (B False))
in case kl_V1402hthtt of
!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
(!kl_V1402hthttt))) -> pat_cond_267 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt
_ -> pat_cond_282
case kl_if_266 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_283 = do do return (Atom (B False))
in case kl_V1402htht of
!(kl_V1402htht@(Cons (!kl_V1402hthth)
(!kl_V1402hthtt))) -> pat_cond_265 kl_V1402htht kl_V1402hthth kl_V1402hthtt
_ -> pat_cond_283
case kl_if_264 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_284 = do do return (Atom (B False))
in case kl_V1402hthh of
kl_V1402hthh@(Atom (UnboundSym "@s")) -> pat_cond_263
kl_V1402hthh@(ApplC (PL "@s"
_)) -> pat_cond_263
kl_V1402hthh@(ApplC (Func "@s"
_)) -> pat_cond_263
_ -> pat_cond_284
case kl_if_262 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_285 = do do return (Atom (B False))
in case kl_V1402hth of
!(kl_V1402hth@(Cons (!kl_V1402hthh)
(!kl_V1402htht))) -> pat_cond_261 kl_V1402hth kl_V1402hthh kl_V1402htht
_ -> pat_cond_285
case kl_if_260 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_286 = do do return (Atom (B False))
in case kl_V1402ht of
!(kl_V1402ht@(Cons (!kl_V1402hth)
(!kl_V1402htt))) -> pat_cond_259 kl_V1402ht kl_V1402hth kl_V1402htt
_ -> pat_cond_286
case kl_if_258 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_287 = do do return (Atom (B False))
in case kl_V1402hh of
kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_257
kl_V1402hh@(ApplC (PL "/."
_)) -> pat_cond_257
kl_V1402hh@(ApplC (Func "/."
_)) -> pat_cond_257
_ -> pat_cond_287
case kl_if_256 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_288 = do do return (Atom (B False))
in case kl_V1402h of
!(kl_V1402h@(Cons (!kl_V1402hh)
(!kl_V1402ht))) -> pat_cond_255 kl_V1402h kl_V1402hh kl_V1402ht
_ -> pat_cond_288
case kl_if_254 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_289 = do do return (Atom (B False))
in case kl_V1402 of
!(kl_V1402@(Cons (!kl_V1402h)
(!kl_V1402t))) -> pat_cond_253 kl_V1402 kl_V1402h kl_V1402t
_ -> pat_cond_289
case kl_if_252 of
Atom (B (True)) -> do !appl_290 <- kl_V1402 `pseq` tl kl_V1402
!appl_291 <- appl_290 `pseq` klCons (ApplC (wrapNamed "shen.+string?" kl_shen_PlusstringP)) appl_290
!appl_292 <- appl_291 `pseq` kl_shen_add_test appl_291
let !appl_293 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_294 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))
!appl_295 <- kl_V1402 `pseq` tl kl_V1402
!appl_296 <- appl_295 `pseq` hd appl_295
let !appl_297 = Atom Nil
!appl_298 <- appl_297 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_297
!appl_299 <- appl_296 `pseq` (appl_298 `pseq` klCons appl_296 appl_298)
!appl_300 <- appl_299 `pseq` klCons (ApplC (wrapNamed "pos" pos)) appl_299
let !appl_301 = Atom Nil
!appl_302 <- appl_300 `pseq` (appl_301 `pseq` klCons appl_300 appl_301)
!appl_303 <- kl_Abstraction `pseq` (appl_302 `pseq` klCons kl_Abstraction appl_302)
!appl_304 <- kl_V1402 `pseq` tl kl_V1402
!appl_305 <- appl_304 `pseq` klCons (ApplC (wrapNamed "tlstr" tlstr)) appl_304
let !appl_306 = Atom Nil
!appl_307 <- appl_305 `pseq` (appl_306 `pseq` klCons appl_305 appl_306)
!appl_308 <- appl_303 `pseq` (appl_307 `pseq` klCons appl_303 appl_307)
appl_308 `pseq` applyWrapper appl_294 [appl_308])))
!appl_309 <- kl_V1402 `pseq` hd kl_V1402
!appl_310 <- appl_309 `pseq` tl appl_309
!appl_311 <- appl_310 `pseq` hd appl_310
!appl_312 <- appl_311 `pseq` tl appl_311
!appl_313 <- appl_312 `pseq` hd appl_312
!appl_314 <- kl_V1402 `pseq` hd kl_V1402
!appl_315 <- appl_314 `pseq` tl appl_314
!appl_316 <- appl_315 `pseq` hd appl_315
!appl_317 <- appl_316 `pseq` tl appl_316
!appl_318 <- appl_317 `pseq` tl appl_317
!appl_319 <- appl_318 `pseq` hd appl_318
!appl_320 <- kl_V1402 `pseq` tl kl_V1402
!appl_321 <- appl_320 `pseq` hd appl_320
!appl_322 <- kl_V1402 `pseq` hd kl_V1402
!appl_323 <- appl_322 `pseq` tl appl_322
!appl_324 <- appl_323 `pseq` hd appl_323
!appl_325 <- kl_V1402 `pseq` hd kl_V1402
!appl_326 <- appl_325 `pseq` tl appl_325
!appl_327 <- appl_326 `pseq` tl appl_326
!appl_328 <- appl_327 `pseq` hd appl_327
!appl_329 <- appl_321 `pseq` (appl_324 `pseq` (appl_328 `pseq` kl_shen_ebr appl_321 appl_324 appl_328))
let !appl_330 = Atom Nil
!appl_331 <- appl_329 `pseq` (appl_330 `pseq` klCons appl_329 appl_330)
!appl_332 <- appl_319 `pseq` (appl_331 `pseq` klCons appl_319 appl_331)
!appl_333 <- appl_332 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_332
let !appl_334 = Atom Nil
!appl_335 <- appl_333 `pseq` (appl_334 `pseq` klCons appl_333 appl_334)
!appl_336 <- appl_313 `pseq` (appl_335 `pseq` klCons appl_313 appl_335)
!appl_337 <- appl_336 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_336
!appl_338 <- appl_337 `pseq` applyWrapper appl_293 [appl_337]
let !aw_339 = Core.Types.Atom (Core.Types.UnboundSym "do")
appl_292 `pseq` (appl_338 `pseq` applyWrapper aw_339 [appl_292,
appl_338])
Atom (B (False)) -> do !kl_if_340 <- let pat_cond_341 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_342 <- let pat_cond_343 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_344 <- let pat_cond_345 = do !kl_if_346 <- let pat_cond_347 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_348 <- let pat_cond_349 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_350 = Atom Nil
!kl_if_351 <- appl_350 `pseq` (kl_V1402httt `pseq` eq appl_350 kl_V1402httt)
!kl_if_352 <- case kl_if_351 of
Atom (B (True)) -> do !kl_if_353 <- let pat_cond_354 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_355 = Atom Nil
!kl_if_356 <- appl_355 `pseq` (kl_V1402tt `pseq` eq appl_355 kl_V1402tt)
!kl_if_357 <- case kl_if_356 of
Atom (B (True)) -> do let !aw_358 = Core.Types.Atom (Core.Types.UnboundSym "variable?")
!appl_359 <- kl_V1402hth `pseq` applyWrapper aw_358 [kl_V1402hth]
let !aw_360 = Core.Types.Atom (Core.Types.UnboundSym "not")
!kl_if_361 <- appl_359 `pseq` applyWrapper aw_360 [appl_359]
case kl_if_361 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_357 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_362 = do do return (Atom (B False))
in case kl_V1402t of
!(kl_V1402t@(Cons (!kl_V1402th)
(!kl_V1402tt))) -> pat_cond_354 kl_V1402t kl_V1402th kl_V1402tt
_ -> pat_cond_362
case kl_if_353 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_352 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_363 = do do return (Atom (B False))
in case kl_V1402htt of
!(kl_V1402htt@(Cons (!kl_V1402htth)
(!kl_V1402httt))) -> pat_cond_349 kl_V1402htt kl_V1402htth kl_V1402httt
_ -> pat_cond_363
case kl_if_348 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_364 = do do return (Atom (B False))
in case kl_V1402ht of
!(kl_V1402ht@(Cons (!kl_V1402hth)
(!kl_V1402htt))) -> pat_cond_347 kl_V1402ht kl_V1402hth kl_V1402htt
_ -> pat_cond_364
case kl_if_346 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_365 = do do return (Atom (B False))
in case kl_V1402hh of
kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_345
kl_V1402hh@(ApplC (PL "/."
_)) -> pat_cond_345
kl_V1402hh@(ApplC (Func "/."
_)) -> pat_cond_345
_ -> pat_cond_365
case kl_if_344 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_366 = do do return (Atom (B False))
in case kl_V1402h of
!(kl_V1402h@(Cons (!kl_V1402hh)
(!kl_V1402ht))) -> pat_cond_343 kl_V1402h kl_V1402hh kl_V1402ht
_ -> pat_cond_366
case kl_if_342 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_367 = do do return (Atom (B False))
in case kl_V1402 of
!(kl_V1402@(Cons (!kl_V1402h)
(!kl_V1402t))) -> pat_cond_341 kl_V1402 kl_V1402h kl_V1402t
_ -> pat_cond_367
case kl_if_340 of
Atom (B (True)) -> do !appl_368 <- kl_V1402 `pseq` hd kl_V1402
!appl_369 <- appl_368 `pseq` tl appl_368
!appl_370 <- appl_369 `pseq` hd appl_369
!appl_371 <- kl_V1402 `pseq` tl kl_V1402
!appl_372 <- appl_370 `pseq` (appl_371 `pseq` klCons appl_370 appl_371)
!appl_373 <- appl_372 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_372
!appl_374 <- appl_373 `pseq` kl_shen_add_test appl_373
!appl_375 <- kl_V1402 `pseq` hd kl_V1402
!appl_376 <- appl_375 `pseq` tl appl_375
!appl_377 <- appl_376 `pseq` tl appl_376
!appl_378 <- appl_377 `pseq` hd appl_377
!appl_379 <- appl_378 `pseq` kl_shen_reduce_help appl_378
let !aw_380 = Core.Types.Atom (Core.Types.UnboundSym "do")
appl_374 `pseq` (appl_379 `pseq` applyWrapper aw_380 [appl_374,
appl_379])
Atom (B (False)) -> do !kl_if_381 <- let pat_cond_382 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_383 <- let pat_cond_384 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_385 <- let pat_cond_386 = do !kl_if_387 <- let pat_cond_388 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_389 <- let pat_cond_390 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_391 = Atom Nil
!kl_if_392 <- appl_391 `pseq` (kl_V1402httt `pseq` eq appl_391 kl_V1402httt)
!kl_if_393 <- case kl_if_392 of
Atom (B (True)) -> do !kl_if_394 <- let pat_cond_395 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_396 = Atom Nil
!kl_if_397 <- appl_396 `pseq` (kl_V1402tt `pseq` eq appl_396 kl_V1402tt)
case kl_if_397 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_398 = do do return (Atom (B False))
in case kl_V1402t of
!(kl_V1402t@(Cons (!kl_V1402th)
(!kl_V1402tt))) -> pat_cond_395 kl_V1402t kl_V1402th kl_V1402tt
_ -> pat_cond_398
case kl_if_394 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_393 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_399 = do do return (Atom (B False))
in case kl_V1402htt of
!(kl_V1402htt@(Cons (!kl_V1402htth)
(!kl_V1402httt))) -> pat_cond_390 kl_V1402htt kl_V1402htth kl_V1402httt
_ -> pat_cond_399
case kl_if_389 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_400 = do do return (Atom (B False))
in case kl_V1402ht of
!(kl_V1402ht@(Cons (!kl_V1402hth)
(!kl_V1402htt))) -> pat_cond_388 kl_V1402ht kl_V1402hth kl_V1402htt
_ -> pat_cond_400
case kl_if_387 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_401 = do do return (Atom (B False))
in case kl_V1402hh of
kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_386
kl_V1402hh@(ApplC (PL "/."
_)) -> pat_cond_386
kl_V1402hh@(ApplC (Func "/."
_)) -> pat_cond_386
_ -> pat_cond_401
case kl_if_385 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_402 = do do return (Atom (B False))
in case kl_V1402h of
!(kl_V1402h@(Cons (!kl_V1402hh)
(!kl_V1402ht))) -> pat_cond_384 kl_V1402h kl_V1402hh kl_V1402ht
_ -> pat_cond_402
case kl_if_383 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_403 = do do return (Atom (B False))
in case kl_V1402 of
!(kl_V1402@(Cons (!kl_V1402h)
(!kl_V1402t))) -> pat_cond_382 kl_V1402 kl_V1402h kl_V1402t
_ -> pat_cond_403
case kl_if_381 of
Atom (B (True)) -> do !appl_404 <- kl_V1402 `pseq` tl kl_V1402
!appl_405 <- appl_404 `pseq` hd appl_404
!appl_406 <- kl_V1402 `pseq` hd kl_V1402
!appl_407 <- appl_406 `pseq` tl appl_406
!appl_408 <- appl_407 `pseq` hd appl_407
!appl_409 <- kl_V1402 `pseq` hd kl_V1402
!appl_410 <- appl_409 `pseq` tl appl_409
!appl_411 <- appl_410 `pseq` tl appl_410
!appl_412 <- appl_411 `pseq` hd appl_411
!appl_413 <- appl_405 `pseq` (appl_408 `pseq` (appl_412 `pseq` kl_shen_ebr appl_405 appl_408 appl_412))
appl_413 `pseq` kl_shen_reduce_help appl_413
Atom (B (False)) -> do !kl_if_414 <- let pat_cond_415 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_416 <- let pat_cond_417 = do !kl_if_418 <- let pat_cond_419 kl_V1402t kl_V1402th kl_V1402tt = do !kl_if_420 <- let pat_cond_421 kl_V1402tt kl_V1402tth kl_V1402ttt = do let !appl_422 = Atom Nil
!kl_if_423 <- appl_422 `pseq` (kl_V1402ttt `pseq` eq appl_422 kl_V1402ttt)
case kl_if_423 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_424 = do do return (Atom (B False))
in case kl_V1402tt of
!(kl_V1402tt@(Cons (!kl_V1402tth)
(!kl_V1402ttt))) -> pat_cond_421 kl_V1402tt kl_V1402tth kl_V1402ttt
_ -> pat_cond_424
case kl_if_420 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_425 = do do return (Atom (B False))
in case kl_V1402t of
!(kl_V1402t@(Cons (!kl_V1402th)
(!kl_V1402tt))) -> pat_cond_419 kl_V1402t kl_V1402th kl_V1402tt
_ -> pat_cond_425
case kl_if_418 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_426 = do do return (Atom (B False))
in case kl_V1402h of
kl_V1402h@(Atom (UnboundSym "where")) -> pat_cond_417
kl_V1402h@(ApplC (PL "where"
_)) -> pat_cond_417
kl_V1402h@(ApplC (Func "where"
_)) -> pat_cond_417
_ -> pat_cond_426
case kl_if_416 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_427 = do do return (Atom (B False))
in case kl_V1402 of
!(kl_V1402@(Cons (!kl_V1402h)
(!kl_V1402t))) -> pat_cond_415 kl_V1402 kl_V1402h kl_V1402t
_ -> pat_cond_427
case kl_if_414 of
Atom (B (True)) -> do !appl_428 <- kl_V1402 `pseq` tl kl_V1402
!appl_429 <- appl_428 `pseq` hd appl_428
!appl_430 <- appl_429 `pseq` kl_shen_add_test appl_429
!appl_431 <- kl_V1402 `pseq` tl kl_V1402
!appl_432 <- appl_431 `pseq` tl appl_431
!appl_433 <- appl_432 `pseq` hd appl_432
!appl_434 <- appl_433 `pseq` kl_shen_reduce_help appl_433
let !aw_435 = Core.Types.Atom (Core.Types.UnboundSym "do")
appl_430 `pseq` (appl_434 `pseq` applyWrapper aw_435 [appl_430,
appl_434])
Atom (B (False)) -> do !kl_if_436 <- let pat_cond_437 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_438 <- let pat_cond_439 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_440 = Atom Nil
!kl_if_441 <- appl_440 `pseq` (kl_V1402tt `pseq` eq appl_440 kl_V1402tt)
case kl_if_441 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_442 = do do return (Atom (B False))
in case kl_V1402t of
!(kl_V1402t@(Cons (!kl_V1402th)
(!kl_V1402tt))) -> pat_cond_439 kl_V1402t kl_V1402th kl_V1402tt
_ -> pat_cond_442
case kl_if_438 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_443 = do do return (Atom (B False))
in case kl_V1402 of
!(kl_V1402@(Cons (!kl_V1402h)
(!kl_V1402t))) -> pat_cond_437 kl_V1402 kl_V1402h kl_V1402t
_ -> pat_cond_443
case kl_if_436 of
Atom (B (True)) -> do let !appl_444 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do !appl_445 <- kl_V1402 `pseq` hd kl_V1402
!kl_if_446 <- appl_445 `pseq` (kl_Z `pseq` eq appl_445 kl_Z)
case kl_if_446 of
Atom (B (True)) -> do return kl_V1402
Atom (B (False)) -> do do !appl_447 <- kl_V1402 `pseq` tl kl_V1402
!appl_448 <- kl_Z `pseq` (appl_447 `pseq` klCons kl_Z appl_447)
appl_448 `pseq` kl_shen_reduce_help appl_448
_ -> throwError "if: expected boolean")))
!appl_449 <- kl_V1402 `pseq` hd kl_V1402
!appl_450 <- appl_449 `pseq` kl_shen_reduce_help appl_449
appl_450 `pseq` applyWrapper appl_444 [appl_450]
Atom (B (False)) -> do do return kl_V1402
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
kl_shen_PlusstringP :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_PlusstringP (!kl_V1404) = do let pat_cond_0 = do return (Atom (B False))
pat_cond_1 = do do kl_V1404 `pseq` stringP kl_V1404
in case kl_V1404 of
kl_V1404@(Atom (Str "")) -> pat_cond_0
_ -> pat_cond_1
kl_shen_PlusvectorP :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_PlusvectorP (!kl_V1406) = do !kl_if_0 <- kl_V1406 `pseq` absvectorP kl_V1406
case kl_if_0 of
Atom (B (True)) -> do !appl_1 <- kl_V1406 `pseq` addressFrom kl_V1406 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))
!kl_if_2 <- appl_1 `pseq` greaterThan appl_1 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
kl_shen_ebr :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_ebr (!kl_V1420) (!kl_V1421) (!kl_V1422) = do !kl_if_0 <- kl_V1422 `pseq` (kl_V1421 `pseq` eq kl_V1422 kl_V1421)
case kl_if_0 of
Atom (B (True)) -> do return kl_V1420
Atom (B (False)) -> do !kl_if_1 <- let pat_cond_2 kl_V1422 kl_V1422h kl_V1422t = do !kl_if_3 <- let pat_cond_4 = do !kl_if_5 <- let pat_cond_6 kl_V1422t kl_V1422th kl_V1422tt = do !kl_if_7 <- let pat_cond_8 kl_V1422tt kl_V1422tth kl_V1422ttt = do let !appl_9 = Atom Nil
!kl_if_10 <- appl_9 `pseq` (kl_V1422ttt `pseq` eq appl_9 kl_V1422ttt)
!kl_if_11 <- case kl_if_10 of
Atom (B (True)) -> do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "occurrences")
!appl_13 <- kl_V1421 `pseq` (kl_V1422th `pseq` applyWrapper aw_12 [kl_V1421,
kl_V1422th])
!kl_if_14 <- appl_13 `pseq` greaterThan appl_13 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))
case kl_if_14 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_11 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_15 = do do return (Atom (B False))
in case kl_V1422tt of
!(kl_V1422tt@(Cons (!kl_V1422tth)
(!kl_V1422ttt))) -> pat_cond_8 kl_V1422tt kl_V1422tth kl_V1422ttt
_ -> pat_cond_15
case kl_if_7 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_16 = do do return (Atom (B False))
in case kl_V1422t of
!(kl_V1422t@(Cons (!kl_V1422th)
(!kl_V1422tt))) -> pat_cond_6 kl_V1422t kl_V1422th kl_V1422tt
_ -> pat_cond_16
case kl_if_5 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_17 = do do return (Atom (B False))
in case kl_V1422h of
kl_V1422h@(Atom (UnboundSym "/.")) -> pat_cond_4
kl_V1422h@(ApplC (PL "/."
_)) -> pat_cond_4
kl_V1422h@(ApplC (Func "/."
_)) -> pat_cond_4
_ -> pat_cond_17
case kl_if_3 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_18 = do do return (Atom (B False))
in case kl_V1422 of
!(kl_V1422@(Cons (!kl_V1422h)
(!kl_V1422t))) -> pat_cond_2 kl_V1422 kl_V1422h kl_V1422t
_ -> pat_cond_18
case kl_if_1 of
Atom (B (True)) -> do return kl_V1422
Atom (B (False)) -> do !kl_if_19 <- let pat_cond_20 kl_V1422 kl_V1422h kl_V1422t = do !kl_if_21 <- let pat_cond_22 = do !kl_if_23 <- let pat_cond_24 kl_V1422t kl_V1422th kl_V1422tt = do !kl_if_25 <- let pat_cond_26 kl_V1422tt kl_V1422tth kl_V1422ttt = do let !appl_27 = Atom Nil
!kl_if_28 <- appl_27 `pseq` (kl_V1422ttt `pseq` eq appl_27 kl_V1422ttt)
!kl_if_29 <- case kl_if_28 of
Atom (B (True)) -> do let !aw_30 = Core.Types.Atom (Core.Types.UnboundSym "occurrences")
!appl_31 <- kl_V1421 `pseq` (kl_V1422th `pseq` applyWrapper aw_30 [kl_V1421,
kl_V1422th])
!kl_if_32 <- appl_31 `pseq` greaterThan appl_31 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))
case kl_if_32 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_29 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_33 = do do return (Atom (B False))
in case kl_V1422tt of
!(kl_V1422tt@(Cons (!kl_V1422tth)
(!kl_V1422ttt))) -> pat_cond_26 kl_V1422tt kl_V1422tth kl_V1422ttt
_ -> pat_cond_33
case kl_if_25 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_34 = do do return (Atom (B False))
in case kl_V1422t of
!(kl_V1422t@(Cons (!kl_V1422th)
(!kl_V1422tt))) -> pat_cond_24 kl_V1422t kl_V1422th kl_V1422tt
_ -> pat_cond_34
case kl_if_23 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_35 = do do return (Atom (B False))
in case kl_V1422h of
kl_V1422h@(Atom (UnboundSym "lambda")) -> pat_cond_22
kl_V1422h@(ApplC (PL "lambda"
_)) -> pat_cond_22
kl_V1422h@(ApplC (Func "lambda"
_)) -> pat_cond_22
_ -> pat_cond_35
case kl_if_21 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_36 = do do return (Atom (B False))
in case kl_V1422 of
!(kl_V1422@(Cons (!kl_V1422h)
(!kl_V1422t))) -> pat_cond_20 kl_V1422 kl_V1422h kl_V1422t
_ -> pat_cond_36
case kl_if_19 of
Atom (B (True)) -> do return kl_V1422
Atom (B (False)) -> do !kl_if_37 <- let pat_cond_38 kl_V1422 kl_V1422h kl_V1422t = do !kl_if_39 <- let pat_cond_40 = do !kl_if_41 <- let pat_cond_42 kl_V1422t kl_V1422th kl_V1422tt = do !kl_if_43 <- let pat_cond_44 kl_V1422tt kl_V1422tth kl_V1422ttt = do !kl_if_45 <- let pat_cond_46 kl_V1422ttt kl_V1422ttth kl_V1422tttt = do let !appl_47 = Atom Nil
!kl_if_48 <- appl_47 `pseq` (kl_V1422tttt `pseq` eq appl_47 kl_V1422tttt)
!kl_if_49 <- case kl_if_48 of
Atom (B (True)) -> do !kl_if_50 <- kl_V1422th `pseq` (kl_V1421 `pseq` eq kl_V1422th kl_V1421)
case kl_if_50 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_49 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_51 = do do return (Atom (B False))
in case kl_V1422ttt of
!(kl_V1422ttt@(Cons (!kl_V1422ttth)
(!kl_V1422tttt))) -> pat_cond_46 kl_V1422ttt kl_V1422ttth kl_V1422tttt
_ -> pat_cond_51
case kl_if_45 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_52 = do do return (Atom (B False))
in case kl_V1422tt of
!(kl_V1422tt@(Cons (!kl_V1422tth)
(!kl_V1422ttt))) -> pat_cond_44 kl_V1422tt kl_V1422tth kl_V1422ttt
_ -> pat_cond_52
case kl_if_43 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_53 = do do return (Atom (B False))
in case kl_V1422t of
!(kl_V1422t@(Cons (!kl_V1422th)
(!kl_V1422tt))) -> pat_cond_42 kl_V1422t kl_V1422th kl_V1422tt
_ -> pat_cond_53
case kl_if_41 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_54 = do do return (Atom (B False))
in case kl_V1422h of
kl_V1422h@(Atom (UnboundSym "let")) -> pat_cond_40
kl_V1422h@(ApplC (PL "let"
_)) -> pat_cond_40
kl_V1422h@(ApplC (Func "let"
_)) -> pat_cond_40
_ -> pat_cond_54
case kl_if_39 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_55 = do do return (Atom (B False))
in case kl_V1422 of
!(kl_V1422@(Cons (!kl_V1422h)
(!kl_V1422t))) -> pat_cond_38 kl_V1422 kl_V1422h kl_V1422t
_ -> pat_cond_55
case kl_if_37 of
Atom (B (True)) -> do !appl_56 <- kl_V1422 `pseq` tl kl_V1422
!appl_57 <- appl_56 `pseq` hd appl_56
!appl_58 <- kl_V1422 `pseq` tl kl_V1422
!appl_59 <- appl_58 `pseq` hd appl_58
!appl_60 <- kl_V1422 `pseq` tl kl_V1422
!appl_61 <- appl_60 `pseq` tl appl_60
!appl_62 <- appl_61 `pseq` hd appl_61
!appl_63 <- kl_V1420 `pseq` (appl_59 `pseq` (appl_62 `pseq` kl_shen_ebr kl_V1420 appl_59 appl_62))
!appl_64 <- kl_V1422 `pseq` tl kl_V1422
!appl_65 <- appl_64 `pseq` tl appl_64
!appl_66 <- appl_65 `pseq` tl appl_65
!appl_67 <- appl_63 `pseq` (appl_66 `pseq` klCons appl_63 appl_66)
!appl_68 <- appl_57 `pseq` (appl_67 `pseq` klCons appl_57 appl_67)
appl_68 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_68
Atom (B (False)) -> do let pat_cond_69 kl_V1422 kl_V1422h kl_V1422t = do !appl_70 <- kl_V1420 `pseq` (kl_V1421 `pseq` (kl_V1422h `pseq` kl_shen_ebr kl_V1420 kl_V1421 kl_V1422h))
!appl_71 <- kl_V1420 `pseq` (kl_V1421 `pseq` (kl_V1422t `pseq` kl_shen_ebr kl_V1420 kl_V1421 kl_V1422t))
appl_70 `pseq` (appl_71 `pseq` klCons appl_70 appl_71)
pat_cond_72 = do do return kl_V1422
in case kl_V1422 of
!(kl_V1422@(Cons (!kl_V1422h)
(!kl_V1422t))) -> pat_cond_69 kl_V1422 kl_V1422h kl_V1422t
_ -> pat_cond_72
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
kl_shen_add_test :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_add_test (!kl_V1424) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*teststack*"))
!appl_1 <- kl_V1424 `pseq` (appl_0 `pseq` klCons kl_V1424 appl_0)
appl_1 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*teststack*")) appl_1
kl_shen_cond_expression :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_cond_expression (!kl_V1428) (!kl_V1429) (!kl_V1430) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Err) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Cases) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_EncodeChoices) -> do kl_EncodeChoices `pseq` kl_shen_cond_form kl_EncodeChoices)))
!appl_3 <- kl_Cases `pseq` (kl_V1428 `pseq` kl_shen_encode_choices kl_Cases kl_V1428)
appl_3 `pseq` applyWrapper appl_2 [appl_3])))
!appl_4 <- kl_V1430 `pseq` (kl_Err `pseq` kl_shen_case_form kl_V1430 kl_Err)
appl_4 `pseq` applyWrapper appl_1 [appl_4])))
!appl_5 <- kl_V1428 `pseq` kl_shen_err_condition kl_V1428
appl_5 `pseq` applyWrapper appl_0 [appl_5]
kl_shen_cond_form :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_cond_form (!kl_V1434) = do !kl_if_0 <- let pat_cond_1 kl_V1434 kl_V1434h kl_V1434t = do !kl_if_2 <- let pat_cond_3 kl_V1434h kl_V1434hh kl_V1434ht = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1434ht kl_V1434hth kl_V1434htt = do let !appl_8 = Atom Nil
!kl_if_9 <- appl_8 `pseq` (kl_V1434htt `pseq` eq appl_8 kl_V1434htt)
case kl_if_9 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_10 = do do return (Atom (B False))
in case kl_V1434ht of
!(kl_V1434ht@(Cons (!kl_V1434hth)
(!kl_V1434htt))) -> pat_cond_7 kl_V1434ht kl_V1434hth kl_V1434htt
_ -> pat_cond_10
case kl_if_6 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_11 = do do return (Atom (B False))
in case kl_V1434hh of
kl_V1434hh@(Atom (UnboundSym "true")) -> pat_cond_5
kl_V1434hh@(Atom (B (True))) -> pat_cond_5
_ -> pat_cond_11
case kl_if_4 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_12 = do do return (Atom (B False))
in case kl_V1434h of
!(kl_V1434h@(Cons (!kl_V1434hh)
(!kl_V1434ht))) -> pat_cond_3 kl_V1434h kl_V1434hh kl_V1434ht
_ -> pat_cond_12
case kl_if_2 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_13 = do do return (Atom (B False))
in case kl_V1434 of
!(kl_V1434@(Cons (!kl_V1434h)
(!kl_V1434t))) -> pat_cond_1 kl_V1434 kl_V1434h kl_V1434t
_ -> pat_cond_13
case kl_if_0 of
Atom (B (True)) -> do !appl_14 <- kl_V1434 `pseq` hd kl_V1434
!appl_15 <- appl_14 `pseq` tl appl_14
appl_15 `pseq` hd appl_15
Atom (B (False)) -> do do kl_V1434 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "cond")) kl_V1434
_ -> throwError "if: expected boolean"
kl_shen_encode_choices :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_encode_choices (!kl_V1439) (!kl_V1440) = do let !appl_0 = Atom Nil
!kl_if_1 <- appl_0 `pseq` (kl_V1439 `pseq` eq appl_0 kl_V1439)
case kl_if_1 of
Atom (B (True)) -> do return (Atom Nil)
Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V1439 kl_V1439h kl_V1439t = do !kl_if_4 <- let pat_cond_5 kl_V1439h kl_V1439hh kl_V1439ht = do !kl_if_6 <- let pat_cond_7 = do !kl_if_8 <- let pat_cond_9 kl_V1439ht kl_V1439hth kl_V1439htt = do !kl_if_10 <- let pat_cond_11 kl_V1439hth kl_V1439hthh kl_V1439htht = do !kl_if_12 <- let pat_cond_13 = do !kl_if_14 <- let pat_cond_15 kl_V1439htht kl_V1439hthth kl_V1439hthtt = do let !appl_16 = Atom Nil
!kl_if_17 <- appl_16 `pseq` (kl_V1439hthtt `pseq` eq appl_16 kl_V1439hthtt)
!kl_if_18 <- case kl_if_17 of
Atom (B (True)) -> do let !appl_19 = Atom Nil
!kl_if_20 <- appl_19 `pseq` (kl_V1439htt `pseq` eq appl_19 kl_V1439htt)
!kl_if_21 <- case kl_if_20 of
Atom (B (True)) -> do let !appl_22 = Atom Nil
!kl_if_23 <- appl_22 `pseq` (kl_V1439t `pseq` eq appl_22 kl_V1439t)
case kl_if_23 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_21 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_18 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_24 = do do return (Atom (B False))
in case kl_V1439htht of
!(kl_V1439htht@(Cons (!kl_V1439hthth)
(!kl_V1439hthtt))) -> pat_cond_15 kl_V1439htht kl_V1439hthth kl_V1439hthtt
_ -> pat_cond_24
case kl_if_14 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_25 = do do return (Atom (B False))
in case kl_V1439hthh of
kl_V1439hthh@(Atom (UnboundSym "shen.choicepoint!")) -> pat_cond_13
kl_V1439hthh@(ApplC (PL "shen.choicepoint!"
_)) -> pat_cond_13
kl_V1439hthh@(ApplC (Func "shen.choicepoint!"
_)) -> pat_cond_13
_ -> pat_cond_25
case kl_if_12 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_26 = do do return (Atom (B False))
in case kl_V1439hth of
!(kl_V1439hth@(Cons (!kl_V1439hthh)
(!kl_V1439htht))) -> pat_cond_11 kl_V1439hth kl_V1439hthh kl_V1439htht
_ -> pat_cond_26
case kl_if_10 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_27 = do do return (Atom (B False))
in case kl_V1439ht of
!(kl_V1439ht@(Cons (!kl_V1439hth)
(!kl_V1439htt))) -> pat_cond_9 kl_V1439ht kl_V1439hth kl_V1439htt
_ -> pat_cond_27
case kl_if_8 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_28 = do do return (Atom (B False))
in case kl_V1439hh of
kl_V1439hh@(Atom (UnboundSym "true")) -> pat_cond_7
kl_V1439hh@(Atom (B (True))) -> pat_cond_7
_ -> pat_cond_28
case kl_if_6 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_29 = do do return (Atom (B False))
in case kl_V1439h of
!(kl_V1439h@(Cons (!kl_V1439hh)
(!kl_V1439ht))) -> pat_cond_5 kl_V1439h kl_V1439hh kl_V1439ht
_ -> pat_cond_29
case kl_if_4 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_30 = do do return (Atom (B False))
in case kl_V1439 of
!(kl_V1439@(Cons (!kl_V1439h)
(!kl_V1439t))) -> pat_cond_3 kl_V1439 kl_V1439h kl_V1439t
_ -> pat_cond_30
case kl_if_2 of
Atom (B (True)) -> do !appl_31 <- kl_V1439 `pseq` hd kl_V1439
!appl_32 <- appl_31 `pseq` tl appl_31
!appl_33 <- appl_32 `pseq` hd appl_32
!appl_34 <- appl_33 `pseq` tl appl_33
!appl_35 <- appl_34 `pseq` hd appl_34
let !appl_36 = Atom Nil
!appl_37 <- appl_36 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "fail")) appl_36
let !appl_38 = Atom Nil
!appl_39 <- appl_37 `pseq` (appl_38 `pseq` klCons appl_37 appl_38)
!appl_40 <- appl_39 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_39
!appl_41 <- appl_40 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_40
!kl_if_42 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*installing-kl*"))
!appl_43 <- case kl_if_42 of
Atom (B (True)) -> do let !appl_44 = Atom Nil
!appl_45 <- kl_V1440 `pseq` (appl_44 `pseq` klCons kl_V1440 appl_44)
appl_45 `pseq` klCons (ApplC (wrapNamed "shen.sys-error" kl_shen_sys_error)) appl_45
Atom (B (False)) -> do do let !appl_46 = Atom Nil
!appl_47 <- kl_V1440 `pseq` (appl_46 `pseq` klCons kl_V1440 appl_46)
appl_47 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")) appl_47
_ -> throwError "if: expected boolean"
let !appl_48 = Atom Nil
!appl_49 <- appl_48 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_48
!appl_50 <- appl_43 `pseq` (appl_49 `pseq` klCons appl_43 appl_49)
!appl_51 <- appl_41 `pseq` (appl_50 `pseq` klCons appl_41 appl_50)
!appl_52 <- appl_51 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_51
let !appl_53 = Atom Nil
!appl_54 <- appl_52 `pseq` (appl_53 `pseq` klCons appl_52 appl_53)
!appl_55 <- appl_35 `pseq` (appl_54 `pseq` klCons appl_35 appl_54)
!appl_56 <- appl_55 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_55
!appl_57 <- appl_56 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_56
let !appl_58 = Atom Nil
!appl_59 <- appl_57 `pseq` (appl_58 `pseq` klCons appl_57 appl_58)
!appl_60 <- appl_59 `pseq` klCons (Atom (B True)) appl_59
let !appl_61 = Atom Nil
appl_60 `pseq` (appl_61 `pseq` klCons appl_60 appl_61)
Atom (B (False)) -> do !kl_if_62 <- let pat_cond_63 kl_V1439 kl_V1439h kl_V1439t = do !kl_if_64 <- let pat_cond_65 kl_V1439h kl_V1439hh kl_V1439ht = do !kl_if_66 <- let pat_cond_67 = do !kl_if_68 <- let pat_cond_69 kl_V1439ht kl_V1439hth kl_V1439htt = do !kl_if_70 <- let pat_cond_71 kl_V1439hth kl_V1439hthh kl_V1439htht = do !kl_if_72 <- let pat_cond_73 = do !kl_if_74 <- let pat_cond_75 kl_V1439htht kl_V1439hthth kl_V1439hthtt = do let !appl_76 = Atom Nil
!kl_if_77 <- appl_76 `pseq` (kl_V1439hthtt `pseq` eq appl_76 kl_V1439hthtt)
!kl_if_78 <- case kl_if_77 of
Atom (B (True)) -> do let !appl_79 = Atom Nil
!kl_if_80 <- appl_79 `pseq` (kl_V1439htt `pseq` eq appl_79 kl_V1439htt)
case kl_if_80 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_78 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_81 = do do return (Atom (B False))
in case kl_V1439htht of
!(kl_V1439htht@(Cons (!kl_V1439hthth)
(!kl_V1439hthtt))) -> pat_cond_75 kl_V1439htht kl_V1439hthth kl_V1439hthtt
_ -> pat_cond_81
case kl_if_74 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_82 = do do return (Atom (B False))
in case kl_V1439hthh of
kl_V1439hthh@(Atom (UnboundSym "shen.choicepoint!")) -> pat_cond_73
kl_V1439hthh@(ApplC (PL "shen.choicepoint!"
_)) -> pat_cond_73
kl_V1439hthh@(ApplC (Func "shen.choicepoint!"
_)) -> pat_cond_73
_ -> pat_cond_82
case kl_if_72 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_83 = do do return (Atom (B False))
in case kl_V1439hth of
!(kl_V1439hth@(Cons (!kl_V1439hthh)
(!kl_V1439htht))) -> pat_cond_71 kl_V1439hth kl_V1439hthh kl_V1439htht
_ -> pat_cond_83
case kl_if_70 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_84 = do do return (Atom (B False))
in case kl_V1439ht of
!(kl_V1439ht@(Cons (!kl_V1439hth)
(!kl_V1439htt))) -> pat_cond_69 kl_V1439ht kl_V1439hth kl_V1439htt
_ -> pat_cond_84
case kl_if_68 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_85 = do do return (Atom (B False))
in case kl_V1439hh of
kl_V1439hh@(Atom (UnboundSym "true")) -> pat_cond_67
kl_V1439hh@(Atom (B (True))) -> pat_cond_67
_ -> pat_cond_85
case kl_if_66 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_86 = do do return (Atom (B False))
in case kl_V1439h of
!(kl_V1439h@(Cons (!kl_V1439hh)
(!kl_V1439ht))) -> pat_cond_65 kl_V1439h kl_V1439hh kl_V1439ht
_ -> pat_cond_86
case kl_if_64 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_87 = do do return (Atom (B False))
in case kl_V1439 of
!(kl_V1439@(Cons (!kl_V1439h)
(!kl_V1439t))) -> pat_cond_63 kl_V1439 kl_V1439h kl_V1439t
_ -> pat_cond_87
case kl_if_62 of
Atom (B (True)) -> do !appl_88 <- kl_V1439 `pseq` hd kl_V1439
!appl_89 <- appl_88 `pseq` tl appl_88
!appl_90 <- appl_89 `pseq` hd appl_89
!appl_91 <- appl_90 `pseq` tl appl_90
!appl_92 <- appl_91 `pseq` hd appl_91
let !appl_93 = Atom Nil
!appl_94 <- appl_93 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "fail")) appl_93
let !appl_95 = Atom Nil
!appl_96 <- appl_94 `pseq` (appl_95 `pseq` klCons appl_94 appl_95)
!appl_97 <- appl_96 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_96
!appl_98 <- appl_97 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_97
!appl_99 <- kl_V1439 `pseq` tl kl_V1439
!appl_100 <- appl_99 `pseq` (kl_V1440 `pseq` kl_shen_encode_choices appl_99 kl_V1440)
!appl_101 <- appl_100 `pseq` kl_shen_cond_form appl_100
let !appl_102 = Atom Nil
!appl_103 <- appl_102 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_102
!appl_104 <- appl_101 `pseq` (appl_103 `pseq` klCons appl_101 appl_103)
!appl_105 <- appl_98 `pseq` (appl_104 `pseq` klCons appl_98 appl_104)
!appl_106 <- appl_105 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_105
let !appl_107 = Atom Nil
!appl_108 <- appl_106 `pseq` (appl_107 `pseq` klCons appl_106 appl_107)
!appl_109 <- appl_92 `pseq` (appl_108 `pseq` klCons appl_92 appl_108)
!appl_110 <- appl_109 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_109
!appl_111 <- appl_110 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_110
let !appl_112 = Atom Nil
!appl_113 <- appl_111 `pseq` (appl_112 `pseq` klCons appl_111 appl_112)
!appl_114 <- appl_113 `pseq` klCons (Atom (B True)) appl_113
let !appl_115 = Atom Nil
appl_114 `pseq` (appl_115 `pseq` klCons appl_114 appl_115)
Atom (B (False)) -> do !kl_if_116 <- let pat_cond_117 kl_V1439 kl_V1439h kl_V1439t = do !kl_if_118 <- let pat_cond_119 kl_V1439h kl_V1439hh kl_V1439ht = do !kl_if_120 <- let pat_cond_121 kl_V1439ht kl_V1439hth kl_V1439htt = do !kl_if_122 <- let pat_cond_123 kl_V1439hth kl_V1439hthh kl_V1439htht = do !kl_if_124 <- let pat_cond_125 = do !kl_if_126 <- let pat_cond_127 kl_V1439htht kl_V1439hthth kl_V1439hthtt = do let !appl_128 = Atom Nil
!kl_if_129 <- appl_128 `pseq` (kl_V1439hthtt `pseq` eq appl_128 kl_V1439hthtt)
!kl_if_130 <- case kl_if_129 of
Atom (B (True)) -> do let !appl_131 = Atom Nil
!kl_if_132 <- appl_131 `pseq` (kl_V1439htt `pseq` eq appl_131 kl_V1439htt)
case kl_if_132 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_130 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_133 = do do return (Atom (B False))
in case kl_V1439htht of
!(kl_V1439htht@(Cons (!kl_V1439hthth)
(!kl_V1439hthtt))) -> pat_cond_127 kl_V1439htht kl_V1439hthth kl_V1439hthtt
_ -> pat_cond_133
case kl_if_126 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_134 = do do return (Atom (B False))
in case kl_V1439hthh of
kl_V1439hthh@(Atom (UnboundSym "shen.choicepoint!")) -> pat_cond_125
kl_V1439hthh@(ApplC (PL "shen.choicepoint!"
_)) -> pat_cond_125
kl_V1439hthh@(ApplC (Func "shen.choicepoint!"
_)) -> pat_cond_125
_ -> pat_cond_134
case kl_if_124 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_135 = do do return (Atom (B False))
in case kl_V1439hth of
!(kl_V1439hth@(Cons (!kl_V1439hthh)
(!kl_V1439htht))) -> pat_cond_123 kl_V1439hth kl_V1439hthh kl_V1439htht
_ -> pat_cond_135
case kl_if_122 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_136 = do do return (Atom (B False))
in case kl_V1439ht of
!(kl_V1439ht@(Cons (!kl_V1439hth)
(!kl_V1439htt))) -> pat_cond_121 kl_V1439ht kl_V1439hth kl_V1439htt
_ -> pat_cond_136
case kl_if_120 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_137 = do do return (Atom (B False))
in case kl_V1439h of
!(kl_V1439h@(Cons (!kl_V1439hh)
(!kl_V1439ht))) -> pat_cond_119 kl_V1439h kl_V1439hh kl_V1439ht
_ -> pat_cond_137
case kl_if_118 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_138 = do do return (Atom (B False))
in case kl_V1439 of
!(kl_V1439@(Cons (!kl_V1439h)
(!kl_V1439t))) -> pat_cond_117 kl_V1439 kl_V1439h kl_V1439t
_ -> pat_cond_138
case kl_if_116 of
Atom (B (True)) -> do !appl_139 <- kl_V1439 `pseq` tl kl_V1439
!appl_140 <- appl_139 `pseq` (kl_V1440 `pseq` kl_shen_encode_choices appl_139 kl_V1440)
!appl_141 <- appl_140 `pseq` kl_shen_cond_form appl_140
let !appl_142 = Atom Nil
!appl_143 <- appl_141 `pseq` (appl_142 `pseq` klCons appl_141 appl_142)
!appl_144 <- appl_143 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "freeze")) appl_143
!appl_145 <- kl_V1439 `pseq` hd kl_V1439
!appl_146 <- appl_145 `pseq` hd appl_145
!appl_147 <- kl_V1439 `pseq` hd kl_V1439
!appl_148 <- appl_147 `pseq` tl appl_147
!appl_149 <- appl_148 `pseq` hd appl_148
!appl_150 <- appl_149 `pseq` tl appl_149
!appl_151 <- appl_150 `pseq` hd appl_150
let !appl_152 = Atom Nil
!appl_153 <- appl_152 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "fail")) appl_152
let !appl_154 = Atom Nil
!appl_155 <- appl_153 `pseq` (appl_154 `pseq` klCons appl_153 appl_154)
!appl_156 <- appl_155 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_155
!appl_157 <- appl_156 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_156
let !appl_158 = Atom Nil
!appl_159 <- appl_158 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Freeze")) appl_158
!appl_160 <- appl_159 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "thaw")) appl_159
let !appl_161 = Atom Nil
!appl_162 <- appl_161 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_161
!appl_163 <- appl_160 `pseq` (appl_162 `pseq` klCons appl_160 appl_162)
!appl_164 <- appl_157 `pseq` (appl_163 `pseq` klCons appl_157 appl_163)
!appl_165 <- appl_164 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_164
let !appl_166 = Atom Nil
!appl_167 <- appl_165 `pseq` (appl_166 `pseq` klCons appl_165 appl_166)
!appl_168 <- appl_151 `pseq` (appl_167 `pseq` klCons appl_151 appl_167)
!appl_169 <- appl_168 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_168
!appl_170 <- appl_169 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_169
let !appl_171 = Atom Nil
!appl_172 <- appl_171 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Freeze")) appl_171
!appl_173 <- appl_172 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "thaw")) appl_172
let !appl_174 = Atom Nil
!appl_175 <- appl_173 `pseq` (appl_174 `pseq` klCons appl_173 appl_174)
!appl_176 <- appl_170 `pseq` (appl_175 `pseq` klCons appl_170 appl_175)
!appl_177 <- appl_146 `pseq` (appl_176 `pseq` klCons appl_146 appl_176)
!appl_178 <- appl_177 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_177
let !appl_179 = Atom Nil
!appl_180 <- appl_178 `pseq` (appl_179 `pseq` klCons appl_178 appl_179)
!appl_181 <- appl_144 `pseq` (appl_180 `pseq` klCons appl_144 appl_180)
!appl_182 <- appl_181 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Freeze")) appl_181
!appl_183 <- appl_182 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_182
let !appl_184 = Atom Nil
!appl_185 <- appl_183 `pseq` (appl_184 `pseq` klCons appl_183 appl_184)
!appl_186 <- appl_185 `pseq` klCons (Atom (B True)) appl_185
let !appl_187 = Atom Nil
appl_186 `pseq` (appl_187 `pseq` klCons appl_186 appl_187)
Atom (B (False)) -> do !kl_if_188 <- let pat_cond_189 kl_V1439 kl_V1439h kl_V1439t = do !kl_if_190 <- let pat_cond_191 kl_V1439h kl_V1439hh kl_V1439ht = do !kl_if_192 <- let pat_cond_193 kl_V1439ht kl_V1439hth kl_V1439htt = do let !appl_194 = Atom Nil
!kl_if_195 <- appl_194 `pseq` (kl_V1439htt `pseq` eq appl_194 kl_V1439htt)
case kl_if_195 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_196 = do do return (Atom (B False))
in case kl_V1439ht of
!(kl_V1439ht@(Cons (!kl_V1439hth)
(!kl_V1439htt))) -> pat_cond_193 kl_V1439ht kl_V1439hth kl_V1439htt
_ -> pat_cond_196
case kl_if_192 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_197 = do do return (Atom (B False))
in case kl_V1439h of
!(kl_V1439h@(Cons (!kl_V1439hh)
(!kl_V1439ht))) -> pat_cond_191 kl_V1439h kl_V1439hh kl_V1439ht
_ -> pat_cond_197
case kl_if_190 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_198 = do do return (Atom (B False))
in case kl_V1439 of
!(kl_V1439@(Cons (!kl_V1439h)
(!kl_V1439t))) -> pat_cond_189 kl_V1439 kl_V1439h kl_V1439t
_ -> pat_cond_198
case kl_if_188 of
Atom (B (True)) -> do !appl_199 <- kl_V1439 `pseq` hd kl_V1439
!appl_200 <- kl_V1439 `pseq` tl kl_V1439
!appl_201 <- appl_200 `pseq` (kl_V1440 `pseq` kl_shen_encode_choices appl_200 kl_V1440)
appl_199 `pseq` (appl_201 `pseq` klCons appl_199 appl_201)
Atom (B (False)) -> do do let !aw_202 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_202 [ApplC (wrapNamed "shen.encode-choices" kl_shen_encode_choices)]
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
kl_shen_case_form :: Core.Types.KLValue ->
Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_case_form (!kl_V1447) (!kl_V1448) = do let !appl_0 = Atom Nil
!kl_if_1 <- appl_0 `pseq` (kl_V1447 `pseq` eq appl_0 kl_V1447)
case kl_if_1 of
Atom (B (True)) -> do let !appl_2 = Atom Nil
kl_V1448 `pseq` (appl_2 `pseq` klCons kl_V1448 appl_2)
Atom (B (False)) -> do !kl_if_3 <- let pat_cond_4 kl_V1447 kl_V1447h kl_V1447t = do !kl_if_5 <- let pat_cond_6 kl_V1447h kl_V1447hh kl_V1447ht = do !kl_if_7 <- let pat_cond_8 kl_V1447hh kl_V1447hhh kl_V1447hht = do !kl_if_9 <- let pat_cond_10 = do !kl_if_11 <- let pat_cond_12 kl_V1447hht kl_V1447hhth kl_V1447hhtt = do !kl_if_13 <- let pat_cond_14 = do let !appl_15 = Atom Nil
!kl_if_16 <- appl_15 `pseq` (kl_V1447hhtt `pseq` eq appl_15 kl_V1447hhtt)
!kl_if_17 <- case kl_if_16 of
Atom (B (True)) -> do !kl_if_18 <- let pat_cond_19 kl_V1447ht kl_V1447hth kl_V1447htt = do !kl_if_20 <- let pat_cond_21 kl_V1447hth kl_V1447hthh kl_V1447htht = do !kl_if_22 <- let pat_cond_23 = do !kl_if_24 <- let pat_cond_25 kl_V1447htht kl_V1447hthth kl_V1447hthtt = do let !appl_26 = Atom Nil
!kl_if_27 <- appl_26 `pseq` (kl_V1447hthtt `pseq` eq appl_26 kl_V1447hthtt)
!kl_if_28 <- case kl_if_27 of
Atom (B (True)) -> do let !appl_29 = Atom Nil
!kl_if_30 <- appl_29 `pseq` (kl_V1447htt `pseq` eq appl_29 kl_V1447htt)
case kl_if_30 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_28 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_31 = do do return (Atom (B False))
in case kl_V1447htht of
!(kl_V1447htht@(Cons (!kl_V1447hthth)
(!kl_V1447hthtt))) -> pat_cond_25 kl_V1447htht kl_V1447hthth kl_V1447hthtt
_ -> pat_cond_31
case kl_if_24 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_32 = do do return (Atom (B False))
in case kl_V1447hthh of
kl_V1447hthh@(Atom (UnboundSym "shen.choicepoint!")) -> pat_cond_23
kl_V1447hthh@(ApplC (PL "shen.choicepoint!"
_)) -> pat_cond_23
kl_V1447hthh@(ApplC (Func "shen.choicepoint!"
_)) -> pat_cond_23
_ -> pat_cond_32
case kl_if_22 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_33 = do do return (Atom (B False))
in case kl_V1447hth of
!(kl_V1447hth@(Cons (!kl_V1447hthh)
(!kl_V1447htht))) -> pat_cond_21 kl_V1447hth kl_V1447hthh kl_V1447htht
_ -> pat_cond_33
case kl_if_20 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_34 = do do return (Atom (B False))
in case kl_V1447ht of
!(kl_V1447ht@(Cons (!kl_V1447hth)
(!kl_V1447htt))) -> pat_cond_19 kl_V1447ht kl_V1447hth kl_V1447htt
_ -> pat_cond_34
case kl_if_18 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_17 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_35 = do do return (Atom (B False))
in case kl_V1447hhth of
kl_V1447hhth@(Atom (UnboundSym "shen.tests")) -> pat_cond_14
kl_V1447hhth@(ApplC (PL "shen.tests"
_)) -> pat_cond_14
kl_V1447hhth@(ApplC (Func "shen.tests"
_)) -> pat_cond_14
_ -> pat_cond_35
case kl_if_13 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_36 = do do return (Atom (B False))
in case kl_V1447hht of
!(kl_V1447hht@(Cons (!kl_V1447hhth)
(!kl_V1447hhtt))) -> pat_cond_12 kl_V1447hht kl_V1447hhth kl_V1447hhtt
_ -> pat_cond_36
case kl_if_11 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_37 = do do return (Atom (B False))
in case kl_V1447hhh of
kl_V1447hhh@(Atom (UnboundSym ":")) -> pat_cond_10
kl_V1447hhh@(ApplC (PL ":"
_)) -> pat_cond_10
kl_V1447hhh@(ApplC (Func ":"
_)) -> pat_cond_10
_ -> pat_cond_37
case kl_if_9 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_38 = do do return (Atom (B False))
in case kl_V1447hh of
!(kl_V1447hh@(Cons (!kl_V1447hhh)
(!kl_V1447hht))) -> pat_cond_8 kl_V1447hh kl_V1447hhh kl_V1447hht
_ -> pat_cond_38
case kl_if_7 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_39 = do do return (Atom (B False))
in case kl_V1447h of
!(kl_V1447h@(Cons (!kl_V1447hh)
(!kl_V1447ht))) -> pat_cond_6 kl_V1447h kl_V1447hh kl_V1447ht
_ -> pat_cond_39
case kl_if_5 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_40 = do do return (Atom (B False))
in case kl_V1447 of
!(kl_V1447@(Cons (!kl_V1447h)
(!kl_V1447t))) -> pat_cond_4 kl_V1447 kl_V1447h kl_V1447t
_ -> pat_cond_40
case kl_if_3 of
Atom (B (True)) -> do !appl_41 <- kl_V1447 `pseq` hd kl_V1447
!appl_42 <- appl_41 `pseq` tl appl_41
!appl_43 <- appl_42 `pseq` klCons (Atom (B True)) appl_42
!appl_44 <- kl_V1447 `pseq` tl kl_V1447
!appl_45 <- appl_44 `pseq` (kl_V1448 `pseq` kl_shen_case_form appl_44 kl_V1448)
appl_43 `pseq` (appl_45 `pseq` klCons appl_43 appl_45)
Atom (B (False)) -> do !kl_if_46 <- let pat_cond_47 kl_V1447 kl_V1447h kl_V1447t = do !kl_if_48 <- let pat_cond_49 kl_V1447h kl_V1447hh kl_V1447ht = do !kl_if_50 <- let pat_cond_51 kl_V1447hh kl_V1447hhh kl_V1447hht = do !kl_if_52 <- let pat_cond_53 = do !kl_if_54 <- let pat_cond_55 kl_V1447hht kl_V1447hhth kl_V1447hhtt = do !kl_if_56 <- let pat_cond_57 = do let !appl_58 = Atom Nil
!kl_if_59 <- appl_58 `pseq` (kl_V1447hhtt `pseq` eq appl_58 kl_V1447hhtt)
!kl_if_60 <- case kl_if_59 of
Atom (B (True)) -> do !kl_if_61 <- let pat_cond_62 kl_V1447ht kl_V1447hth kl_V1447htt = do let !appl_63 = Atom Nil
!kl_if_64 <- appl_63 `pseq` (kl_V1447htt `pseq` eq appl_63 kl_V1447htt)
case kl_if_64 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_65 = do do return (Atom (B False))
in case kl_V1447ht of
!(kl_V1447ht@(Cons (!kl_V1447hth)
(!kl_V1447htt))) -> pat_cond_62 kl_V1447ht kl_V1447hth kl_V1447htt
_ -> pat_cond_65
case kl_if_61 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
case kl_if_60 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_66 = do do return (Atom (B False))
in case kl_V1447hhth of
kl_V1447hhth@(Atom (UnboundSym "shen.tests")) -> pat_cond_57
kl_V1447hhth@(ApplC (PL "shen.tests"
_)) -> pat_cond_57
kl_V1447hhth@(ApplC (Func "shen.tests"
_)) -> pat_cond_57
_ -> pat_cond_66
case kl_if_56 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_67 = do do return (Atom (B False))
in case kl_V1447hht of
!(kl_V1447hht@(Cons (!kl_V1447hhth)
(!kl_V1447hhtt))) -> pat_cond_55 kl_V1447hht kl_V1447hhth kl_V1447hhtt
_ -> pat_cond_67
case kl_if_54 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_68 = do do return (Atom (B False))
in case kl_V1447hhh of
kl_V1447hhh@(Atom (UnboundSym ":")) -> pat_cond_53
kl_V1447hhh@(ApplC (PL ":"
_)) -> pat_cond_53
kl_V1447hhh@(ApplC (Func ":"
_)) -> pat_cond_53
_ -> pat_cond_68
case kl_if_52 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_69 = do do return (Atom (B False))
in case kl_V1447hh of
!(kl_V1447hh@(Cons (!kl_V1447hhh)
(!kl_V1447hht))) -> pat_cond_51 kl_V1447hh kl_V1447hhh kl_V1447hht
_ -> pat_cond_69
case kl_if_50 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_70 = do do return (Atom (B False))
in case kl_V1447h of
!(kl_V1447h@(Cons (!kl_V1447hh)
(!kl_V1447ht))) -> pat_cond_49 kl_V1447h kl_V1447hh kl_V1447ht
_ -> pat_cond_70
case kl_if_48 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_71 = do do return (Atom (B False))
in case kl_V1447 of
!(kl_V1447@(Cons (!kl_V1447h)
(!kl_V1447t))) -> pat_cond_47 kl_V1447 kl_V1447h kl_V1447t
_ -> pat_cond_71
case kl_if_46 of
Atom (B (True)) -> do !appl_72 <- kl_V1447 `pseq` hd kl_V1447
!appl_73 <- appl_72 `pseq` tl appl_72
!appl_74 <- appl_73 `pseq` klCons (Atom (B True)) appl_73
let !appl_75 = Atom Nil
appl_74 `pseq` (appl_75 `pseq` klCons appl_74 appl_75)
Atom (B (False)) -> do !kl_if_76 <- let pat_cond_77 kl_V1447 kl_V1447h kl_V1447t = do !kl_if_78 <- let pat_cond_79 kl_V1447h kl_V1447hh kl_V1447ht = do !kl_if_80 <- let pat_cond_81 kl_V1447hh kl_V1447hhh kl_V1447hht = do !kl_if_82 <- let pat_cond_83 = do !kl_if_84 <- let pat_cond_85 kl_V1447hht kl_V1447hhth kl_V1447hhtt = do !kl_if_86 <- let pat_cond_87 = do !kl_if_88 <- let pat_cond_89 kl_V1447ht kl_V1447hth kl_V1447htt = do let !appl_90 = Atom Nil
!kl_if_91 <- appl_90 `pseq` (kl_V1447htt `pseq` eq appl_90 kl_V1447htt)
case kl_if_91 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_92 = do do return (Atom (B False))
in case kl_V1447ht of
!(kl_V1447ht@(Cons (!kl_V1447hth)
(!kl_V1447htt))) -> pat_cond_89 kl_V1447ht kl_V1447hth kl_V1447htt
_ -> pat_cond_92
case kl_if_88 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_93 = do do return (Atom (B False))
in case kl_V1447hhth of
kl_V1447hhth@(Atom (UnboundSym "shen.tests")) -> pat_cond_87
kl_V1447hhth@(ApplC (PL "shen.tests"
_)) -> pat_cond_87
kl_V1447hhth@(ApplC (Func "shen.tests"
_)) -> pat_cond_87
_ -> pat_cond_93
case kl_if_86 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_94 = do do return (Atom (B False))
in case kl_V1447hht of
!(kl_V1447hht@(Cons (!kl_V1447hhth)
(!kl_V1447hhtt))) -> pat_cond_85 kl_V1447hht kl_V1447hhth kl_V1447hhtt
_ -> pat_cond_94
case kl_if_84 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_95 = do do return (Atom (B False))
in case kl_V1447hhh of
kl_V1447hhh@(Atom (UnboundSym ":")) -> pat_cond_83
kl_V1447hhh@(ApplC (PL ":"
_)) -> pat_cond_83
kl_V1447hhh@(ApplC (Func ":"
_)) -> pat_cond_83
_ -> pat_cond_95
case kl_if_82 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_96 = do do return (Atom (B False))
in case kl_V1447hh of
!(kl_V1447hh@(Cons (!kl_V1447hhh)
(!kl_V1447hht))) -> pat_cond_81 kl_V1447hh kl_V1447hhh kl_V1447hht
_ -> pat_cond_96
case kl_if_80 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_97 = do do return (Atom (B False))
in case kl_V1447h of
!(kl_V1447h@(Cons (!kl_V1447hh)
(!kl_V1447ht))) -> pat_cond_79 kl_V1447h kl_V1447hh kl_V1447ht
_ -> pat_cond_97
case kl_if_78 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_98 = do do return (Atom (B False))
in case kl_V1447 of
!(kl_V1447@(Cons (!kl_V1447h)
(!kl_V1447t))) -> pat_cond_77 kl_V1447 kl_V1447h kl_V1447t
_ -> pat_cond_98
case kl_if_76 of
Atom (B (True)) -> do !appl_99 <- kl_V1447 `pseq` hd kl_V1447
!appl_100 <- appl_99 `pseq` hd appl_99
!appl_101 <- appl_100 `pseq` tl appl_100
!appl_102 <- appl_101 `pseq` tl appl_101
!appl_103 <- appl_102 `pseq` kl_shen_embed_and appl_102
!appl_104 <- kl_V1447 `pseq` hd kl_V1447
!appl_105 <- appl_104 `pseq` tl appl_104
!appl_106 <- appl_103 `pseq` (appl_105 `pseq` klCons appl_103 appl_105)
!appl_107 <- kl_V1447 `pseq` tl kl_V1447
!appl_108 <- appl_107 `pseq` (kl_V1448 `pseq` kl_shen_case_form appl_107 kl_V1448)
appl_106 `pseq` (appl_108 `pseq` klCons appl_106 appl_108)
Atom (B (False)) -> do do let !aw_109 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_109 [ApplC (wrapNamed "shen.case-form" kl_shen_case_form)]
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
_ -> throwError "if: expected boolean"
kl_shen_embed_and :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_embed_and (!kl_V1450) = do !kl_if_0 <- let pat_cond_1 kl_V1450 kl_V1450h kl_V1450t = do let !appl_2 = Atom Nil
!kl_if_3 <- appl_2 `pseq` (kl_V1450t `pseq` eq appl_2 kl_V1450t)
case kl_if_3 of
Atom (B (True)) -> do return (Atom (B True))
Atom (B (False)) -> do do return (Atom (B False))
_ -> throwError "if: expected boolean"
pat_cond_4 = do do return (Atom (B False))
in case kl_V1450 of
!(kl_V1450@(Cons (!kl_V1450h)
(!kl_V1450t))) -> pat_cond_1 kl_V1450 kl_V1450h kl_V1450t
_ -> pat_cond_4
case kl_if_0 of
Atom (B (True)) -> do kl_V1450 `pseq` hd kl_V1450
Atom (B (False)) -> do let pat_cond_5 kl_V1450 kl_V1450h kl_V1450t = do !appl_6 <- kl_V1450t `pseq` kl_shen_embed_and kl_V1450t
let !appl_7 = Atom Nil
!appl_8 <- appl_6 `pseq` (appl_7 `pseq` klCons appl_6 appl_7)
!appl_9 <- kl_V1450h `pseq` (appl_8 `pseq` klCons kl_V1450h appl_8)
appl_9 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "and")) appl_9
pat_cond_10 = do do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")
applyWrapper aw_11 [ApplC (wrapNamed "shen.embed-and" kl_shen_embed_and)]
in case kl_V1450 of
!(kl_V1450@(Cons (!kl_V1450h)
(!kl_V1450t))) -> pat_cond_5 kl_V1450 kl_V1450h kl_V1450t
_ -> pat_cond_10
_ -> throwError "if: expected boolean"
kl_shen_err_condition :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_err_condition (!kl_V1452) = do let !appl_0 = Atom Nil
!appl_1 <- kl_V1452 `pseq` (appl_0 `pseq` klCons kl_V1452 appl_0)
!appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")) appl_1
let !appl_3 = Atom Nil
!appl_4 <- appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3)
appl_4 `pseq` klCons (Atom (B True)) appl_4
kl_shen_sys_error :: Core.Types.KLValue ->
Core.Types.KLContext Core.Types.Env Core.Types.KLValue
kl_shen_sys_error (!kl_V1454) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")
!appl_1 <- kl_V1454 `pseq` applyWrapper aw_0 [kl_V1454,
Core.Types.Atom (Core.Types.Str ": unexpected argument\n"),
Core.Types.Atom (Core.Types.UnboundSym "shen.a")]
!appl_2 <- appl_1 `pseq` cn (Core.Types.Atom (Core.Types.Str "system function ")) appl_1
appl_2 `pseq` simpleError appl_2
expr1 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue
expr1 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))