1 {-# OPTIONS_GHC -fno-warn-unused-matches -fno-warn-unused-binds -fno-warn-unused-imports #-}
2 module CoqPass ( coqPassCoreToString, coqPassCoreToCore )
4 import qualified Unique
5 import qualified UniqSupply
6 import qualified MkCore
7 import qualified TysWiredIn
8 import qualified TysPrim
9 import qualified Outputable
10 import qualified PrelNames
11 import qualified OccName
13 import qualified Literal
15 import qualified TypeRep
16 import qualified DataCon
17 import qualified TyCon
18 import qualified Coercion
21 import qualified FastString
22 import qualified BasicTypes
23 import qualified DataCon
24 import qualified CoreSyn
25 import qualified CoreUtils
26 import qualified Class
27 import qualified Data.Char
28 import qualified Data.List
29 import qualified Data.Ord
30 import qualified Data.Typeable
31 import Data.Bits ((.&.), shiftL, (.|.))
32 import Prelude ( (++), (+), (==), Show, show, (.), ($) )
33 import qualified Prelude
34 import qualified GHC.Base
35 import qualified System.IO.Unsafe
37 getTyConTyVars :: TyCon.TyCon -> [Var.TyVar]
39 if TyCon.isFunTyCon tc
41 else if TyCon.isPrimTyCon tc
43 else TyCon.tyConTyVars tc
45 cmpAlts :: (CoreSyn.AltCon,[Var.Var],CoreSyn.Expr Var.Var) -> (CoreSyn.AltCon,[Var.Var],CoreSyn.Expr Var.Var) -> Data.Ord.Ordering
46 cmpAlts (CoreSyn.DEFAULT,_,_) _ = Data.Ord.LT
47 cmpAlts _ (CoreSyn.DEFAULT,_,_) = Data.Ord.GT
48 cmpAlts (a1,_,_) (a2,_,_) = Data.Ord.compare a2 a1
50 sortAlts :: [(CoreSyn.AltCon,[Var.Var],CoreSyn.Expr Var.Var)] -> [(CoreSyn.AltCon,[Var.Var],CoreSyn.Expr Var.Var)]
51 sortAlts x = Data.List.sortBy (\a b -> if a `CoreSyn.ltAlt` b then Data.Ord.LT else Data.Ord.GT) x
53 coreVarToWeakVar :: Var.Var -> WeakVar
54 coreVarToWeakVar v | Id.isId v = WExprVar (WeakExprVar v (errOrFail (coreTypeToWeakType (Var.varType v))))
55 coreVarToWeakVar v | Var.isTyVar v = WTypeVar (WeakTypeVar v (coreKindToKind (Var.varType v)))
56 coreVarToWeakVar v | Var.isCoVar v
57 = WCoerVar (WeakCoerVar v
58 (errOrFail (coreTypeToWeakType (Prelude.fst (Coercion.coercionKind (Var.varType v)))))
59 (errOrFail (coreTypeToWeakType (Prelude.snd (Coercion.coercionKind (Var.varType v))))))
61 Prelude.error "Var.Var that is neither an expression variable, type variable, nor coercion variable!"
63 errOrFail :: OrError t -> t
65 errOrFail (Error s) = Prelude.error s
67 rawTyFunKind :: TyCon.TyCon -> ( [Kind] , Kind )
68 rawTyFunKind tc = ((Prelude.map coreKindToKind (Prelude.take (TyCon.tyConArity tc) argk))
70 coreKindToKind (Coercion.mkArrowKinds (Prelude.drop (TyCon.tyConArity tc) argk) retk))
71 where (argk,retk) = Coercion.splitKindFunTys (TyCon.tyConKind tc)
73 tyConOrTyFun :: TyCon.TyCon -> Prelude.Either TyCon.TyCon TyCon.TyCon
75 if n == TysPrim.statePrimTyCon -- special-purpose hack treat State# as a type family since it has kind *->* but no tyvars
77 else if TyCon.isFamInstTyCon n
79 else if TyCon.isSynTyCon n
83 nat2int :: Nat -> Prelude.Int
85 nat2int (S x) = 1 + (nat2int x)
87 natToString :: Nat -> Prelude.String
88 natToString n = show (nat2int n)
90 sanitizeForLatex :: Prelude.String -> Prelude.String
91 sanitizeForLatex [] = []
92 sanitizeForLatex ('_':x) = "\\_"++(sanitizeForLatex x)
93 sanitizeForLatex ('$':x) = "\\$"++(sanitizeForLatex x)
94 sanitizeForLatex ('#':x) = "\\#"++(sanitizeForLatex x)
95 sanitizeForLatex (c:x) = c:(sanitizeForLatex x)
97 kindToCoreKind :: Kind -> TypeRep.Kind
98 kindToCoreKind KindStar = TypeRep.liftedTypeKind
99 kindToCoreKind (KindArrow k1 k2) = Coercion.mkArrowKind (kindToCoreKind k1) (kindToCoreKind k2)
100 kindToCoreKind k = Prelude.error ((Prelude.++)
101 "kindToCoreKind does not know how to handle kind "
103 coreKindToKind :: TypeRep.Kind -> Kind
105 case Coercion.splitKindFunTy_maybe k of
106 Prelude.Just (k1,k2) -> KindArrow (coreKindToKind k1) (coreKindToKind k2)
108 if (Coercion.isLiftedTypeKind k) then KindStar
109 else if (Coercion.isUnliftedTypeKind k) then KindStar
110 else if (Coercion.isArgTypeKind k) then KindStar
111 else if (Coercion.isUbxTupleKind k) then KindStar
112 else if (Coercion.isOpenTypeKind k) then KindStar
114 -- The "subkinding" in GHC is not dealt with in System FC, and dealing
115 -- with it is not actually as simple as you'd think.
117 -- else if (Coercion.isUnliftedTypeKind k) then KindUnliftedType
118 -- else if (Coercion.isOpenTypeKind k) then KindOpenType
119 -- else if (Coercion.isArgTypeKind k) then KindArgType
120 -- else if (Coercion.isUbxTupleKind k) then KindUnboxedTuple
122 else if (Coercion.isTySuperKind k) then Prelude.error "coreKindToKind got the kind-of-the-kind-of-types"
123 else if (Coercion.isCoSuperKind k) then Prelude.error "coreKindToKind got the kind-of-the-kind-of-coercions"
124 else Prelude.error ((Prelude.++) "coreKindToKind got an unknown kind: "
125 (Outputable.showSDoc (Outputable.ppr k)))
126 outputableToString :: Outputable.Outputable a => a -> Prelude.String
127 outputableToString = (\x -> Outputable.showSDocDebug (Outputable.ppr x))
129 coreViewDeep :: Type.Type -> Type.Type
132 TypeRep.TyVarTy tv -> TypeRep.TyVarTy tv
133 TypeRep.FunTy arg res -> TypeRep.FunTy (coreViewDeep arg) (coreViewDeep res)
134 TypeRep.AppTy fun arg -> TypeRep.AppTy (coreViewDeep fun) (coreViewDeep arg)
135 TypeRep.ForAllTy fun arg -> TypeRep.ForAllTy fun (coreViewDeep arg)
136 TypeRep.TyConApp tc tys -> let t' = TypeRep.TyConApp tc (Prelude.map coreViewDeep tys)
137 in case Type.coreView t' of
138 Prelude.Nothing -> t'
139 Prelude.Just t'' -> t''
140 TypeRep.PredTy p -> case Type.coreView t of
141 Prelude.Nothing -> TypeRep.PredTy p
142 Prelude.Just t' -> t'
144 coreCoercionToWeakCoercion :: Type.Type -> WeakCoercion
145 coreCoercionToWeakCoercion c =
146 WCoUnsafe (errOrFail (coreTypeToWeakType t1)) (errOrFail (coreTypeToWeakType t2))
148 (t1,t2) = Coercion.coercionKind c
150 -- REMEMBER: cotycon applications may be oversaturated
152 TypeRep.TyVarTy v -> WCoVar (WeakCoerVar v (Prelude.error "FIXME") (Prelude.error "FIXME") (Prelude.error "FIXME"))
153 TypeRep.AppTy t1 t2 -> WCoApp (coreCoercionToWeakCoercion t1) (coreCoercionToWeakCoercion t2)
154 TypeRep.TyConApp tc t ->
155 case TyCon.isCoercionTyCon_maybe tc of
156 Prelude.Nothing -> Prelude.error ((Prelude.++) "coreCoercionToWeakCoercion got isCoercionTyCon_maybe " (outputableToString c))
157 Prelude.Just (_, ctcd) ->
159 (TyCon.CoTrans , [x,y] ) -> WCoComp (coreCoercionToWeakCoercion x) (coreCoercionToWeakCoercion y)
160 (TyCon.CoSym , [x] ) -> WCoSym (coreCoercionToWeakCoercion x)
161 (TyCon.CoLeft , [x] ) -> WCoLeft (coreCoercionToWeakCoercion x)
162 (TyCon.CoRight , [x] ) -> WCoLeft (coreCoercionToWeakCoercion x)
163 -- (TyCon.CoUnsafe, [t1, t2 ] ) -> WCoUnsafe (coreTypeToWeakType t1) (coreTypeToWeakType t2)
164 (TyCon.CoTrans , [] ) -> Prelude.error "CoTrans is not in post-publication-appendix SystemFC1"
165 (TyCon.CoCsel1 , [] ) -> Prelude.error "CoCsel1 is not in post-publication-appendix SystemFC1"
166 (TyCon.CoCsel2 , [] ) -> Prelude.error "CoCsel2 is not in post-publication-appendix SystemFC1"
167 (TyCon.CoCselR , [] ) -> Prelude.error "CoCselR is not in post-publication-appendix SystemFC1"
168 (TyCon.CoInst , [] ) -> Prelude.error "CoInst is not in post-publication-appendix SystemFC1"
169 (TyCon.CoAxiom _ _ _ , _ ) -> Prelude.error "CoAxiom is not yet implemented (FIXME)"
170 ( _, [ t1 , t2 ]) -> WCoUnsafe (errOrFail (coreTypeToWeakType t1)) (errOrFail (coreTypeToWeakType t2))
171 _ -> Prelude.error ((Prelude.++) "coreCoercionToWeakCoercion got " (outputableToString c))
172 _ -> Prelude.error ((Prelude.++) "coreCoercionToWeakCoercion got " (outputableToString c))
174 -- TypeRep.ForAllTy v t -> WCoAll (Prelude.error "FIXME") (coreTypeToWeakType t)
175 -- FIXME x y -> WCoAppT (coreCoercionToWeakCoercion x) (coreCoercionToWeakType y)
176 -- CoreSyn.Type t -> WCoType (coreTypeToWeakType t)
179 weakCoercionToCoreCoercion :: CoreCoercion -> Type.Type
180 | WCoVar (weakCoerVar _ _ t1 t2) => (t1,t2)
181 | WCoType t => Prelude_error "FIXME WCoType"
182 | WCoApp c1 c2 => Prelude_error "FIXME WCoApp"
183 | WCoAppT c t => Prelude_error "FIXME WCoAppT"
184 | WCoAll k f => Prelude_error "FIXME WCoAll"
185 | WCoSym c => let (t2,t1) := weakCoercionTypes c in (t1,t2)
186 | WCoComp c1 c2 => Prelude_error "FIXME WCoComp"
187 | WCoLeft c => Prelude_error "FIXME WCoLeft"
188 | WCoRight c => Prelude_error "FIXME WCoRight"
189 | WCoUnsafe t1 t2 => (t1,t2)
192 {-# NOINLINE trace #-}
193 trace :: Prelude.String -> a -> a
196 --trace = Debug.Trace.trace
198 --trace msg x = System.IO.Unsafe.unsafePerformIO $ Prelude.return x
200 --trace msg x = System.IO.Unsafe.unsafePerformIO $
201 -- (Prelude.>>=) (System.IO.hPutStrLn System.IO.stdout msg) (\_ -> Prelude.return x)
202 --trace msg x = System.IO.Unsafe.unsafePerformIO $
203 -- (Prelude.>>=) (System.IO.hPutStr System.IO.stdout " ") (\_ -> Prelude.return x)
206 {- -- used for extracting strings WITHOUT the patch for Coq
208 (\ b0 b1 b2 b3 b4 b5 b6 b7 ->
209 let f b i = if b then 1 `shiftL` i else 0
210 in Data.Char.chr (f b0 0 .|. f b1 1 .|. f b2 2 .|. f b3 3 .|. f b4 4 .|. f b5 5 .|. f b6 6 .|. f b7 7))
213 -- I'm leaving this here (commented out) in case I ever need it again)
214 --checkTypeEquality :: Type.Type -> Type.Type -> Prelude.Bool
215 --checkTypeEquality t1 t2 = Type.tcEqType (Type.expandTypeSynonyms t1) (Type.expandTypeSynonyms t2)
216 {-# OPTIONS_GHC -cpp -fglasgow-exts #-}
217 {- For Hugs, use the option -F"cpp -P -traditional" -}
221 #ifdef __GLASGOW_HASKELL__
222 unsafeCoerce = GHC.Base.unsafeCoerce#
225 unsafeCoerce = IOExts.unsafeCoerce
228 __ = Prelude.error "Logical or arity value used"
232 (trace "X" (Prelude.error "absurd case"))
234 eq_rect :: a1 -> a2 -> a1 -> a2
238 eq_rec :: a1 -> a2 -> a1 -> a2
240 (trace "X" ((trace "X" (eq_rect (trace "X" (x)) (trace "X" (f)) (trace "X" (y))))))
242 eq_rec_r :: a1 -> a2 -> a1 -> a2
244 (trace "X" ((trace "X" (eq_rec (trace "X" (x)) (trace "X" (h)) (trace "X" (y))))))
246 eq_rect_r :: a1 -> a2 -> a1 -> a2
248 (trace "X" ((trace "X" (eq_rect (trace "X" (x)) (trace "X" (h)) (trace "X" (y))))))
254 nat_rect :: a1 -> (Nat -> a1 -> a1) -> Nat -> a1
256 (trace "X" (case (trace "X" (n)) of {
257 O -> (trace "X" (f));
258 S n0 -> (trace "X" ((trace "X" (f0 (trace "X" (n0)) (trace "X" ((trace "X" ((nat_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (n0)))))))))))}))
260 nat_rec :: a1 -> (Nat -> a1 -> a1) -> Nat -> a1
262 (trace "X" (nat_rect))
264 fst :: ((,) a1 a2) -> a1
266 (trace "X" (case (trace "X" (p)) of {
267 (,) x y -> (trace "X" (x))}))
269 snd :: ((,) a1 a2) -> a2
271 (trace "X" (case (trace "X" (p)) of {
272 (,) x y -> (trace "X" (y))}))
274 list_rect :: a2 -> (a1 -> (([]) a1) -> a2 -> a2) -> (([]) a1) -> a2
276 (trace "X" (case (trace "X" (l)) of {
277 ([]) -> (trace "X" (f));
278 (:) y l0 -> (trace "X" ((trace "X" (f0 (trace "X" (y)) (trace "X" (l0)) (trace "X" ((trace "X" ((list_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (l0)))))))))))}))
280 list_rec :: a2 -> (a1 -> (([]) a1) -> a2 -> a2) -> (([]) a1) -> a2
282 (trace "X" (list_rect))
284 length :: (([]) a1) -> Nat
286 (trace "X" (case (trace "X" (l)) of {
287 ([]) -> (trace "X" (O));
288 (:) y l' -> (trace "X" (S (trace "X" ((trace "X" ((length (trace "X" (l')))))))))}))
290 app :: (([]) a1) -> (([]) a1) -> ([]) a1
292 (trace "X" (case (trace "X" (l)) of {
293 ([]) -> (trace "X" (m));
294 (:) a l1 -> (trace "X" ((:) (trace "X" (a)) (trace "X" ((trace "X" ((app (trace "X" (l1)) (trace "X" (m)))))))))}))
298 -- singleton inductive, whose constructor was exist
303 projT1 :: (SigT a1 a2) -> a1
305 (trace "X" (case (trace "X" (x)) of {
306 ExistT a p -> (trace "X" (a))}))
308 projT2 :: (SigT a1 a2) -> a2
310 (trace "X" (case (trace "X" (x)) of {
311 ExistT x0 h -> (trace "X" (h))}))
313 sumbool_rect :: (() -> a1) -> (() -> a1) -> Prelude.Bool -> a1
314 sumbool_rect f f0 s =
315 (trace "X" (case (trace "X" (s)) of {
316 Prelude.True -> (trace "X" ((trace "X" (f (trace "X" (__))))));
317 Prelude.False -> (trace "X" ((trace "X" (f0 (trace "X" (__))))))}))
319 sumbool_rec :: (() -> a1) -> (() -> a1) -> Prelude.Bool -> a1
321 (trace "X" (sumbool_rect))
323 plus :: Nat -> Nat -> Nat
325 (trace "X" (case (trace "X" (n)) of {
326 O -> (trace "X" (m));
327 S p -> (trace "X" (S (trace "X" ((trace "X" ((plus (trace "X" (p)) (trace "X" (m)))))))))}))
329 eq_nat_dec :: Nat -> Nat -> Prelude.Bool
331 (trace "X" ((trace "X" (nat_rec (trace "X" ((\m ->
332 (trace "X" (case (trace "X" (m)) of {
333 O -> (trace "X" (Prelude.True));
334 S m0 -> (trace "X" (Prelude.False))}))))) (trace "X" ((\n0 iHn m ->
335 (trace "X" (case (trace "X" (m)) of {
336 O -> (trace "X" (Prelude.False));
337 S m0 -> (trace "X" ((trace "X" (sumbool_rec (trace "X" ((\_ -> (trace "X" (Prelude.True))))) (trace "X" ((\_ -> (trace "X" (Prelude.False))))) (trace "X" ((trace "X" ((iHn (trace "X" (m0)))))))))))}))))) (trace "X" (n))))))
339 map :: (a1 -> a2) -> (([]) a1) -> ([]) a2
341 (trace "X" (case (trace "X" (l)) of {
342 ([]) -> (trace "X" (([])));
343 (:) a t -> (trace "X" ((:) (trace "X" ((trace "X" ((f (trace "X" (a))))))) (trace "X" ((trace "X" ((map (trace "X" (f)) (trace "X" (t)))))))))}))
345 fold_left :: (a1 -> a2 -> a1) -> (([]) a2) -> a1 -> a1
347 (trace "X" (case (trace "X" (l)) of {
348 ([]) -> (trace "X" (a0));
349 (:) b t -> (trace "X" ((trace "X" (fold_left (trace "X" (f)) (trace "X" (t)) (trace "X" ((trace "X" ((f (trace "X" (a0)) (trace "X" (b)))))))))))}))
351 fold_right :: (a2 -> a1 -> a1) -> a1 -> (([]) a2) -> a1
353 (trace "X" (case (trace "X" (l)) of {
354 ([]) -> (trace "X" (a0));
355 (:) b t -> (trace "X" ((trace "X" (f (trace "X" (b)) (trace "X" ((trace "X" ((fold_right (trace "X" (f)) (trace "X" (a0)) (trace "X" (t)))))))))))}))
357 append :: Prelude.String -> Prelude.String -> Prelude.String
359 (trace "X" (case (trace "X" (s1)) of {
360 [] -> (trace "X" (s2));
361 (:) c s1' -> (trace "X" ((:) (trace "X" (c)) (trace "X" ((trace "X" ((append (trace "X" (s1')) (trace "X" (s2)))))))))}))
363 type EqDecider t = t -> t -> Prelude.Bool
366 t -> t -> Prelude.Bool
367 -- singleton inductive, whose constructor was Build_EqDecidable
369 eqd_dec :: (EqDecidable a1) -> a1 -> a1 -> Prelude.Bool
370 eqd_dec eqDecidable =
371 (trace "X" (eqDecidable))
373 eqDecidableOption :: (EqDecidable a1) -> EqDecidable (Prelude.Maybe a1)
374 eqDecidableOption eQDT v1 v2 =
375 (trace "X" (case (trace "X" (v1)) of {
377 (trace "X" (case (trace "X" (v2)) of {
379 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (eQDT)) (trace "X" (t)) (trace "X" (t0))))))} in
380 (trace "X" (case (trace "X" (s)) of {
381 Prelude.True -> (trace "X" ((trace "X" (eq_rec_r (trace "X" (t0)) (trace "X" (Prelude.True)) (trace "X" (t))))));
382 Prelude.False -> (trace "X" (Prelude.False))}))));
383 Prelude.Nothing -> (trace "X" (Prelude.False))}));
385 (trace "X" (case (trace "X" (v2)) of {
386 Prelude.Just t -> (trace "X" (Prelude.False));
387 Prelude.Nothing -> (trace "X" (Prelude.True))}))}))
391 -- singleton inductive, whose constructor was Build_ToString
393 toString :: (ToString a1) -> a1 -> Prelude.String
395 (trace "X" (toString0))
397 type Concatenable t =
399 -- singleton inductive, whose constructor was Build_Concatenable
401 concatenate :: (Concatenable a1) -> a1 -> a1 -> a1
402 concatenate concatenable =
403 (trace "X" (concatenable))
405 concatenableString :: Concatenable Prelude.String
411 | T_Branch (Tree a) (Tree a)
413 tree_rect :: (a1 -> a2) -> ((Tree a1) -> a2 -> (Tree a1) -> a2 -> a2) -> (Tree a1) -> a2
415 (trace "X" (case (trace "X" (t)) of {
416 T_Leaf y -> (trace "X" ((trace "X" (f (trace "X" (y))))));
417 T_Branch t0 t1 -> (trace "X" ((trace "X" (f0 (trace "X" (t0)) (trace "X" ((trace "X" ((tree_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (t0))))))) (trace "X" (t1)) (trace "X" ((trace "X" ((tree_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (t1)))))))))))}))
419 mapTree :: (a1 -> a2) -> (Tree a1) -> Tree a2
421 (trace "X" (case (trace "X" (t)) of {
422 T_Leaf x -> (trace "X" (T_Leaf (trace "X" ((trace "X" ((f (trace "X" (x)))))))));
423 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapTree (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapTree (trace "X" (f)) (trace "X" (r)))))))))}))
425 mapOptionTree :: (a1 -> a2) -> (Tree (Prelude.Maybe a1)) -> Tree (Prelude.Maybe a2)
427 (trace "X" (case (trace "X" (t)) of {
429 (trace "X" (case (trace "X" (o)) of {
430 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
431 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
432 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (r)))))))))}))
434 mapOptionTreeAndFlatten :: (a1 -> Tree (Prelude.Maybe a2)) -> (Tree (Prelude.Maybe a1)) -> Tree (Prelude.Maybe a2)
435 mapOptionTreeAndFlatten f t =
436 (trace "X" (case (trace "X" (t)) of {
438 (trace "X" (case (trace "X" (o)) of {
439 Prelude.Just x -> (trace "X" ((trace "X" (f (trace "X" (x))))));
440 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
441 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" (f)) (trace "X" (r)))))))))}))
443 reduceTree :: a1 -> (a1 -> a1 -> a1) -> (Tree (Prelude.Maybe a1)) -> a1
444 reduceTree unit0 merge tt =
445 (trace "X" (case (trace "X" (tt)) of {
447 (trace "X" (case (trace "X" (o)) of {
448 Prelude.Just x -> (trace "X" (x));
449 Prelude.Nothing -> (trace "X" (unit0))}));
450 T_Branch b1 b2 -> (trace "X" ((trace "X" (merge (trace "X" ((trace "X" ((reduceTree (trace "X" (unit0)) (trace "X" (merge)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((reduceTree (trace "X" (unit0)) (trace "X" (merge)) (trace "X" (b2)))))))))))}))
452 leaves :: (Tree (Prelude.Maybe a1)) -> ([]) a1
454 (trace "X" (case (trace "X" (t)) of {
456 (trace "X" (case (trace "X" (l)) of {
457 Prelude.Just x -> (trace "X" ((:) (trace "X" (x)) (trace "X" (([])))));
458 Prelude.Nothing -> (trace "X" (([])))}));
459 T_Branch l r -> (trace "X" ((trace "X" (app (trace "X" ((trace "X" ((leaves (trace "X" (l))))))) (trace "X" ((trace "X" ((leaves (trace "X" (r)))))))))))}))
461 unleaves :: (([]) a1) -> Tree (Prelude.Maybe a1)
463 (trace "X" (case (trace "X" (l)) of {
464 ([]) -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
465 (:) a b -> (trace "X" (T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (a)))))))) (trace "X" ((trace "X" ((unleaves (trace "X" (b)))))))))}))
467 unleaves' :: (([]) a1) -> Tree (Prelude.Maybe a1)
469 (trace "X" (case (trace "X" (l)) of {
470 ([]) -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
471 (:) a b -> (trace "X" (T_Branch (trace "X" ((trace "X" ((unleaves' (trace "X" (b))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (a))))))))))}))
473 filter :: (([]) (Prelude.Maybe a1)) -> ([]) a1
475 (trace "X" (case (trace "X" (l)) of {
476 ([]) -> (trace "X" (([])));
478 (trace "X" (case (trace "X" (o)) of {
479 Prelude.Just x -> (trace "X" ((:) (trace "X" (x)) (trace "X" ((trace "X" ((filter (trace "X" (b)))))))));
480 Prelude.Nothing -> (trace "X" ((trace "X" (filter (trace "X" (b))))))}))}))
482 in_decidable :: (EqDecidable a1) -> a1 -> (([]) a1) -> Prelude.Bool
483 in_decidable eqdVV v lv =
484 (trace "X" ((trace "X" (list_rec (trace "X" (Prelude.False)) (trace "X" ((\a lv0 iHlv ->
485 (trace "X" (case (trace "X" (iHlv)) of {
486 Prelude.True -> (trace "X" (Prelude.True));
488 (trace "X" (let {dec = (trace "X" ((trace "X" (eqd_dec (trace "X" (eqdVV)) (trace "X" (v)) (trace "X" (a))))))} in
489 (trace "X" (case (trace "X" (dec)) of {
490 Prelude.True -> (trace "X" ((trace "X" (eq_rec_r (trace "X" (a)) (trace "X" ((\_ -> (trace "X" (Prelude.True))))) (trace "X" (v)) (trace "X" (__))))));
491 Prelude.False -> (trace "X" (Prelude.False))}))))}))))) (trace "X" (lv))))))
493 distinct_decidable :: (EqDecidable a1) -> (([]) a1) -> Prelude.Bool
494 distinct_decidable eqdVV lv =
495 (trace "X" ((trace "X" (list_rec (trace "X" (Prelude.True)) (trace "X" ((\a lv0 iHlv ->
496 (trace "X" (case (trace "X" (iHlv)) of {
498 (trace "X" (let {dec = (trace "X" ((trace "X" (in_decidable (trace "X" (eqdVV)) (trace "X" (a)) (trace "X" (lv0))))))} in
499 (trace "X" (case (trace "X" (dec)) of {
500 Prelude.True -> (trace "X" (Prelude.False));
501 Prelude.False -> (trace "X" (Prelude.True))}))));
502 Prelude.False -> (trace "X" (Prelude.False))}))))) (trace "X" (lv))))))
504 list_eq_dec :: (([]) a1) -> (([]) a1) -> (a1 -> a1 -> Prelude.Bool) -> Prelude.Bool
506 (trace "X" ((trace "X" (list_rect (trace "X" ((\l2 dec ->
507 (trace "X" (case (trace "X" (l2)) of {
508 ([]) -> (trace "X" (Prelude.True));
509 (:) t l3 -> (trace "X" (Prelude.False))}))))) (trace "X" ((\a l2 iHl1 l3 dec ->
510 (trace "X" (case (trace "X" (l3)) of {
511 ([]) -> (trace "X" (Prelude.False));
513 (trace "X" (let {eqx = (trace "X" ((trace "X" (iHl1 (trace "X" (l4)) (trace "X" (dec))))))} in
514 (trace "X" (case (trace "X" (eqx)) of {
516 (trace "X" ((trace "X" (eq_rect_r (trace "X" (l4)) (trace "X" ((\iHl2 ->
517 (trace "X" (let {eqy = (trace "X" ((trace "X" (dec (trace "X" (a)) (trace "X" (b))))))} in
518 (trace "X" (case (trace "X" (eqy)) of {
519 Prelude.True -> (trace "X" ((trace "X" (eq_rec_r (trace "X" (b)) (trace "X" (Prelude.True)) (trace "X" (a))))));
520 Prelude.False -> (trace "X" (Prelude.False))}))))))) (trace "X" (l2)) (trace "X" (iHl1))))));
521 Prelude.False -> (trace "X" (Prelude.False))}))))}))))) (trace "X" (l1))))))
523 eqDecidableList :: (EqDecidable a1) -> EqDecidable (([]) a1)
524 eqDecidableList eqd v1 v2 =
525 (trace "X" ((trace "X" (list_eq_dec (trace "X" (v1)) (trace "X" (v2)) (trace "X" ((trace "X" ((eqd_dec (trace "X" (eqd)))))))))))
530 | Tf_branch (Tree t) (Tree t) (TreeFlags t) (TreeFlags t)
532 mkFlags :: (a1 -> Prelude.Bool) -> (Tree a1) -> TreeFlags a1
534 (trace "X" (case (trace "X" (t)) of {
536 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
537 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
538 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
539 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags (trace "X" (f)) (trace "X" (b2)))))))))}))
541 dropT :: (Tree (Prelude.Maybe a1)) -> (TreeFlags (Prelude.Maybe a1)) -> Tree (Prelude.Maybe a1)
543 (trace "X" (case (trace "X" (tf)) of {
544 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
545 Tf_leaf_false x -> (trace "X" (__U03a3_));
546 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT (trace "X" (b2)) (trace "X" (tb2)))))))))}))
548 liftBoolFunc :: Prelude.Bool -> (a1 -> Prelude.Bool) -> (Prelude.Maybe a1) -> Prelude.Bool
550 (trace "X" (case (trace "X" (t)) of {
551 Prelude.Just x -> (trace "X" ((trace "X" (f (trace "X" (x))))));
552 Prelude.Nothing -> (trace "X" (b))}))
554 tree_eq_dec :: (Tree a1) -> (Tree a1) -> (a1 -> a1 -> Prelude.Bool) -> Prelude.Bool
556 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a l2 dec ->
557 (trace "X" (case (trace "X" (l2)) of {
559 (trace "X" (let {s = (trace "X" ((trace "X" (dec (trace "X" (a)) (trace "X" (t))))))} in
560 (trace "X" (case (trace "X" (s)) of {
561 Prelude.True -> (trace "X" ((trace "X" (eq_rec_r (trace "X" (t)) (trace "X" (Prelude.True)) (trace "X" (a))))));
562 Prelude.False -> (trace "X" (Prelude.False))}))));
563 T_Branch l2_1 l2_2 -> (trace "X" (Prelude.False))}))))) (trace "X" ((\l1_1 iHl1_1 l1_2 iHl1_2 l2 dec ->
564 (trace "X" (case (trace "X" (l2)) of {
565 T_Leaf t -> (trace "X" (Prelude.False));
566 T_Branch l2_1 l2_2 ->
567 (trace "X" (let {s = (trace "X" ((trace "X" (iHl1_1 (trace "X" (l2_1)) (trace "X" (dec))))))} in
568 (trace "X" (case (trace "X" (s)) of {
570 (trace "X" (let {s0 = (trace "X" ((trace "X" (iHl1_2 (trace "X" (l2_2)) (trace "X" (dec))))))} in
571 (trace "X" (case (trace "X" (s0)) of {
572 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (l2_2)) (trace "X" ((\iHl1_3 -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (l2_1)) (trace "X" ((\iHl1_4 -> (trace "X" (Prelude.True))))) (trace "X" (l1_1)) (trace "X" (iHl1_1))))))))) (trace "X" (l1_2)) (trace "X" (iHl1_2))))));
573 Prelude.False -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (l2_1)) (trace "X" ((\iHl1_3 -> (trace "X" (Prelude.False))))) (trace "X" (l1_1)) (trace "X" (iHl1_1))))))}))));
575 (trace "X" (let {s0 = (trace "X" ((trace "X" (iHl1_2 (trace "X" (l2_2)) (trace "X" (dec))))))} in
576 (trace "X" (case (trace "X" (s0)) of {
577 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (l2_2)) (trace "X" ((\iHl1_3 -> (trace "X" (Prelude.False))))) (trace "X" (l1_2)) (trace "X" (iHl1_2))))));
578 Prelude.False -> (trace "X" (Prelude.False))}))))}))))}))))) (trace "X" (l1))))))
580 eqDecidableTree :: (EqDecidable a1) -> EqDecidable (Tree a1)
581 eqDecidableTree eqd v1 v2 =
582 (trace "X" ((trace "X" (tree_eq_dec (trace "X" (v1)) (trace "X" (v2)) (trace "X" ((trace "X" ((eqd_dec (trace "X" (eqd)))))))))))
586 | Vec_cons Nat a (Vec a)
588 vec2list :: Nat -> (Vec a1) -> ([]) a1
590 (trace "X" (case (trace "X" (v)) of {
591 Vec_nil -> (trace "X" (([])));
592 Vec_cons n0 a va -> (trace "X" ((:) (trace "X" (a)) (trace "X" ((trace "X" ((vec2list (trace "X" (n0)) (trace "X" (va)))))))))}))
594 vec_zip :: Nat -> (Vec a1) -> (Vec a2) -> Vec ((,) a1 a2)
596 (trace "X" ((trace "X" (nat_rect (trace "X" ((\va0 vb0 -> (trace "X" (Vec_nil))))) (trace "X" ((\n0 iHn va0 vb0 ->
597 (trace "X" (case (trace "X" (va0)) of {
598 Vec_nil -> (trace "X" (false_rect));
600 (trace "X" ((trace "X" (eq_rect (trace "X" (n0)) (trace "X" ((\x1 x2 ->
601 (trace "X" (case (trace "X" (vb0)) of {
602 Vec_nil -> (trace "X" (false_rect));
603 Vec_cons n2 x3 x4 -> (trace "X" ((trace "X" (eq_rect (trace "X" (n0)) (trace "X" ((\x5 x6 -> (trace "X" (Vec_cons (trace "X" (n0)) (trace "X" (((,) (trace "X" (x1)) (trace "X" (x5))))) (trace "X" ((trace "X" ((iHn (trace "X" (x2)) (trace "X" (x6)))))))))))) (trace "X" (n2)) (trace "X" (x3)) (trace "X" (x4))))))}))))) (trace "X" (n1)) (trace "X" (x)) (trace "X" (x0))))))}))))) (trace "X" (n)) (trace "X" (va)) (trace "X" (vb))))))
605 vec_map :: Nat -> (a1 -> a2) -> (Vec a1) -> Vec a2
607 (trace "X" ((trace "X" (nat_rect (trace "X" ((\v0 -> (trace "X" (Vec_nil))))) (trace "X" ((\n0 iHn v0 ->
608 (trace "X" (case (trace "X" (v0)) of {
609 Vec_nil -> (trace "X" (false_rect));
610 Vec_cons n1 x x0 -> (trace "X" ((trace "X" (eq_rect (trace "X" (n0)) (trace "X" ((\x1 x2 -> (trace "X" (Vec_cons (trace "X" (n0)) (trace "X" ((trace "X" ((f (trace "X" (x1))))))) (trace "X" ((trace "X" ((iHn (trace "X" (x2)))))))))))) (trace "X" (n1)) (trace "X" (x)) (trace "X" (x0))))))}))))) (trace "X" (n)) (trace "X" (v))))))
612 list2vec :: (([]) a1) -> Vec a1
614 (trace "X" ((trace "X" (list_rect (trace "X" (Vec_nil)) (trace "X" ((\a l0 iHl -> (trace "X" (Vec_cons
615 (trace "X" ((trace "X" ((let {
617 (trace "X" (case (trace "X" (l1)) of {
618 ([]) -> (trace "X" (O));
619 (:) y l' -> (trace "X" (S (trace "X" ((trace "X" ((length0 (trace "X" (l')))))))))}))}
620 in length0 (trace "X" (l0))))))) (trace "X" (a)) (trace "X" (iHl))))))) (trace "X" (l))))))
622 vec_chop' :: (([]) a1) -> (([]) a1) -> (Vec a2) -> Vec a2
624 (trace "X" ((trace "X" (list_rect (trace "X" ((\v0 -> (trace "X" (v0))))) (trace "X" ((\a l3 iHl1 v0 ->
625 (trace "X" ((trace "X" (iHl1
626 (trace "X" ((case (trace "X" (v0)) of {
627 Vec_nil -> (trace "X" (false_rect));
628 Vec_cons n x x0 -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((app (trace "X" (l3)) (trace "X" (l2)))))))))))) (trace "X" ((\x1 x2 -> (trace "X" (x2))))) (trace "X" (n)) (trace "X" (x)) (trace "X" (x0))))))})))))))))) (trace "X" (l1)) (trace "X" (v))))))
632 | ICons i (([]) i) f (IList i f)
634 ilist_head :: a1 -> (([]) a1) -> (IList a1 a2) -> a2
636 (trace "X" (case (trace "X" (il)) of {
637 INil -> (trace "X" (false_rect));
638 ICons i is x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (x)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (y)) (trace "X" ((\x2 x3 -> (trace "X" (x2))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))}))
640 ilist_tail :: a1 -> (([]) a1) -> (IList a1 a2) -> IList a1 a2
642 (trace "X" (case (trace "X" (il)) of {
643 INil -> (trace "X" (false_rect));
644 ICons i is x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (x)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (y)) (trace "X" ((\x2 x3 -> (trace "X" (x3))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))}))
646 ilmap :: (([]) a1) -> (a1 -> a2 -> a3) -> (IList a1 a2) -> IList a1 a3
648 (trace "X" ((trace "X" (list_rect (trace "X" ((\x -> (trace "X" (INil))))) (trace "X" ((\a il0 iHil x ->
649 (trace "X" (case (trace "X" (x)) of {
650 INil -> (trace "X" (false_rect));
651 ICons i is x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (a)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (il0)) (trace "X" ((\x2 x3 -> (trace "X" (ICons (trace "X" (a)) (trace "X" (il0)) (trace "X" ((trace "X" ((f (trace "X" (a)) (trace "X" (x2))))))) (trace "X" ((trace "X" ((iHil (trace "X" (x3)))))))))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))}))))) (trace "X" (il))))))
653 ilist_chop :: (([]) a1) -> (([]) a1) -> (IList a1 a2) -> IList a1 a2
655 (trace "X" ((trace "X" (list_rect (trace "X" ((\v0 -> (trace "X" (INil))))) (trace "X" ((\a l3 iHl1 v0 -> (trace "X" (ICons (trace "X" (a)) (trace "X" (l3))
656 (trace "X" ((case (trace "X" (v0)) of {
657 INil -> (trace "X" (false_rect));
658 ICons i is x x0 -> (trace "X" ((trace "X" (eq_rect (trace "X" (a)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((app (trace "X" (l3)) (trace "X" (l2))))))) (trace "X" ((\x1 x2 -> (trace "X" (x1))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x)) (trace "X" (x0))))))})))
659 (trace "X" ((trace "X" ((iHl1
660 (trace "X" ((case (trace "X" (v0)) of {
661 INil -> (trace "X" (false_rect));
662 ICons i is x x0 -> (trace "X" ((trace "X" (eq_rect (trace "X" (a)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((app (trace "X" (l3)) (trace "X" (l2))))))) (trace "X" ((\x1 x2 -> (trace "X" (x2))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x)) (trace "X" (x0))))))}))))))))))))) (trace "X" (l1)) (trace "X" (v))))))
664 ilist_chop' :: (([]) a1) -> (([]) a1) -> (IList a1 a2) -> IList a1 a2
665 ilist_chop' l1 l2 v =
666 (trace "X" ((trace "X" (list_rect (trace "X" ((\v0 -> (trace "X" (v0))))) (trace "X" ((\a l3 iHl1 v0 ->
667 (trace "X" ((trace "X" (iHl1
668 (trace "X" ((case (trace "X" (v0)) of {
669 INil -> (trace "X" (false_rect));
670 ICons i is x x0 -> (trace "X" ((trace "X" (eq_rect (trace "X" (a)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((app (trace "X" (l3)) (trace "X" (l2))))))) (trace "X" ((\x1 x2 -> (trace "X" (x2))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x)) (trace "X" (x0))))))})))))))))) (trace "X" (l1)) (trace "X" (v))))))
672 ilist_to_list :: (([]) a1) -> (IList a1 a2) -> ([]) a2
674 (trace "X" (case (trace "X" (il)) of {
675 INil -> (trace "X" (([])));
676 ICons i is a b -> (trace "X" ((:) (trace "X" (a)) (trace "X" ((trace "X" ((ilist_to_list (trace "X" (is)) (trace "X" (b)))))))))}))
681 | IBranch (Tree (Prelude.Maybe i)) (Tree (Prelude.Maybe i)) (ITree i f) (ITree i f)
683 iTree_rect :: a3 -> (a1 -> a2 -> a3) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (ITree a1 a2) -> a3 -> (ITree a1 a2) -> a3 -> a3) -> (Tree (Prelude.Maybe a1)) -> (ITree a1 a2) -> a3
684 iTree_rect f f0 f1 t i =
685 (trace "X" (case (trace "X" (i)) of {
686 INone -> (trace "X" (f));
687 ILeaf i0 y -> (trace "X" ((trace "X" (f0 (trace "X" (i0)) (trace "X" (y))))));
688 IBranch it1 it2 i0 i1 -> (trace "X" ((trace "X" (f1 (trace "X" (it1)) (trace "X" (it2)) (trace "X" (i0)) (trace "X" ((trace "X" ((iTree_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (it1)) (trace "X" (i0))))))) (trace "X" (i1)) (trace "X" ((trace "X" ((iTree_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (it2)) (trace "X" (i1)))))))))))}))
690 itmap :: (Tree (Prelude.Maybe a1)) -> (a1 -> a2 -> a3) -> (ITree a1 a2) -> ITree a1 a3
692 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a x ->
693 (trace "X" (case (trace "X" (a)) of {
694 Prelude.Just i -> (trace "X" (ILeaf (trace "X" (i))
695 (trace "X" ((trace "X" ((f (trace "X" (i))
696 (trace "X" ((case (trace "X" (x)) of {
697 INone -> (trace "X" (false_rect));
698 ILeaf i0 x0 -> (trace "X" ((trace "X" (eq_rect (trace "X" (i)) (trace "X" ((\x1 -> (trace "X" (x1))))) (trace "X" (i0)) (trace "X" (x0))))));
699 IBranch it1 it2 x0 x1 -> (trace "X" ((trace "X" (false_rect (trace "X" (x0)) (trace "X" (x1))))))}))))))))));
700 Prelude.Nothing -> (trace "X" (INone))}))))) (trace "X" ((\il1 iHil1 il2 iHil2 x -> (trace "X" (IBranch (trace "X" (il1)) (trace "X" (il2))
701 (trace "X" ((case (trace "X" (x)) of {
702 INone -> (trace "X" (false_rect));
703 ILeaf i x0 -> (trace "X" ((trace "X" (false_rect (trace "X" (x0))))));
704 IBranch it1 it2 x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (il1)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (il2)) (trace "X" ((\x2 x3 -> (trace "X" ((trace "X" (iHil1 (trace "X" (x2))))))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))})))
705 (trace "X" ((case (trace "X" (x)) of {
706 INone -> (trace "X" (false_rect));
707 ILeaf i x0 -> (trace "X" ((trace "X" (false_rect (trace "X" (x0))))));
708 IBranch it1 it2 x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (il1)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (il2)) (trace "X" ((\x2 x3 -> (trace "X" ((trace "X" (iHil2 (trace "X" (x3))))))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))})))))))) (trace "X" (il))))))
710 bnot :: Prelude.Bool -> Prelude.Bool
712 (trace "X" (case (trace "X" (b)) of {
713 Prelude.True -> (trace "X" (Prelude.False));
714 Prelude.False -> (trace "X" (Prelude.True))}))
716 eol :: Prelude.String
720 Build_Monad (() -> () -> t) (() -> () -> t -> (() -> t) -> t)
722 returnM :: (Monad a1) -> a2 -> a1
724 (trace "X" (case (trace "X" (monad)) of {
725 Build_Monad returnM0 bindM0 -> (trace "X" ((trace "X" (unsafeCoerce (trace "X" (returnM0)) (trace "X" (__)) (trace "X" (x))))))}))
727 bindM :: (Monad a1) -> a1 -> (a2 -> a1) -> a1
729 (trace "X" (case (trace "X" (monad)) of {
730 Build_Monad returnM0 bindM0 -> (trace "X" ((trace "X" (unsafeCoerce (trace "X" (bindM0)) (trace "X" (__)) (trace "X" (__)) (trace "X" (x)) (trace "X" (x0))))))}))
736 orErrorBind :: (OrError a1) -> (a1 -> OrError a2) -> OrError a2
738 (trace "X" (case (trace "X" (oe)) of {
739 Error s -> (trace "X" (Error (trace "X" (s))));
740 OK t -> (trace "X" ((trace "X" (f (trace "X" (t))))))}))
742 orErrorBindWithMessage :: (OrError a1) -> (a1 -> OrError a2) -> Prelude.String -> OrError a2
743 orErrorBindWithMessage oe f err_msg =
744 (trace "X" (case (trace "X" (oe)) of {
745 Error s -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (err_msg)) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))) (trace "X" (s)))))))));
746 OK t -> (trace "X" ((trace "X" (f (trace "X" (t))))))}))
748 addErrorMessage :: Prelude.String -> (OrError a1) -> OrError a1
749 addErrorMessage s x =
750 (trace "X" ((trace "X" (orErrorBindWithMessage (trace "X" (x)) (trace "X" ((\y -> (trace "X" (OK (trace "X" (y))))))) (trace "X" (s))))))
752 eqDecidableNat :: EqDecidable Nat
753 eqDecidableNat v1 v2 =
754 (trace "X" ((trace "X" (eq_nat_dec (trace "X" (v1)) (trace "X" (v2))))))
756 list2vecOrFail :: (([]) a1) -> Nat -> (Nat -> Nat -> Prelude.String) -> OrError (Vec a1)
757 list2vecOrFail l n error_message =
758 (trace "X" (let {v = (trace "X" ((trace "X" (list2vec (trace "X" (l))))))} in
759 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (eqDecidableNat)) (trace "X" ((trace "X" ((length (trace "X" (l))))))) (trace "X" (n))))))} in
760 (trace "X" (case (trace "X" (s)) of {
761 Prelude.True -> (trace "X" (let {v0 = (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((length (trace "X" (l))))))) (trace "X" (v)) (trace "X" (n))))))} in (trace "X" (OK (trace "X" (v0))))));
762 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((error_message (trace "X" ((trace "X" ((length (trace "X" (l))))))) (trace "X" (n)))))))))}))))))
764 split_list :: (([]) a1) -> Nat -> OrError ((,) (([]) a1) (([]) a1))
766 (trace "X" (case (trace "X" (n)) of {
767 O -> (trace "X" (OK (trace "X" (((,) (trace "X" (([]))) (trace "X" (l)))))));
769 (trace "X" (case (trace "X" (l)) of {
770 ([]) -> (trace "X" (Error (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))));
771 (:) h t -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((split_list (trace "X" (t)) (trace "X" (n'))))))) (trace "X" ((\t' -> (trace "X" (case (trace "X" (t')) of {
772 (,) t1 t2 -> (trace "X" (OK (trace "X" (((,) (trace "X" (((:) (trace "X" (h)) (trace "X" (t1))))) (trace "X" (t2)))))))})))))))))}))}))
775 UniqSupply.UniqSupply -> OrError ((,) UniqSupply.UniqSupply t)
776 -- singleton inductive, whose constructor was uniqM
778 uniqMonad :: Monad (UniqM ())
780 (trace "X" (Build_Monad (trace "X" ((\_ x u -> (trace "X" (OK (trace "X" (((,) (trace "X" (u)) (trace "X" (x)))))))))) (trace "X" ((\_ _ x f u ->
781 (trace "X" (case (trace "X" ((trace "X" (x (trace "X" (u)))))) of {
782 Error s -> (trace "X" (Error (trace "X" (s))));
783 OK p -> (trace "X" (case (trace "X" (p)) of {
784 (,) u' va -> (trace "X" ((trace "X" (f (trace "X" (va)) (trace "X" (u'))))))}))})))))))
786 getU :: UniqM Unique.Unique
788 (trace "X" (case (trace "X" ((trace "X" (UniqSupply.splitUniqSupply (trace "X" (us)))))) of {
789 (,) us1 us2 -> (trace "X" (OK (trace "X" (((,) (trace "X" (us1)) (trace "X" ((trace "X" ((UniqSupply.uniqFromSupply (trace "X" (us2))))))))))))}))
792 Build_FreshMonad (Monad ()) ((([]) t) -> ())
796 fMT_Monad :: (FreshMonad a1) -> Monad (FMT a1 ())
798 (trace "X" (case (trace "X" (f)) of {
799 Build_FreshMonad fMT_Monad0 fMT_fresh0 -> (trace "X" (fMT_Monad0))}))
801 fMT_fresh :: (FreshMonad a1) -> (([]) a1) -> FMT a1 (SigT a1 ())
803 (trace "X" (case (trace "X" (f)) of {
804 Build_FreshMonad fMT_Monad0 fMT_fresh0 -> (trace "X" (fMT_fresh0))}))
806 mapM :: (Monad a1) -> (([]) a1) -> a1
808 (trace "X" (case (trace "X" (ml)) of {
809 ([]) -> (trace "X" ((trace "X" (returnM (trace "X" (mon)) (trace "X" (([])))))));
810 (:) a b -> (trace "X" ((trace "X" (bindM (trace "X" (mon)) (trace "X" (a)) (trace "X" ((\a' -> (trace "X" ((trace "X" (bindM (trace "X" (mon)) (trace "X" ((trace "X" ((mapM (trace "X" (mon)) (trace "X" (b))))))) (trace "X" ((\b' -> (trace "X" ((trace "X" (returnM (trace "X" (mon)) (trace "X" (((:) (trace "X" (a')) (trace "X" (b')))))))))))))))))))))))}))
812 treeM :: (Monad a2) -> (Tree (Prelude.Maybe a2)) -> a2
814 (trace "X" (case (trace "X" (t)) of {
816 (trace "X" (case (trace "X" (o)) of {
817 Prelude.Just x -> (trace "X" ((trace "X" (bindM (trace "X" (mT)) (trace "X" (x)) (trace "X" ((\x' -> (trace "X" ((trace "X" (returnM (trace "X" (mT)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x')))))))))))))))))));
818 Prelude.Nothing -> (trace "X" ((trace "X" (returnM (trace "X" (mT)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))}));
819 T_Branch b1 b2 -> (trace "X" ((trace "X" (bindM (trace "X" (mT)) (trace "X" ((trace "X" ((treeM (trace "X" (mT)) (trace "X" (b1))))))) (trace "X" ((\b1' -> (trace "X" ((trace "X" (bindM (trace "X" (mT)) (trace "X" ((trace "X" ((treeM (trace "X" (mT)) (trace "X" (b2))))))) (trace "X" ((\b2' -> (trace "X" ((trace "X" (returnM (trace "X" (mT)) (trace "X" ((T_Branch (trace "X" (b1')) (trace "X" (b2')))))))))))))))))))))))}))
823 -- singleton inductive, whose constructor was rawLatex
827 -- singleton inductive, whose constructor was rawLatexMath
831 -- singleton inductive, whose constructor was Build_ToLatex
833 toLatex :: (ToLatex a1) -> a1 -> Latex
835 (trace "X" (toLatex0))
837 latexToString :: ToString Latex
843 -- singleton inductive, whose constructor was Build_ToLatexMath
845 toLatexMath :: (ToLatexMath a1) -> a1 -> LatexMath
846 toLatexMath toLatexMath0 =
847 (trace "X" (toLatexMath0))
849 concatenableLatexMath :: Concatenable LatexMath
850 concatenableLatexMath l1 l2 =
851 (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" (l1)) (trace "X" (l2))))))
853 latexMathToString :: ToString LatexMath
854 latexMathToString x =
857 toLatexMathLatex :: ToLatexMath Latex
859 (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" ([])))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (latexToString)) (trace "X" (l)))))))))))) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))
861 stringToLatex :: ToLatex Prelude.String
863 (trace "X" ((trace "X" (sanitizeForLatex (trace "X" (x))))))
865 stringToLatexMath :: ToLatexMath Prelude.String
866 stringToLatexMath x =
867 (trace "X" ((trace "X" (toLatexMath (trace "X" (toLatexMathLatex)) (trace "X" ((trace "X" ((toLatex (trace "X" (stringToLatex)) (trace "X" (x)))))))))))
869 latexMathToLatexMath :: ToLatexMath LatexMath
870 latexMathToLatexMath x =
873 treeToLatexMath :: (ToLatexMath a1) -> (Tree (Prelude.Maybe a1)) -> LatexMath
874 treeToLatexMath toLatexV t =
875 (trace "X" (case (trace "X" (t)) of {
877 (trace "X" (case (trace "X" (o)) of {
878 Prelude.Just x -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))))))))) (trace "X" ((trace "X" ((toLatexMath (trace "X" (toLatexV)) (trace "X" (x)))))))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))));
879 Prelude.Nothing -> (trace "X" ((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))}));
880 T_Branch b1 b2 -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))))))))) (trace "X" ((trace "X" ((treeToLatexMath (trace "X" (toLatexV)) (trace "X" (b1)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (',')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))) (trace "X" ((trace "X" ((treeToLatexMath (trace "X" (toLatexV)) (trace "X" (b2)))))))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))))}))
882 data ND judgment rule =
886 | Nd_copy (Tree (Prelude.Maybe judgment))
887 | Nd_exch (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment))
888 | Nd_prod (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (ND judgment rule) (ND judgment rule)
889 | Nd_comp (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (ND judgment rule) (ND judgment rule)
890 | Nd_cancell (Tree (Prelude.Maybe judgment))
891 | Nd_cancelr (Tree (Prelude.Maybe judgment))
892 | Nd_llecnac (Tree (Prelude.Maybe judgment))
893 | Nd_rlecnac (Tree (Prelude.Maybe judgment))
894 | Nd_assoc (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment))
895 | Nd_cossa (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment))
896 | Nd_rule (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) rule
898 nD_rect :: a3 -> (a1 -> a3) -> (a1 -> a3) -> ((Tree (Prelude.Maybe a1)) -> a3) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> a3) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (ND a1 a2) -> a3 -> (ND a1 a2) -> a3 -> a3) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (ND a1 a2) -> a3 -> (ND a1 a2) -> a3 -> a3) -> ((Tree (Prelude.Maybe a1)) -> a3) -> ((Tree (Prelude.Maybe a1)) -> a3) -> ((Tree (Prelude.Maybe a1)) -> a3) -> ((Tree (Prelude.Maybe a1)) -> a3) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> a3) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> a3) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> a2 -> a3) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (ND a1 a2) -> a3
899 nD_rect f f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 hypotheses conclusions n =
900 (trace "X" (case (trace "X" (n)) of {
901 Nd_id0 -> (trace "X" (f));
902 Nd_id1 h -> (trace "X" ((trace "X" (f0 (trace "X" (h))))));
903 Nd_weak1 h -> (trace "X" ((trace "X" (f1 (trace "X" (h))))));
904 Nd_copy h -> (trace "X" ((trace "X" (f2 (trace "X" (h))))));
905 Nd_exch x y -> (trace "X" ((trace "X" (f3 (trace "X" (x)) (trace "X" (y))))));
906 Nd_prod h1 h2 c1 c2 pf1 pf2 -> (trace "X" ((trace "X" (f4 (trace "X" (h1)) (trace "X" (h2)) (trace "X" (c1)) (trace "X" (c2)) (trace "X" (pf1)) (trace "X" ((trace "X" ((nD_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (f2)) (trace "X" (f3)) (trace "X" (f4)) (trace "X" (f5)) (trace "X" (f6)) (trace "X" (f7)) (trace "X" (f8)) (trace "X" (f9)) (trace "X" (f10)) (trace "X" (f11)) (trace "X" (f12)) (trace "X" (h1)) (trace "X" (c1)) (trace "X" (pf1))))))) (trace "X" (pf2)) (trace "X" ((trace "X" ((nD_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (f2)) (trace "X" (f3)) (trace "X" (f4)) (trace "X" (f5)) (trace "X" (f6)) (trace "X" (f7)) (trace "X" (f8)) (trace "X" (f9)) (trace "X" (f10)) (trace "X" (f11)) (trace "X" (f12)) (trace "X" (h2)) (trace "X" (c2)) (trace "X" (pf2)))))))))));
907 Nd_comp h x c pf1 pf2 -> (trace "X" ((trace "X" (f5 (trace "X" (h)) (trace "X" (x)) (trace "X" (c)) (trace "X" (pf1)) (trace "X" ((trace "X" ((nD_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (f2)) (trace "X" (f3)) (trace "X" (f4)) (trace "X" (f5)) (trace "X" (f6)) (trace "X" (f7)) (trace "X" (f8)) (trace "X" (f9)) (trace "X" (f10)) (trace "X" (f11)) (trace "X" (f12)) (trace "X" (h)) (trace "X" (x)) (trace "X" (pf1))))))) (trace "X" (pf2)) (trace "X" ((trace "X" ((nD_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (f2)) (trace "X" (f3)) (trace "X" (f4)) (trace "X" (f5)) (trace "X" (f6)) (trace "X" (f7)) (trace "X" (f8)) (trace "X" (f9)) (trace "X" (f10)) (trace "X" (f11)) (trace "X" (f12)) (trace "X" (x)) (trace "X" (c)) (trace "X" (pf2)))))))))));
908 Nd_cancell a -> (trace "X" ((trace "X" (f6 (trace "X" (a))))));
909 Nd_cancelr a -> (trace "X" ((trace "X" (f7 (trace "X" (a))))));
910 Nd_llecnac a -> (trace "X" ((trace "X" (f8 (trace "X" (a))))));
911 Nd_rlecnac a -> (trace "X" ((trace "X" (f9 (trace "X" (a))))));
912 Nd_assoc a b c -> (trace "X" ((trace "X" (f10 (trace "X" (a)) (trace "X" (b)) (trace "X" (c))))));
913 Nd_cossa a b c -> (trace "X" ((trace "X" (f11 (trace "X" (a)) (trace "X" (b)) (trace "X" (c))))));
914 Nd_rule h c r -> (trace "X" ((trace "X" (f12 (trace "X" (h)) (trace "X" (c)) (trace "X" (r))))))}))
916 nd_id :: (Tree (Prelude.Maybe a1)) -> ND a1 a2
918 (trace "X" (case (trace "X" (sl)) of {
920 (trace "X" (case (trace "X" (o)) of {
921 Prelude.Just x -> (trace "X" (Nd_id1 (trace "X" (x))));
922 Prelude.Nothing -> (trace "X" (Nd_id0))}));
923 T_Branch a b -> (trace "X" (Nd_prod (trace "X" (a)) (trace "X" (b)) (trace "X" (a)) (trace "X" (b)) (trace "X" ((trace "X" ((nd_id (trace "X" (a))))))) (trace "X" ((trace "X" ((nd_id (trace "X" (b)))))))))}))
925 nd_weak :: (Tree (Prelude.Maybe a1)) -> ND a1 a2
927 (trace "X" (case (trace "X" (sl)) of {
929 (trace "X" (case (trace "X" (o)) of {
930 Prelude.Just x -> (trace "X" (Nd_weak1 (trace "X" (x))));
931 Prelude.Nothing -> (trace "X" (Nd_id0))}));
932 T_Branch a b -> (trace "X" (Nd_comp (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((Nd_prod (trace "X" (a)) (trace "X" (b)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((nd_weak (trace "X" (a))))))) (trace "X" ((trace "X" ((nd_weak (trace "X" (b)))))))))) (trace "X" ((Nd_cancelr (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))}))
934 data SIND judgment rule =
935 Scnd_weak (Tree (Prelude.Maybe judgment))
936 | Scnd_comp (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) judgment (SIND judgment rule) rule
937 | Scnd_branch (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (SIND judgment rule) (SIND judgment rule)
939 mkSIND :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (ND a1 a2) -> (SIND a1 a2) -> SIND a1 a2
941 (trace "X" ((trace "X" (nD_rect (trace "X" ((\k -> (trace "X" (k))))) (trace "X" ((\h0 k -> (trace "X" (k))))) (trace "X" ((\h0 k -> (trace "X" (Scnd_weak (trace "X" (h))))))) (trace "X" ((\h0 k -> (trace "X" (Scnd_branch (trace "X" (h)) (trace "X" (h0)) (trace "X" (h0)) (trace "X" (k)) (trace "X" (k))))))) (trace "X" ((\x0 y k ->
942 (trace "X" (case (trace "X" (k)) of {
943 Scnd_weak c0 -> (trace "X" (false_rect));
944 Scnd_comp ht ct c0 x1 x2 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" (false_rect))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x1)) (trace "X" (x2))))));
945 Scnd_branch ht c1 c2 x1 x2 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (x0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (y)) (trace "X" ((\x3 x4 -> (trace "X" (Scnd_branch (trace "X" (h)) (trace "X" (y)) (trace "X" (x0)) (trace "X" (x4)) (trace "X" (x3))))))) (trace "X" (c2))))))))) (trace "X" (c1)) (trace "X" (__))))))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x1)) (trace "X" (x2))))))}))))) (trace "X" ((\h1 h2 c1 c2 nd1 iHnd1 nd2 iHnd2 k ->
946 (trace "X" (case (trace "X" (k)) of {
947 Scnd_weak c0 -> (trace "X" (false_rect));
948 Scnd_comp ht ct c0 x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" (false_rect))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))));
949 Scnd_branch ht c0 c3 x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (h1)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (h2)) (trace "X" ((\x2 x3 -> (trace "X" (Scnd_branch (trace "X" (h)) (trace "X" (c1)) (trace "X" (c2)) (trace "X" ((trace "X" ((iHnd1 (trace "X" (x2))))))) (trace "X" ((trace "X" ((iHnd2 (trace "X" (x3)))))))))))) (trace "X" (c3))))))))) (trace "X" (c0)) (trace "X" (__))))))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))}))))) (trace "X" ((\h0 x0 c0 nd1 iHnd1 nd2 iHnd2 k -> (trace "X" ((trace "X" (iHnd2 (trace "X" ((trace "X" ((iHnd1 (trace "X" (k)))))))))))))) (trace "X" ((\a k ->
950 (trace "X" (case (trace "X" (k)) of {
951 Scnd_weak c0 -> (trace "X" (false_rect));
952 Scnd_comp ht ct c0 x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" (false_rect))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))));
953 Scnd_branch ht c1 c2 x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (a)) (trace "X" ((\x2 x3 -> (trace "X" (x3))))) (trace "X" (c2))))))))) (trace "X" (c1)) (trace "X" (__))))))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))}))))) (trace "X" ((\a k ->
954 (trace "X" (case (trace "X" (k)) of {
955 Scnd_weak c0 -> (trace "X" (false_rect));
956 Scnd_comp ht ct c0 x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" (false_rect))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))));
957 Scnd_branch ht c1 c2 x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (a)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((\x2 x3 -> (trace "X" (x2))))) (trace "X" (c2))))))))) (trace "X" (c1)) (trace "X" (__))))))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))}))))) (trace "X" ((\a k -> (trace "X" (Scnd_branch (trace "X" (h)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a)) (trace "X" ((Scnd_weak (trace "X" (h))))) (trace "X" (k))))))) (trace "X" ((\a k -> (trace "X" (Scnd_branch (trace "X" (h)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (k)) (trace "X" ((Scnd_weak (trace "X" (h)))))))))) (trace "X" ((\a b c0 k ->
958 (trace "X" (case (trace "X" (k)) of {
959 Scnd_weak c1 -> (trace "X" (false_rect));
960 Scnd_comp ht ct c1 x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" (false_rect))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))));
961 Scnd_branch ht c1 c2 x0 x1 ->
962 (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ ->
963 (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((\_ ->
964 (trace "X" ((trace "X" (eq_rect (trace "X" (c0)) (trace "X" ((\x2 x3 ->
965 (trace "X" (case (trace "X" (x2)) of {
966 Scnd_weak c3 -> (trace "X" (false_rect));
967 Scnd_comp ht0 ct c3 x4 x5 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" (false_rect))))) (trace "X" (ht0)) (trace "X" (__)) (trace "X" (x4)) (trace "X" (x5))))));
968 Scnd_branch ht0 c3 c4 x4 x5 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (a)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (b)) (trace "X" ((\x6 x7 -> (trace "X" (Scnd_branch (trace "X" (h)) (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c0))))) (trace "X" (x6)) (trace "X" ((Scnd_branch (trace "X" (h)) (trace "X" (b)) (trace "X" (c0)) (trace "X" (x7)) (trace "X" (x3)))))))))) (trace "X" (c4))))))))) (trace "X" (c3)) (trace "X" (__))))))))) (trace "X" (ht0)) (trace "X" (__)) (trace "X" (x4)) (trace "X" (x5))))))}))))) (trace "X" (c2))))))))) (trace "X" (c1)) (trace "X" (__))))))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))}))))) (trace "X" ((\a b c0 k ->
969 (trace "X" (case (trace "X" (k)) of {
970 Scnd_weak c1 -> (trace "X" (false_rect));
971 Scnd_comp ht ct c1 x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" (false_rect))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))));
972 Scnd_branch ht c1 c2 x0 x1 ->
973 (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ ->
974 (trace "X" ((trace "X" (eq_rect (trace "X" (a)) (trace "X" ((\_ ->
975 (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c0))))) (trace "X" ((\x2 x3 ->
976 (trace "X" (case (trace "X" (x3)) of {
977 Scnd_weak c3 -> (trace "X" (false_rect));
978 Scnd_comp ht0 ct c3 x4 x5 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" (false_rect))))) (trace "X" (ht0)) (trace "X" (__)) (trace "X" (x4)) (trace "X" (x5))))));
979 Scnd_branch ht0 c3 c4 x4 x5 -> (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (b)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (c0)) (trace "X" ((\x6 x7 -> (trace "X" (Scnd_branch (trace "X" (h)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" (c0)) (trace "X" ((Scnd_branch (trace "X" (h)) (trace "X" (a)) (trace "X" (b)) (trace "X" (x2)) (trace "X" (x6))))) (trace "X" (x7))))))) (trace "X" (c4))))))))) (trace "X" (c3)) (trace "X" (__))))))))) (trace "X" (ht0)) (trace "X" (__)) (trace "X" (x4)) (trace "X" (x5))))))}))))) (trace "X" (c2))))))))) (trace "X" (c1)) (trace "X" (__))))))))) (trace "X" (ht)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))}))))) (trace "X" ((\h0 c0 r k ->
980 (trace "X" (case (trace "X" (c0)) of {
982 (trace "X" (case (trace "X" (o)) of {
983 Prelude.Just j -> (trace "X" (Scnd_comp (trace "X" (h)) (trace "X" (h0)) (trace "X" (j)) (trace "X" (k)) (trace "X" (r))));
984 Prelude.Nothing -> (trace "X" (Scnd_weak (trace "X" (h))))}));
985 T_Branch c1 c2 -> (trace "X" (Prelude.error "absurd case"))}))))) (trace "X" (x)) (trace "X" (c)) (trace "X" (nd))))))
987 nd_map' :: (a1 -> a3) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> a2 -> ND a3 a4) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (ND a1 a2) -> ND a3 a4
989 (trace "X" (case (trace "X" (pf)) of {
990 Nd_id0 -> (trace "X" (Nd_id0));
991 Nd_id1 h0 -> (trace "X" (Nd_id1 (trace "X" ((trace "X" ((f (trace "X" (h0)))))))));
992 Nd_weak1 h0 -> (trace "X" ((trace "X" (nd_weak (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (h0)))))))))))))))));
993 Nd_copy h0 -> (trace "X" (Nd_copy (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (h0)))))))));
994 Nd_exch x y -> (trace "X" (Nd_exch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (x))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (y)))))))));
995 Nd_prod h1 h2 c1 c2 lpf rpf -> (trace "X" (Nd_prod (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (h1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (h2))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (c1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (c2))))))) (trace "X" ((trace "X" ((nd_map' (trace "X" (f)) (trace "X" (r)) (trace "X" (h1)) (trace "X" (c1)) (trace "X" (lpf))))))) (trace "X" ((trace "X" ((nd_map' (trace "X" (f)) (trace "X" (r)) (trace "X" (h2)) (trace "X" (c2)) (trace "X" (rpf)))))))));
996 Nd_comp h0 x c0 top bot -> (trace "X" (Nd_comp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (h0))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (x))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (c0))))))) (trace "X" ((trace "X" ((nd_map' (trace "X" (f)) (trace "X" (r)) (trace "X" (h0)) (trace "X" (x)) (trace "X" (top))))))) (trace "X" ((trace "X" ((nd_map' (trace "X" (f)) (trace "X" (r)) (trace "X" (x)) (trace "X" (c0)) (trace "X" (bot)))))))));
997 Nd_cancell a -> (trace "X" (Nd_cancell (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))));
998 Nd_cancelr a -> (trace "X" (Nd_cancelr (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))));
999 Nd_llecnac a -> (trace "X" (Nd_llecnac (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))));
1000 Nd_rlecnac a -> (trace "X" (Nd_rlecnac (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))));
1001 Nd_assoc a b c0 -> (trace "X" (Nd_assoc (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (b))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (c0)))))))));
1002 Nd_cossa a b c0 -> (trace "X" (Nd_cossa (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (b))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (c0)))))))));
1003 Nd_rule h0 c0 rule -> (trace "X" ((trace "X" (r (trace "X" (h0)) (trace "X" (c0)) (trace "X" (rule))))))}))
1009 sIND_toLatexMath :: (ToLatexMath a1) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> ToLatexMath a2) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> a2 -> Prelude.Bool) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (SIND a1 a2) -> LatexMath
1010 sIND_toLatexMath judgmentToLatexMath ruleToLatexMath hideRule h c pns =
1011 (trace "X" (case (trace "X" (pns)) of {
1012 Scnd_weak c0 -> (trace "X" ([]));
1013 Scnd_comp ht ct c0 pns0 rule ->
1014 (trace "X" (case (trace "X" ((trace "X" (hideRule (trace "X" (ct)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (c0)))))))) (trace "X" (rule)))))) of {
1015 Prelude.True -> (trace "X" ((trace "X" (sIND_toLatexMath (trace "X" (judgmentToLatexMath)) (trace "X" (ruleToLatexMath)) (trace "X" (hideRule)) (trace "X" (ht)) (trace "X" (ct)) (trace "X" (pns0))))));
1016 Prelude.False -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('[')) (trace "X" ([])))))))))))))))))))))))))) (trace "X" ((trace "X" ((toLatexMath (trace "X" ((trace "X" ((ruleToLatexMath (trace "X" (ct)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (c0))))))))))))) (trace "X" (rule)))))))))))) (trace "X" (((:) (trace "X" (']')) (trace "X" (((:) (trace "X" ('{')) (trace "X" ([]))))))))))))) (trace "X" (eolL))))))) (trace "X" ((trace "X" ((sIND_toLatexMath (trace "X" (judgmentToLatexMath)) (trace "X" (ruleToLatexMath)) (trace "X" (hideRule)) (trace "X" (ht)) (trace "X" (ct)) (trace "X" (pns0)))))))))))) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" ('{')) (trace "X" ([]))))))))))))) (trace "X" (eolL))))))) (trace "X" ((trace "X" ((toLatexMath (trace "X" (judgmentToLatexMath)) (trace "X" (c0)))))))))))) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))) (trace "X" (eolL))))))}));
1017 Scnd_branch ht c1 c2 pns1 pns2 -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((sIND_toLatexMath (trace "X" (judgmentToLatexMath)) (trace "X" (ruleToLatexMath)) (trace "X" (hideRule)) (trace "X" (ht)) (trace "X" (c1)) (trace "X" (pns1))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('1')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((sIND_toLatexMath (trace "X" (judgmentToLatexMath)) (trace "X" (ruleToLatexMath)) (trace "X" (hideRule)) (trace "X" (ht)) (trace "X" (c2)) (trace "X" (pns2)))))))))))}))
1019 natToStringInstance :: ToString Nat
1020 natToStringInstance =
1021 (trace "X" (natToString))
1025 | KindArrow Kind Kind
1031 kind_rect :: a1 -> (Kind -> a1 -> Kind -> a1 -> a1) -> a1 -> a1 -> a1 -> a1 -> Kind -> a1
1032 kind_rect f f0 f1 f2 f3 f4 k =
1033 (trace "X" (case (trace "X" (k)) of {
1034 KindStar -> (trace "X" (f));
1035 KindArrow k0 k1 -> (trace "X" ((trace "X" (f0 (trace "X" (k0)) (trace "X" ((trace "X" ((kind_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (f2)) (trace "X" (f3)) (trace "X" (f4)) (trace "X" (k0))))))) (trace "X" (k1)) (trace "X" ((trace "X" ((kind_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (f2)) (trace "X" (f3)) (trace "X" (f4)) (trace "X" (k1)))))))))));
1036 KindUnliftedType -> (trace "X" (f1));
1037 KindUnboxedTuple -> (trace "X" (f2));
1038 KindArgType -> (trace "X" (f3));
1039 KindOpenType -> (trace "X" (f4))}))
1041 kind_rec :: a1 -> (Kind -> a1 -> Kind -> a1 -> a1) -> a1 -> a1 -> a1 -> a1 -> Kind -> a1
1043 (trace "X" (kind_rect))
1045 kindToString :: Kind -> Prelude.String
1047 (trace "X" (case (trace "X" (k)) of {
1048 KindStar -> (trace "X" ((:) (trace "X" ('*')) (trace "X" ([]))));
1050 (trace "X" (case (trace "X" (k1)) of {
1051 KindStar -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('*')) (trace "X" (((:) (trace "X" ('=')) (trace "X" (((:) (trace "X" ('>')) (trace "X" ([]))))))))))) (trace "X" ((trace "X" ((kindToString (trace "X" (k2)))))))))));
1052 _ -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('(')) (trace "X" ([]))))) (trace "X" ((trace "X" ((kindToString (trace "X" (k1)))))))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" (((:) (trace "X" ('=')) (trace "X" (((:) (trace "X" ('>')) (trace "X" ([])))))))))))))))) (trace "X" ((trace "X" ((kindToString (trace "X" (k2)))))))))))}));
1053 KindUnliftedType -> (trace "X" ((:) (trace "X" ('#')) (trace "X" ([]))));
1054 KindUnboxedTuple -> (trace "X" ((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('#')) (trace "X" (((:) (trace "X" (')')) (trace "X" ([]))))))))));
1055 KindArgType -> (trace "X" ((:) (trace "X" ('?')) (trace "X" (((:) (trace "X" ('?')) (trace "X" ([])))))));
1056 KindOpenType -> (trace "X" ((:) (trace "X" ('?')) (trace "X" ([]))))}))
1058 kindToString0 :: ToString Kind
1060 (trace "X" (kindToString))
1064 (trace "X" (KindArrow (trace "X" (KindStar)) (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar)))))))
1066 kindToLatexMath :: Kind -> LatexMath
1068 (trace "X" (case (trace "X" (k)) of {
1069 KindStar -> (trace "X" ((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" ([]))))))))))))))));
1071 (trace "X" (case (trace "X" (k1)) of {
1072 KindStar -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((kindToLatexMath (trace "X" (k2)))))))))));
1073 _ -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('(')) (trace "X" ([]))))) (trace "X" ((trace "X" ((kindToLatexMath (trace "X" (k1)))))))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((kindToLatexMath (trace "X" (k2)))))))))))}));
1074 KindUnliftedType -> (trace "X" ((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('#')) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))));
1075 KindUnboxedTuple -> (trace "X" ((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('#')) (trace "X" (((:) (trace "X" (')')) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))));
1076 KindArgType -> (trace "X" ((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('?')) (trace "X" (((:) (trace "X" ('?')) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))));
1077 KindOpenType -> (trace "X" ((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('?')) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))}))
1079 kindEqDecidable :: EqDecidable Kind
1080 kindEqDecidable v1 =
1081 (trace "X" ((trace "X" (kind_rec (trace "X" ((\v2 ->
1082 (trace "X" (case (trace "X" (v2)) of {
1083 KindStar -> (trace "X" (Prelude.True));
1084 _ -> (trace "X" (Prelude.False))}))))) (trace "X" ((\v1_1 iHv1_1 v1_2 iHv1_2 v2 ->
1085 (trace "X" (case (trace "X" (v2)) of {
1086 KindArrow v2_1 v2_2 ->
1087 (trace "X" (let {s = (trace "X" ((trace "X" (iHv1_1 (trace "X" (v2_1))))))} in
1088 (trace "X" (case (trace "X" (s)) of {
1090 (trace "X" (let {s0 = (trace "X" ((trace "X" (iHv1_2 (trace "X" (v2_2))))))} in
1091 (trace "X" (case (trace "X" (s0)) of {
1092 Prelude.True -> (trace "X" ((trace "X" (eq_rec_r (trace "X" (v2_2)) (trace "X" ((\iHv1_3 -> (trace "X" ((trace "X" (eq_rec_r (trace "X" (v2_1)) (trace "X" ((\iHv1_4 -> (trace "X" (Prelude.True))))) (trace "X" (v1_1)) (trace "X" (iHv1_1))))))))) (trace "X" (v1_2)) (trace "X" (iHv1_2))))));
1093 Prelude.False -> (trace "X" ((trace "X" (eq_rec_r (trace "X" (v2_1)) (trace "X" ((\iHv1_3 -> (trace "X" (Prelude.False))))) (trace "X" (v1_1)) (trace "X" (iHv1_1))))))}))));
1095 (trace "X" (let {s0 = (trace "X" ((trace "X" (iHv1_2 (trace "X" (v2_2))))))} in
1096 (trace "X" (case (trace "X" (s0)) of {
1097 Prelude.True -> (trace "X" ((trace "X" (eq_rec_r (trace "X" (v2_2)) (trace "X" ((\iHv1_3 -> (trace "X" (Prelude.False))))) (trace "X" (v1_2)) (trace "X" (iHv1_2))))));
1098 Prelude.False -> (trace "X" (Prelude.False))}))))}))));
1099 _ -> (trace "X" (Prelude.False))}))))) (trace "X" ((\v2 ->
1100 (trace "X" (case (trace "X" (v2)) of {
1101 KindUnliftedType -> (trace "X" (Prelude.True));
1102 _ -> (trace "X" (Prelude.False))}))))) (trace "X" ((\v2 ->
1103 (trace "X" (case (trace "X" (v2)) of {
1104 KindUnboxedTuple -> (trace "X" (Prelude.True));
1105 _ -> (trace "X" (Prelude.False))}))))) (trace "X" ((\v2 ->
1106 (trace "X" (case (trace "X" (v2)) of {
1107 KindArgType -> (trace "X" (Prelude.True));
1108 _ -> (trace "X" (Prelude.False))}))))) (trace "X" ((\v2 ->
1109 (trace "X" (case (trace "X" (v2)) of {
1110 KindOpenType -> (trace "X" (Prelude.True));
1111 _ -> (trace "X" (Prelude.False))}))))) (trace "X" (v1))))))
1113 tyConToString :: ToString TyCon.TyCon
1115 (trace "X" (outputableToString))
1117 tyFunToString :: ToString TyCon.TyCon
1119 (trace "X" (outputableToString))
1121 arrowTyCon :: TyCon.TyCon
1122 arrowTyCon = Type.funTyCon
1124 haskLiteralToString :: ToString Literal.Literal
1125 haskLiteralToString =
1126 (trace "X" (outputableToString))
1128 haskLiteralToTyCon :: Literal.Literal -> TyCon.TyCon
1129 haskLiteralToTyCon lit =
1130 (trace "X" (case (trace "X" (lit)) of {
1131 Literal.MachChar h -> (trace "X" (TysPrim.charPrimTyCon));
1132 Literal.MachInt h -> (trace "X" (TysPrim.intPrimTyCon));
1133 Literal.MachInt64 h -> (trace "X" (TysPrim.int64PrimTyCon));
1134 Literal.MachWord h -> (trace "X" (TysPrim.wordPrimTyCon));
1135 Literal.MachWord64 h -> (trace "X" (TysPrim.word64PrimTyCon));
1136 Literal.MachFloat h -> (trace "X" (TysPrim.floatPrimTyCon));
1137 Literal.MachDouble h -> (trace "X" (TysPrim.doublePrimTyCon));
1138 _ -> (trace "X" (TysPrim.addrPrimTyCon))}))
1140 coreVarEqDecidable :: EqDecidable Var.Var
1141 coreVarEqDecidable =
1144 coreVarToString :: ToString Var.Var
1146 (trace "X" (outputableToString))
1148 tyConEqDecidable :: EqDecidable TyCon.TyCon
1152 tyFunEqDecidable :: EqDecidable TyCon.TyCon
1156 coreTypeToString :: ToString TypeRep.Type
1158 (trace "X" ((outputableToString . coreViewDeep)))
1160 coreDataConToString :: ToString DataCon.DataCon
1161 coreDataConToString =
1162 (trace "X" (outputableToString))
1164 coreExprToString :: ToString (CoreSyn.Expr Var.Var)
1166 (trace "X" (outputableToString))
1169 WeakTypeVar Var.Var Kind
1172 WTyVarTy WeakTypeVar0
1173 | WAppTy WeakType WeakType
1174 | WTyFunApp TyCon.TyCon (([]) WeakType)
1175 | WTyCon TyCon.TyCon
1177 | WCodeTy WeakTypeVar0 WeakType
1178 | WCoFunTy WeakType WeakType WeakType
1179 | WForAllTy WeakTypeVar0 WeakType
1180 | WClassP Class.Class (([]) WeakType)
1181 | WIParam (BasicTypes.IPName Name.Name) WeakType
1183 weakTypeVarEqDecidable :: EqDecidable WeakTypeVar0
1184 weakTypeVarEqDecidable v1 v2 =
1185 (trace "X" (case (trace "X" (v1)) of {
1186 WeakTypeVar cv1 k1 ->
1187 (trace "X" (case (trace "X" (v2)) of {
1188 WeakTypeVar cv2 k2 ->
1189 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (coreVarEqDecidable)) (trace "X" (cv1)) (trace "X" (cv2))))))} in
1190 (trace "X" (case (trace "X" (s)) of {
1192 (trace "X" ((trace "X" (eq_rec_r (trace "X" (cv2))
1193 (trace "X" ((let {s0 = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (k1)) (trace "X" (k2))))))} in
1194 (trace "X" (case (trace "X" (s0)) of {
1195 Prelude.True -> (trace "X" ((trace "X" (eq_rec_r (trace "X" (k2)) (trace "X" (Prelude.True)) (trace "X" (k1))))));
1196 Prelude.False -> (trace "X" (Prelude.False))}))))) (trace "X" (cv1))))));
1197 Prelude.False -> (trace "X" (Prelude.False))}))))}))}))
1200 WeakCoerVar Var.Var WeakType WeakType
1205 | WCoApp WeakCoercion WeakCoercion
1206 | WCoAppT WeakCoercion WeakType
1207 | WCoAll Kind (WeakTypeVar0 -> WeakCoercion)
1208 | WCoSym WeakCoercion
1209 | WCoComp WeakCoercion WeakCoercion
1210 | WCoLeft WeakCoercion
1211 | WCoRight WeakCoercion
1212 | WCoUnsafe WeakType WeakType
1214 weakCoercionTypes :: WeakCoercion -> (,) WeakType WeakType
1215 weakCoercionTypes wc =
1216 (trace "X" (case (trace "X" (wc)) of {
1217 WCoSym c -> (trace "X" (case (trace "X" ((trace "X" (weakCoercionTypes (trace "X" (c)))))) of {
1218 (,) t2 t1 -> (trace "X" ((,) (trace "X" (t1)) (trace "X" (t2))))}));
1219 WCoUnsafe t1 t2 -> (trace "X" ((,) (trace "X" (t1)) (trace "X" (t2))));
1220 _ -> (trace "X" ((,) (trace "X" (WFunTyCon)) (trace "X" (WFunTyCon))))}))
1222 weakTypeToString :: ToString WeakType
1224 (trace "X" ((coreTypeToString . weakTypeToCoreType)))
1227 WeakExprVar Var.Var WeakType
1230 WExprVar WeakExprVar0
1231 | WTypeVar WeakTypeVar0
1232 | WCoerVar WeakCoerVar0
1234 weakTypeVarToKind :: WeakTypeVar0 -> Kind
1235 weakTypeVarToKind tv =
1236 (trace "X" (case (trace "X" (tv)) of {
1237 WeakTypeVar c k -> (trace "X" (k))}))
1239 weakVarToCoreVar :: WeakVar -> Var.Var
1240 weakVarToCoreVar wv =
1241 (trace "X" (case (trace "X" (wv)) of {
1242 WExprVar w -> (trace "X" (case (trace "X" (w)) of {
1243 WeakExprVar v w0 -> (trace "X" (v))}));
1244 WTypeVar w -> (trace "X" (case (trace "X" (w)) of {
1245 WeakTypeVar v k -> (trace "X" (v))}));
1246 WCoerVar w -> (trace "X" (case (trace "X" (w)) of {
1247 WeakCoerVar v w0 w1 -> (trace "X" (v))}))}))
1249 tyConTyVars :: TyCon.TyCon -> ([]) WeakTypeVar0
1251 (trace "X" ((trace "X" (filter
1252 (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1253 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (x)))))) of {
1254 WTypeVar v -> (trace "X" (Prelude.Just (trace "X" (v))));
1255 _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" ((trace "X" ((getTyConTyVars (trace "X" (tc))))))))))))))))
1257 tyConKind :: TyCon.TyCon -> ([]) Kind
1259 (trace "X" ((trace "X" (map (trace "X" ((\x -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x))))))))) (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))
1261 tyFunKind :: TyCon.TyCon -> (,) (([]) Kind) Kind
1263 (trace "X" ((trace "X" (rawTyFunKind (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc)))))))))))
1266 WeakDataAlt DataCon.DataCon
1267 | WeakLitAlt Literal.Literal
1272 | WELit Literal.Literal
1273 | WELet WeakExprVar0 WeakExpr WeakExpr
1274 | WELetRec (Tree (Prelude.Maybe ((,) WeakExprVar0 WeakExpr))) WeakExpr
1275 | WECast WeakExpr WeakCoercion
1276 | WENote CoreSyn.Note WeakExpr
1277 | WEApp WeakExpr WeakExpr
1278 | WETyApp WeakExpr WeakType
1279 | WECoApp WeakExpr WeakCoercion
1280 | WELam WeakExprVar0 WeakExpr
1281 | WETyLam WeakTypeVar0 WeakExpr
1282 | WECoLam WeakCoerVar0 WeakExpr
1283 | WEBrak WeakExprVar0 WeakTypeVar0 WeakExpr WeakType
1284 | WEEsc WeakExprVar0 WeakTypeVar0 WeakExpr WeakType
1285 | WECSP WeakExprVar0 WeakTypeVar0 WeakExpr WeakType
1286 | WECase WeakExprVar0 WeakExpr WeakType TyCon.TyCon (([]) WeakType) (Tree (Prelude.Maybe ((,) ((,) ((,) ((,) WeakAltCon (([]) WeakTypeVar0)) (([]) WeakCoerVar0)) (([]) WeakExprVar0)) WeakExpr)))
1288 mkTyFunApplication :: TyCon.TyCon -> (([]) WeakType) -> OrError WeakType
1289 mkTyFunApplication tf lwt =
1290 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((split_list (trace "X" (lwt)) (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((fst (trace "X" ((trace "X" ((tyFunKind (trace "X" (tf)))))))))))))))))))))) (trace "X" ((\argsrest -> (trace "X" (case (trace "X" (argsrest)) of {
1291 (,) args rest -> (trace "X" (OK (trace "X" ((trace "X" ((fold_left (trace "X" ((\x y -> (trace "X" (WAppTy (trace "X" (x)) (trace "X" (y))))))) (trace "X" (rest)) (trace "X" ((WTyFunApp (trace "X" (tf)) (trace "X" (args))))))))))))})))))))))
1293 coreTypeToWeakType' :: TypeRep.Type -> OrError WeakType
1294 coreTypeToWeakType' ct =
1295 (trace "X" (case (trace "X" (ct)) of {
1296 TypeRep.TyVarTy cv ->
1297 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (cv)))))) of {
1298 WExprVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1299 WTypeVar tv -> (trace "X" (OK (trace "X" ((WTyVarTy (trace "X" (tv)))))));
1300 WCoerVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1301 TypeRep.AppTy t1 t2 -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (t2))))))) (trace "X" ((\t2' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (t1))))))) (trace "X" ((\t1' -> (trace "X" (OK (trace "X" ((WAppTy (trace "X" (t1')) (trace "X" (t2')))))))))))))))))))));
1302 TypeRep.TyConApp tc_ lct ->
1304 recurse = (trace "X" ((trace "X" (let {
1306 (trace "X" (case (trace "X" (tl)) of {
1307 ([]) -> (trace "X" (OK (trace "X" (([])))));
1308 (:) a b -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (a))))))) (trace "X" ((\a' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((rec (trace "X" (b))))))) (trace "X" ((\b' -> (trace "X" (OK (trace "X" (((:) (trace "X" (a')) (trace "X" (b')))))))))))))))))))))}))}
1309 in rec (trace "X" (lct))))))}
1311 (trace "X" (case (trace "X" ((trace "X" (tyConOrTyFun (trace "X" (tc_)))))) of {
1313 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (tyConEqDecidable)) (trace "X" (tc)) (trace "X" (TysWiredIn.hetMetCodeTypeTyCon)))))) of {
1315 (trace "X" (case (trace "X" (lct)) of {
1316 ([]) -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreTypeToString)) (trace "X" (ct))))))))))))));
1318 (trace "X" (case (trace "X" (c)) of {
1319 TypeRep.TyVarTy ec ->
1320 (trace "X" (case (trace "X" (l)) of {
1321 ([]) -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreTypeToString)) (trace "X" (ct))))))))))))));
1323 (trace "X" (case (trace "X" (l0)) of {
1325 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (ec)))))) of {
1326 WExprVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1327 WTypeVar ec' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (tbody))))))) (trace "X" ((\tbody' -> (trace "X" (OK (trace "X" ((WCodeTy (trace "X" (ec')) (trace "X" (tbody'))))))))))))));
1328 WCoerVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1329 (:) c0 l1 -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreTypeToString)) (trace "X" (ct))))))))))))))}))}));
1330 _ -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreTypeToString)) (trace "X" (ct))))))))))))))}))}));
1333 tc' = (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (tyConEqDecidable)) (trace "X" (tc)) (trace "X" (arrowTyCon)))))) of {
1334 Prelude.True -> (trace "X" (WFunTyCon));
1335 Prelude.False -> (trace "X" (WTyCon (trace "X" (tc))))}))}
1337 (trace "X" ((trace "X" (orErrorBind (trace "X" (recurse)) (trace "X" ((\recurse' -> (trace "X" (OK (trace "X" ((trace "X" ((fold_left (trace "X" ((\x y -> (trace "X" (WAppTy (trace "X" (x)) (trace "X" (y))))))) (trace "X" (recurse')) (trace "X" (tc'))))))))))))))))))}));
1338 Prelude.Right tf -> (trace "X" ((trace "X" (orErrorBind (trace "X" (recurse)) (trace "X" ((\recurse' -> (trace "X" ((trace "X" (mkTyFunApplication (trace "X" (tf)) (trace "X" (recurse')))))))))))))}))));
1339 TypeRep.FunTy t1 t2 ->
1340 (trace "X" (case (trace "X" (t1)) of {
1342 (trace "X" (case (trace "X" (p)) of {
1343 TypeRep.EqPred t3 t4 -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (t3))))))) (trace "X" ((\t1' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (t4))))))) (trace "X" ((\t2' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (t2))))))) (trace "X" ((\t3' -> (trace "X" (OK (trace "X" ((WCoFunTy (trace "X" (t1')) (trace "X" (t2')) (trace "X" (t3'))))))))))))))))))))))))))));
1344 _ -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (t1))))))) (trace "X" ((\t1' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (t2))))))) (trace "X" ((\t2' -> (trace "X" (OK (trace "X" ((WAppTy (trace "X" ((WAppTy (trace "X" (WFunTyCon)) (trace "X" (t1'))))) (trace "X" (t2')))))))))))))))))))))}));
1345 _ -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (t1))))))) (trace "X" ((\t1' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (t2))))))) (trace "X" ((\t2' -> (trace "X" (OK (trace "X" ((WAppTy (trace "X" ((WAppTy (trace "X" (WFunTyCon)) (trace "X" (t1'))))) (trace "X" (t2')))))))))))))))))))))}));
1346 TypeRep.ForAllTy cv t ->
1347 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (cv)))))) of {
1348 WExprVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1349 WTypeVar tv -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (t))))))) (trace "X" ((\t' -> (trace "X" (OK (trace "X" ((WForAllTy (trace "X" (tv)) (trace "X" (t'))))))))))))));
1350 WCoerVar w -> (trace "X" (case (trace "X" (w)) of {
1351 WeakCoerVar v t1' t2' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (t))))))) (trace "X" ((\t3' -> (trace "X" (OK (trace "X" ((WCoFunTy (trace "X" (t1')) (trace "X" (t2')) (trace "X" (t3'))))))))))))))}))}));
1353 (trace "X" (case (trace "X" (p)) of {
1354 TypeRep.ClassP cl lct ->
1355 (trace "X" ((trace "X" (orErrorBind
1356 (trace "X" ((trace "X" ((let {
1358 (trace "X" (case (trace "X" (tl)) of {
1359 ([]) -> (trace "X" (OK (trace "X" (([])))));
1360 (:) a b -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (a))))))) (trace "X" ((\a' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((rec (trace "X" (b))))))) (trace "X" ((\b' -> (trace "X" (OK (trace "X" (((:) (trace "X" (a')) (trace "X" (b')))))))))))))))))))))}))}
1361 in rec (trace "X" (lct))))))) (trace "X" ((\lct' -> (trace "X" (OK (trace "X" ((WClassP (trace "X" (cl)) (trace "X" (lct'))))))))))))));
1362 TypeRep.IParam ipn ct0 -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" (ct0))))))) (trace "X" ((\ct' -> (trace "X" (OK (trace "X" ((WIParam (trace "X" (ipn)) (trace "X" (ct'))))))))))))));
1363 TypeRep.EqPred c c0 -> (trace "X" (Error (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('q')) (trace "X" (((:) (trace "X" ('P')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))}))}))
1365 coreTypeToWeakType :: TypeRep.Type -> OrError WeakType
1366 coreTypeToWeakType t =
1367 (trace "X" ((trace "X" (addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreTypeToString)) (trace "X" (t)))))))))))) (trace "X" (eol))))))) (trace "X" ((trace "X" ((coreTypeToWeakType' (trace "X" ((trace "X" ((coreViewDeep (trace "X" (t))))))))))))))))
1369 isBrak :: (CoreSyn.Expr Var.Var) -> Prelude.Maybe ((,) ((,) WeakExprVar0 WeakTypeVar0) TypeRep.Type)
1371 (trace "X" (case (trace "X" (ce)) of {
1373 (trace "X" (case (trace "X" (c)) of {
1374 CoreSyn.App c1 c2 ->
1375 (trace "X" (case (trace "X" (c1)) of {
1377 (trace "X" (case (trace "X" (c2)) of {
1379 (trace "X" (case (trace "X" (c3)) of {
1380 TypeRep.TyVarTy ec ->
1381 (trace "X" (case (trace "X" (c0)) of {
1382 CoreSyn.Type tbody ->
1383 (trace "X" (case (trace "X" ((trace "X" ((==) (trace "X" (PrelNames.hetmet_brak_name)) (trace "X" ((trace "X" ((Var.varName (trace "X" (v))))))))))) of {
1385 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (ec)))))) of {
1387 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1388 WExprVar v' -> (trace "X" (Prelude.Just (trace "X" (((,) (trace "X" (((,) (trace "X" (v')) (trace "X" (tv))))) (trace "X" (tbody)))))));
1389 _ -> (trace "X" (Prelude.Nothing))}));
1390 _ -> (trace "X" (Prelude.Nothing))}));
1391 Prelude.False -> (trace "X" (Prelude.Nothing))}));
1392 _ -> (trace "X" (Prelude.Nothing))}));
1393 _ -> (trace "X" (Prelude.Nothing))}));
1394 _ -> (trace "X" (Prelude.Nothing))}));
1395 _ -> (trace "X" (Prelude.Nothing))}));
1396 _ -> (trace "X" (Prelude.Nothing))}));
1397 _ -> (trace "X" (Prelude.Nothing))}))
1399 isEsc :: (CoreSyn.Expr Var.Var) -> Prelude.Maybe ((,) ((,) WeakExprVar0 WeakTypeVar0) TypeRep.Type)
1401 (trace "X" (case (trace "X" (ce)) of {
1403 (trace "X" (case (trace "X" (c)) of {
1404 CoreSyn.App c1 c2 ->
1405 (trace "X" (case (trace "X" (c1)) of {
1407 (trace "X" (case (trace "X" (c2)) of {
1409 (trace "X" (case (trace "X" (c3)) of {
1410 TypeRep.TyVarTy ec ->
1411 (trace "X" (case (trace "X" (c0)) of {
1412 CoreSyn.Type tbody ->
1413 (trace "X" (case (trace "X" ((trace "X" ((==) (trace "X" (PrelNames.hetmet_esc_name)) (trace "X" ((trace "X" ((Var.varName (trace "X" (v))))))))))) of {
1415 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (ec)))))) of {
1417 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1418 WExprVar v' -> (trace "X" (Prelude.Just (trace "X" (((,) (trace "X" (((,) (trace "X" (v')) (trace "X" (tv))))) (trace "X" (tbody)))))));
1419 _ -> (trace "X" (Prelude.Nothing))}));
1420 _ -> (trace "X" (Prelude.Nothing))}));
1421 Prelude.False -> (trace "X" (Prelude.Nothing))}));
1422 _ -> (trace "X" (Prelude.Nothing))}));
1423 _ -> (trace "X" (Prelude.Nothing))}));
1424 _ -> (trace "X" (Prelude.Nothing))}));
1425 _ -> (trace "X" (Prelude.Nothing))}));
1426 _ -> (trace "X" (Prelude.Nothing))}));
1427 _ -> (trace "X" (Prelude.Nothing))}))
1429 isCSP :: (CoreSyn.Expr Var.Var) -> Prelude.Maybe ((,) ((,) WeakExprVar0 WeakTypeVar0) TypeRep.Type)
1431 (trace "X" (case (trace "X" (ce)) of {
1433 (trace "X" (case (trace "X" (c)) of {
1434 CoreSyn.App c1 c2 ->
1435 (trace "X" (case (trace "X" (c1)) of {
1437 (trace "X" (case (trace "X" (c2)) of {
1439 (trace "X" (case (trace "X" (c3)) of {
1440 TypeRep.TyVarTy ec ->
1441 (trace "X" (case (trace "X" (c0)) of {
1442 CoreSyn.Type tbody ->
1443 (trace "X" (case (trace "X" ((trace "X" ((==) (trace "X" (PrelNames.hetmet_csp_name)) (trace "X" ((trace "X" ((Var.varName (trace "X" (v))))))))))) of {
1445 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (ec)))))) of {
1447 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1448 WExprVar v' -> (trace "X" (Prelude.Just (trace "X" (((,) (trace "X" (((,) (trace "X" (v')) (trace "X" (tv))))) (trace "X" (tbody)))))));
1449 _ -> (trace "X" (Prelude.Nothing))}));
1450 _ -> (trace "X" (Prelude.Nothing))}));
1451 Prelude.False -> (trace "X" (Prelude.Nothing))}));
1452 _ -> (trace "X" (Prelude.Nothing))}));
1453 _ -> (trace "X" (Prelude.Nothing))}));
1454 _ -> (trace "X" (Prelude.Nothing))}));
1455 _ -> (trace "X" (Prelude.Nothing))}));
1456 _ -> (trace "X" (Prelude.Nothing))}));
1457 _ -> (trace "X" (Prelude.Nothing))}))
1459 expectTyConApp :: WeakType -> (([]) WeakType) -> OrError ((,) TyCon.TyCon (([]) WeakType))
1460 expectTyConApp wt acc =
1461 (trace "X" (case (trace "X" (wt)) of {
1462 WAppTy t1 t2 -> (trace "X" ((trace "X" (expectTyConApp (trace "X" (t1)) (trace "X" (((:) (trace "X" (t2)) (trace "X" (acc)))))))));
1463 WTyFunApp tc tys -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (weakTypeToString)) (trace "X" (wt))))))))))))));
1464 WTyCon tc -> (trace "X" (OK (trace "X" (((,) (trace "X" (tc)) (trace "X" (acc)))))));
1465 _ -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (weakTypeToString)) (trace "X" (wt))))))))))))))}))
1467 coreExprToWeakExpr :: (CoreSyn.Expr Var.Var) -> OrError WeakExpr
1468 coreExprToWeakExpr ce =
1469 (trace "X" (case (trace "X" (ce)) of {
1471 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1472 WExprVar ev -> (trace "X" (OK (trace "X" ((WEVar (trace "X" (ev)))))));
1473 WTypeVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('V')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('!')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1474 WCoerVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('V')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('!')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1475 CoreSyn.Lit lit -> (trace "X" (OK (trace "X" ((WELit (trace "X" (lit)))))));
1476 CoreSyn.App e1 e2 ->
1477 (trace "X" (case (trace "X" ((trace "X" (isBrak (trace "X" (e1)))))) of {
1479 (trace "X" (case (trace "X" (p)) of {
1480 (,) p0 t -> (trace "X" (case (trace "X" (p0)) of {
1481 (,) v tv -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e2))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType (trace "X" (t))))))) (trace "X" ((\t' -> (trace "X" (OK (trace "X" ((WEBrak (trace "X" (v)) (trace "X" (tv)) (trace "X" (e')) (trace "X" (t')))))))))))))))))))))}))}));
1483 (trace "X" (case (trace "X" ((trace "X" (isEsc (trace "X" (e1)))))) of {
1485 (trace "X" (case (trace "X" (p)) of {
1486 (,) p0 t -> (trace "X" (case (trace "X" (p0)) of {
1487 (,) v tv -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e2))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType (trace "X" (t))))))) (trace "X" ((\t' -> (trace "X" (OK (trace "X" ((WEEsc (trace "X" (v)) (trace "X" (tv)) (trace "X" (e')) (trace "X" (t')))))))))))))))))))))}))}));
1489 (trace "X" (case (trace "X" ((trace "X" (isCSP (trace "X" (e1)))))) of {
1491 (trace "X" (case (trace "X" (p)) of {
1492 (,) p0 t -> (trace "X" (case (trace "X" (p0)) of {
1493 (,) v tv -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e2))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType (trace "X" (t))))))) (trace "X" ((\t' -> (trace "X" (OK (trace "X" ((WECSP (trace "X" (v)) (trace "X" (tv)) (trace "X" (e')) (trace "X" (t')))))))))))))))))))))}))}));
1495 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e1))))))) (trace "X" ((\e1' ->
1496 (trace "X" (case (trace "X" (e2)) of {
1497 CoreSyn.Type t -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType (trace "X" (t))))))) (trace "X" ((\t' -> (trace "X" (OK (trace "X" ((WETyApp (trace "X" (e1')) (trace "X" (t'))))))))))))));
1498 _ -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e2))))))) (trace "X" ((\e2' -> (trace "X" (OK (trace "X" ((WEApp (trace "X" (e1')) (trace "X" (e2'))))))))))))))})))))))))}))}))}));
1500 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1501 WExprVar ev -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" (OK (trace "X" ((WELam (trace "X" (ev)) (trace "X" (e'))))))))))))));
1502 WTypeVar tv -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" (OK (trace "X" ((WETyLam (trace "X" (tv)) (trace "X" (e'))))))))))))));
1503 WCoerVar cv -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" (OK (trace "X" ((WECoLam (trace "X" (cv)) (trace "X" (e'))))))))))))))}));
1505 (trace "X" (case (trace "X" (c)) of {
1506 CoreSyn.NonRec v ve ->
1507 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1508 WExprVar ev -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (ve))))))) (trace "X" ((\ve' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" (OK (trace "X" ((WELet (trace "X" (ev)) (trace "X" (ve')) (trace "X" (e')))))))))))))))))))));
1510 (trace "X" (case (trace "X" (e)) of {
1511 CoreSyn.Type t -> (trace "X" (Error (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))));
1512 _ -> (trace "X" (Error (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('<')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (')')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('!')) (trace "X" (((:) (trace "X" ('=')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1513 WCoerVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('<')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('V')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1515 (trace "X" ((trace "X" (orErrorBind
1516 (trace "X" ((trace "X" ((let {
1517 coreExprToWeakExprList cel =
1518 (trace "X" (case (trace "X" (cel)) of {
1519 ([]) -> (trace "X" (OK (trace "X" (([])))));
1521 (trace "X" (case (trace "X" (p)) of {
1523 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExprList (trace "X" (t))))))) (trace "X" ((\t' ->
1524 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v')))))) of {
1525 WExprVar ev -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e'))))))) (trace "X" ((\e'0 -> (trace "X" (OK (trace "X" (((:) (trace "X" (((,) (trace "X" (ev)) (trace "X" (e'0))))) (trace "X" (t'))))))))))))));
1526 WTypeVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1527 WCoerVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))})))))))))}))}))}
1528 in coreExprToWeakExprList (trace "X" (rb))))))) (trace "X" ((\rb' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" (OK (trace "X" ((WELetRec (trace "X" ((trace "X" ((unleaves' (trace "X" (rb'))))))) (trace "X" (e')))))))))))))))))))))}));
1529 CoreSyn.Case e v tbranches alts ->
1530 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1532 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType (trace "X" ((trace "X" ((CoreUtils.exprType (trace "X" (e)))))))))))) (trace "X" ((\te' ->
1533 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((expectTyConApp (trace "X" (te')) (trace "X" (([])))))))) (trace "X" ((\tca ->
1534 (trace "X" (case (trace "X" (tca)) of {
1536 (trace "X" ((trace "X" (orErrorBind
1537 (trace "X" ((trace "X" ((let {
1538 mkBranches branches =
1539 (trace "X" (case (trace "X" (branches)) of {
1540 ([]) -> (trace "X" (OK (trace "X" (([])))));
1542 (trace "X" (case (trace "X" (t)) of {
1544 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((mkBranches (trace "X" (rest))))))) (trace "X" ((\rest' ->
1545 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e0))))))) (trace "X" ((\e' ->
1546 (trace "X" (case (trace "X" (alt)) of {
1547 CoreSyn.DataAlt dc ->
1548 (trace "X" (let {vars0 = (trace "X" ((trace "X" (map (trace "X" (coreVarToWeakVar)) (trace "X" (vars))))))} in
1549 (trace "X" (OK (trace "X" (((:) (trace "X" (((,) (trace "X" (((,) (trace "X" (((,) (trace "X" (((,) (trace "X" ((WeakDataAlt (trace "X" (dc)))))
1550 (trace "X" ((trace "X" ((filter
1551 (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1552 (trace "X" (case (trace "X" (x)) of {
1553 WTypeVar v0 -> (trace "X" (Prelude.Just (trace "X" (v0))));
1554 _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" (vars0)))))))))))))))
1555 (trace "X" ((trace "X" ((filter
1556 (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1557 (trace "X" (case (trace "X" (x)) of {
1558 WCoerVar v0 -> (trace "X" (Prelude.Just (trace "X" (v0))));
1559 _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" (vars0)))))))))))))))
1560 (trace "X" ((trace "X" ((filter
1561 (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1562 (trace "X" (case (trace "X" (x)) of {
1563 WExprVar v0 -> (trace "X" (Prelude.Just (trace "X" (v0))));
1564 _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" (vars0))))))))))))))) (trace "X" (e'))))) (trace "X" (rest')))))))));
1565 CoreSyn.LitAlt lit -> (trace "X" (OK (trace "X" (((:) (trace "X" (((,) (trace "X" (((,) (trace "X" (((,) (trace "X" (((,) (trace "X" ((WeakLitAlt (trace "X" (lit))))) (trace "X" (([])))))) (trace "X" (([])))))) (trace "X" (([])))))) (trace "X" (e'))))) (trace "X" (rest')))))));
1566 CoreSyn.DEFAULT -> (trace "X" (OK (trace "X" (((:) (trace "X" (((,) (trace "X" (((,) (trace "X" (((,) (trace "X" (((,) (trace "X" (WeakDEFAULT)) (trace "X" (([])))))) (trace "X" (([])))))) (trace "X" (([])))))) (trace "X" (e'))))) (trace "X" (rest')))))))}))))))))))))))))}))}))}
1567 in mkBranches (trace "X" (alts))))))) (trace "X" ((\branches -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e))))))) (trace "X" ((\scrutinee -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType (trace "X" (tbranches))))))) (trace "X" ((\tbranches' -> (trace "X" (OK (trace "X" ((WECase (trace "X" (ev)) (trace "X" (scrutinee)) (trace "X" (tbranches')) (trace "X" (tc)) (trace "X" (lt)) (trace "X" ((trace "X" ((unleaves (trace "X" (branches)))))))))))))))))))))))))))))))))}))))))))))))))));
1568 WTypeVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1569 WCoerVar w -> (trace "X" (Error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1570 CoreSyn.Cast e co -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" (OK (trace "X" ((WECast (trace "X" (e')) (trace "X" ((trace "X" ((coreCoercionToWeakCoercion (trace "X" (co)))))))))))))))))));
1571 CoreSyn.Note n e -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" (OK (trace "X" ((WENote (trace "X" (n)) (trace "X" (e'))))))))))))));
1572 CoreSyn.Type t -> (trace "X" (Error (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))
1574 dataConExTyVars :: DataCon.DataCon -> ([]) WeakTypeVar0
1575 dataConExTyVars cdc =
1576 (trace "X" ((trace "X" (filter
1577 (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1578 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (x)))))) of {
1579 WTypeVar v -> (trace "X" (Prelude.Just (trace "X" (v))));
1580 _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" ((trace "X" ((DataCon.dataConExTyVars (trace "X" (cdc))))))))))))))))
1582 dataConCoerKinds :: DataCon.DataCon -> ([]) ((,) WeakType WeakType)
1583 dataConCoerKinds cdc =
1584 (trace "X" ((trace "X" (filter
1585 (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1586 (trace "X" (case (trace "X" (x)) of {
1587 TypeRep.EqPred t1 t2 ->
1588 (trace "X" (case (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType (trace "X" (t1))))))) (trace "X" ((\t1' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType (trace "X" (t2))))))) (trace "X" ((\t2' -> (trace "X" (OK (trace "X" (((,) (trace "X" (t1')) (trace "X" (t2'))))))))))))))))))))) of {
1589 Error error_message -> (trace "X" (Prelude.Nothing));
1590 OK z -> (trace "X" (Prelude.Just (trace "X" (z))))}));
1591 _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" ((trace "X" ((DataCon.dataConEqTheta (trace "X" (cdc))))))))))))))))
1593 dataConFieldTypes :: DataCon.DataCon -> ([]) WeakType
1594 dataConFieldTypes cdc =
1595 (trace "X" ((trace "X" (filter
1596 (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1597 (trace "X" (case (trace "X" ((trace "X" (coreTypeToWeakType (trace "X" (x)))))) of {
1598 Error error_message -> (trace "X" (Prelude.Nothing));
1599 OK z -> (trace "X" (Prelude.Just (trace "X" (z))))}))))) (trace "X" ((trace "X" ((DataCon.dataConOrigArgTys (trace "X" (cdc))))))))))))))))
1603 -- singleton inductive, whose constructor was mkDataCon
1605 dataConToCoreDataCon :: TyCon.TyCon -> DataCon -> DataCon.DataCon
1606 dataConToCoreDataCon tc dc =
1609 tyConKind' :: TyCon.TyCon -> Kind
1611 (trace "X" ((trace "X" (fold_right (trace "X" ((\x x0 -> (trace "X" (KindArrow (trace "X" (x)) (trace "X" (x0))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((tyConKind (trace "X" (tc)))))))))))
1613 data RawHaskType tV =
1617 | TCoerc Kind (RawHaskType tV) (RawHaskType tV) (RawHaskType tV)
1618 | TApp Kind Kind (RawHaskType tV) (RawHaskType tV)
1619 | TAll Kind (tV -> RawHaskType tV)
1620 | TCode (RawHaskType tV) (RawHaskType tV)
1621 | TyFunApp TyCon.TyCon (([]) Kind) Kind (RawHaskTypeList tV)
1622 data RawHaskTypeList tV =
1624 | TyFunApp_cons Kind (([]) Kind) (RawHaskType tV) (RawHaskTypeList tV)
1626 data RawCoercionKind tV =
1627 MkRawCoercionKind Kind (RawHaskType tV) (RawHaskType tV)
1629 type TypeEnv = ([]) Kind
1631 type InstantiatedTypeEnv tV = IList Kind tV
1633 type HaskCoercionKind = () -> (InstantiatedTypeEnv ()) -> RawCoercionKind ()
1635 type CoercionEnv = ([]) HaskCoercionKind
1637 type InstantiatedCoercionEnv tV cV = Vec cV
1639 type HaskTyVar = () -> (InstantiatedTypeEnv ()) -> ()
1641 type HaskCoVar = () -> () -> (InstantiatedTypeEnv ()) -> (InstantiatedCoercionEnv () ()) -> ()
1643 type HaskLevel = ([]) HaskTyVar
1645 type HaskType = () -> (InstantiatedTypeEnv ()) -> RawHaskType ()
1647 haskTyVarToType :: TypeEnv -> Kind -> HaskTyVar -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1648 haskTyVarToType __U0393_0 __U03ba_ htv ite =
1649 (trace "X" (TVar (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (htv)) (trace "X" (__)) (trace "X" (ite)))))))))
1651 data HaskTypeOfSomeKind0 =
1652 HaskTypeOfSomeKind Kind HaskType
1654 data LeveledHaskType =
1655 MkLeveledHaskType HaskType HaskLevel
1657 freshHaskTyVar :: (([]) Kind) -> Kind -> (InstantiatedTypeEnv a1) -> a1
1658 freshHaskTyVar __U0393_0 __U03ba_ env =
1659 (trace "X" ((trace "X" (ilist_head (trace "X" (__U03ba_)) (trace "X" (__U0393_0)) (trace "X" (env))))))
1661 haskTAll :: TypeEnv -> Kind -> (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1662 haskTAll __U0393_0 __U03ba_ __U03c3_ env =
1663 (trace "X" (TAll (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (__U03c3_)) (trace "X" (__)) (trace "X" (env)))))))))
1665 haskTApp :: TypeEnv -> Kind -> (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) -> HaskTyVar -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1666 haskTApp __U0393_0 __U03ba_ __U03c3_ cv env =
1667 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (__U03c3_)) (trace "X" (__)) (trace "X" (env)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (cv)) (trace "X" (__)) (trace "X" (env)))))))))))
1669 haskBrak :: TypeEnv -> HaskTyVar -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1670 haskBrak __U0393_0 v t env =
1671 (trace "X" (TCode (trace "X" ((TVar (trace "X" (eCKind)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (v)) (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (t)) (trace "X" (__)) (trace "X" (env)))))))))
1673 mkHaskCoercionKind :: TypeEnv -> Kind -> HaskType -> HaskType -> (InstantiatedTypeEnv a1) -> RawCoercionKind a1
1674 mkHaskCoercionKind __U0393_0 __U03ba_ t1 t2 ite =
1675 (trace "X" (MkRawCoercionKind (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (t1)) (trace "X" (__)) (trace "X" (ite))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (t2)) (trace "X" (__)) (trace "X" (ite)))))))))
1677 flattenT :: Kind -> (RawHaskType (RawHaskType a1)) -> RawHaskType a1
1680 flattenT0 __U03ba_ exp =
1681 (trace "X" (case (trace "X" (exp)) of {
1682 TVar __U03ba_0 x -> (trace "X" (x));
1683 TCon tc -> (trace "X" (TCon (trace "X" (tc))));
1684 TArrow -> (trace "X" (TArrow));
1685 TCoerc __U03ba_0 t1 t2 t -> (trace "X" (TCoerc (trace "X" (__U03ba_0)) (trace "X" ((trace "X" ((flattenT0 (trace "X" (__U03ba_0)) (trace "X" (t1))))))) (trace "X" ((trace "X" ((flattenT0 (trace "X" (__U03ba_0)) (trace "X" (t2))))))) (trace "X" ((trace "X" ((flattenT0 (trace "X" (KindStar)) (trace "X" (t)))))))));
1686 TApp __U03ba___U2081_ __U03ba___U2082_ x y -> (trace "X" (TApp (trace "X" (__U03ba___U2081_)) (trace "X" (__U03ba___U2082_)) (trace "X" ((trace "X" ((flattenT0 (trace "X" ((KindArrow (trace "X" (__U03ba___U2082_)) (trace "X" (__U03ba___U2081_))))) (trace "X" (x))))))) (trace "X" ((trace "X" ((flattenT0 (trace "X" (__U03ba___U2082_)) (trace "X" (y)))))))));
1687 TAll __U03ba_0 y -> (trace "X" (TAll (trace "X" (__U03ba_0)) (trace "X" ((\v -> (trace "X" ((trace "X" (flattenT0 (trace "X" (KindStar)) (trace "X" ((trace "X" ((y (trace "X" ((TVar (trace "X" (__U03ba_0)) (trace "X" (v)))))))))))))))))));
1688 TCode v e -> (trace "X" (TCode (trace "X" ((trace "X" ((flattenT0 (trace "X" (eCKind)) (trace "X" (v))))))) (trace "X" ((trace "X" ((flattenT0 (trace "X" (KindStar)) (trace "X" (e)))))))));
1689 TyFunApp tfc kl k lt -> (trace "X" (TyFunApp (trace "X" (tfc)) (trace "X" (kl)) (trace "X" (k)) (trace "X" ((trace "X" ((flattenTyFunApp (trace "X" (kl)) (trace "X" (lt)))))))))}));
1690 flattenTyFunApp lk exp =
1691 (trace "X" (case (trace "X" (exp)) of {
1692 TyFunApp_nil -> (trace "X" (TyFunApp_nil));
1693 TyFunApp_cons __U03ba_ kl t rest -> (trace "X" (TyFunApp_cons (trace "X" (__U03ba_)) (trace "X" (kl)) (trace "X" ((trace "X" ((flattenT0 (trace "X" (__U03ba_)) (trace "X" (t))))))) (trace "X" ((trace "X" ((flattenTyFunApp (trace "X" (kl)) (trace "X" (rest)))))))))}))}
1696 substT :: TypeEnv -> Kind -> Kind -> (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1697 substT __U0393_0 __U03ba___U2081_ __U03ba___U2082_ exp v env =
1698 (trace "X" ((trace "X" (flattenT (trace "X" (__U03ba___U2082_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (exp)) (trace "X" (__)) (trace "X" ((trace "X" ((ilmap (trace "X" (__U0393_0)) (trace "X" ((\__U03ba_ tv -> (trace "X" (TVar (trace "X" (__U03ba_)) (trace "X" (tv))))))) (trace "X" (env))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (v)) (trace "X" (__)) (trace "X" (env))))))))))))))))
1700 getlev :: TypeEnv -> LeveledHaskType -> HaskLevel
1701 getlev __U0393_0 lt =
1702 (trace "X" (case (trace "X" (lt)) of {
1703 MkLeveledHaskType h l -> (trace "X" (l))}))
1705 unlev :: TypeEnv -> Kind -> LeveledHaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1706 unlev __U0393_0 __U03ba_ lht x =
1707 (trace "X" (case (trace "X" (lht)) of {
1708 MkLeveledHaskType t l -> (trace "X" ((trace "X" (unsafeCoerce (trace "X" (t)) (trace "X" (__)) (trace "X" (x))))))}))
1711 Build_Global WeakExprVar0 (([]) Kind) ((IList Kind HaskType) -> HaskType)
1713 glob_wv :: TypeEnv -> Global -> WeakExprVar0
1714 glob_wv __U0393_0 g =
1715 (trace "X" (case (trace "X" (g)) of {
1716 Build_Global glob_wv0 glob_kinds0 glob_tf0 -> (trace "X" (glob_wv0))}))
1718 glob_kinds :: TypeEnv -> Global -> ([]) Kind
1719 glob_kinds __U0393_0 g =
1720 (trace "X" (case (trace "X" (g)) of {
1721 Build_Global glob_wv0 glob_kinds0 glob_tf0 -> (trace "X" (glob_kinds0))}))
1723 glob_tf :: TypeEnv -> Global -> (IList Kind HaskType) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1724 glob_tf __U0393_0 g x x0 =
1725 (trace "X" (case (trace "X" (g)) of {
1726 Build_Global glob_wv0 glob_kinds0 glob_tf0 -> (trace "X" ((trace "X" (unsafeCoerce (trace "X" (glob_tf0)) (trace "X" (x)) (trace "X" (__)) (trace "X" (x0))))))}))
1728 take_arg_types :: Kind -> (RawHaskType a1) -> ([]) (RawHaskType a1)
1729 take_arg_types __U03ba_ exp =
1730 (trace "X" (case (trace "X" (exp)) of {
1731 TApp __U03ba___U2081_ __U03ba___U2082_ x y ->
1732 (trace "X" (let {x0 = (trace "X" ((trace "X" (take_arg_types (trace "X" (__U03ba___U2082_)) (trace "X" (y))))))} in
1733 (trace "X" (case (trace "X" (__U03ba___U2081_)) of {
1735 (trace "X" (case (trace "X" (__U03ba___U2082_)) of {
1737 (trace "X" (case (trace "X" (x)) of {
1738 TApp __U03ba___U2081_'' __U03ba___U2082_'' w'' x'' ->
1739 (trace "X" (case (trace "X" (__U03ba___U2082_'')) of {
1741 (trace "X" (case (trace "X" (w'')) of {
1742 TArrow -> (trace "X" ((:) (trace "X" (x'')) (trace "X" (x0))));
1743 _ -> (trace "X" (([])))}));
1744 _ -> (trace "X" (([])))}));
1745 _ -> (trace "X" (([])))}));
1746 _ -> (trace "X" (([])))}));
1747 _ -> (trace "X" (([])))}))));
1748 _ -> (trace "X" (([])))}))
1750 count_arg_types :: Kind -> (RawHaskType a1) -> Nat
1751 count_arg_types __U03ba_ exp =
1752 (trace "X" (case (trace "X" (exp)) of {
1753 TApp __U03ba___U2081_ __U03ba___U2082_ x y ->
1754 (trace "X" (let {x0 = (trace "X" ((trace "X" (count_arg_types (trace "X" (__U03ba___U2082_)) (trace "X" (y))))))} in
1755 (trace "X" (case (trace "X" (__U03ba___U2081_)) of {
1757 (trace "X" (case (trace "X" (__U03ba___U2082_)) of {
1759 (trace "X" (case (trace "X" (x)) of {
1760 TApp __U03ba___U2081_'' __U03ba___U2082_'' w'' x'' ->
1761 (trace "X" (case (trace "X" (__U03ba___U2082_'')) of {
1763 (trace "X" (case (trace "X" (w'')) of {
1764 TArrow -> (trace "X" (S (trace "X" (x0))));
1765 _ -> (trace "X" (O))}));
1766 _ -> (trace "X" (O))}));
1767 _ -> (trace "X" (O))}));
1768 _ -> (trace "X" (O))}));
1769 _ -> (trace "X" (O))}))));
1770 _ -> (trace "X" (O))}))
1772 ite_unit :: TypeEnv -> InstantiatedTypeEnv ()
1773 ite_unit __U0393_0 =
1774 (trace "X" ((trace "X" (list_rect (trace "X" (INil)) (trace "X" ((\a __U0393_1 iH__U0393_ -> (trace "X" (ICons (trace "X" (a)) (trace "X" (__U0393_1)) (trace "X" (())) (trace "X" (iH__U0393_))))))) (trace "X" (__U0393_0))))))
1776 drop_arg_types :: Kind -> (RawHaskType a1) -> RawHaskType a1
1777 drop_arg_types __U03ba_ exp =
1778 (trace "X" (case (trace "X" (exp)) of {
1779 TCon tc -> (trace "X" (TCon (trace "X" (tc))));
1780 TArrow -> (trace "X" (TArrow));
1781 TApp __U03ba___U2081_ __U03ba___U2082_ x y ->
1783 q = (trace "X" (let {x0 = (trace "X" ((trace "X" (drop_arg_types (trace "X" (__U03ba___U2082_)) (trace "X" (y))))))} in
1784 (trace "X" (case (trace "X" (__U03ba___U2081_)) of {
1786 (trace "X" (case (trace "X" (__U03ba___U2082_)) of {
1788 (trace "X" (case (trace "X" (x)) of {
1789 TVar __U03ba_0 y0 -> (trace "X" (Prelude.Nothing));
1790 TCon tc -> (trace "X" (Prelude.Nothing));
1791 TArrow -> (trace "X" (Prelude.Nothing));
1792 TCoerc __U03ba_0 r r0 r1 -> (trace "X" (Prelude.Nothing));
1793 TApp __U03ba___U2081_'' __U03ba___U2082_'' w'' x'' ->
1794 (trace "X" (case (trace "X" (__U03ba___U2082_'')) of {
1796 (trace "X" (case (trace "X" (w'')) of {
1797 TVar __U03ba_0 y0 -> (trace "X" (Prelude.Nothing));
1798 TCon tc -> (trace "X" (Prelude.Nothing));
1799 TArrow -> (trace "X" (Prelude.Just (trace "X" (x0))));
1800 _ -> (trace "X" (Prelude.Nothing))}));
1801 _ -> (trace "X" (Prelude.Nothing))}));
1802 _ -> (trace "X" (Prelude.Nothing))}));
1803 _ -> (trace "X" (Prelude.Nothing))}));
1804 _ -> (trace "X" (Prelude.Nothing))}))))}
1806 (trace "X" (case (trace "X" (q)) of {
1807 Prelude.Just y0 -> (trace "X" (y0));
1808 Prelude.Nothing -> (trace "X" (TApp (trace "X" (__U03ba___U2081_)) (trace "X" (__U03ba___U2082_)) (trace "X" (x)) (trace "X" (y))))}))));
1809 x -> (trace "X" (x))}))
1811 weakITE :: TypeEnv -> Kind -> (InstantiatedTypeEnv a1) -> InstantiatedTypeEnv a1
1812 weakITE __U0393_0 __U03ba_ ite =
1813 (trace "X" ((trace "X" (ilist_tail (trace "X" (__U03ba_)) (trace "X" (__U0393_0)) (trace "X" (ite))))))
1815 weakCE :: TypeEnv -> Kind -> CoercionEnv -> CoercionEnv
1816 weakCE __U0393_0 __U03ba_ __U0394_0 =
1817 (trace "X" ((trace "X" (map (trace "X" ((\x _ ite -> (trace "X" ((trace "X" (x (trace "X" (__)) (trace "X" ((trace "X" ((weakITE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (ite)))))))))))))) (trace "X" (__U0394_0))))))
1819 weakV :: TypeEnv -> Kind -> Kind -> HaskTyVar -> (InstantiatedTypeEnv a1) -> a1
1820 weakV __U0393_0 __U03ba_ __U03ba_v cv' ite =
1821 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (cv')) (trace "X" (__)) (trace "X" ((trace "X" ((weakITE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (ite)))))))))))
1823 weakV' :: TypeEnv -> (([]) Kind) -> Kind -> HaskTyVar -> (InstantiatedTypeEnv a1) -> a1
1824 weakV' __U0393_0 __U03ba_ __U03ba_v cv' env =
1825 (trace "X" ((trace "X" (list_rect (trace "X" ((unsafeCoerce (trace "X" (cv'))))) (trace "X" ((\a __U03ba_0 iH__U03ba_ _ ->
1826 (trace "X" ((trace "X" (weakV
1827 (trace "X" ((trace "X" ((let {
1829 (trace "X" (case (trace "X" (l)) of {
1830 ([]) -> (trace "X" (m));
1831 (:) a0 l1 -> (trace "X" ((:) (trace "X" (a0)) (trace "X" ((trace "X" ((app0 (trace "X" (l1)) (trace "X" (m)))))))))}))}
1832 in app0 (trace "X" (__U03ba_0)) (trace "X" (__U0393_0))))))) (trace "X" (a)) (trace "X" (__U03ba_v)) (trace "X" ((unsafeCoerce (trace "X" (iH__U03ba_)))))))))))) (trace "X" (__U03ba_)) (trace "X" (__)) (trace "X" (env))))))
1834 weakT :: TypeEnv -> Kind -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1835 weakT __U0393_0 __U03ba_ __U03ba___U2082_ lt ite =
1836 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (lt)) (trace "X" (__)) (trace "X" ((trace "X" ((weakITE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (ite)))))))))))
1838 weakL :: TypeEnv -> Kind -> HaskLevel -> HaskLevel
1839 weakL __U0393_0 __U03ba_ lt =
1840 (trace "X" ((trace "X" (map (trace "X" ((\x _ -> (trace "X" ((trace "X" (weakV (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (eCKind)) (trace "X" (x))))))))) (trace "X" (lt))))))
1842 weakT' :: TypeEnv -> (([]) Kind) -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1843 weakT' __U0393_0 __U03ba_ __U03ba___U2082_ lt x =
1844 (trace "X" ((trace "X" (list_rect (trace "X" ((unsafeCoerce (trace "X" (lt))))) (trace "X" ((\a __U03ba_0 iH__U03ba_ _ ->
1845 (trace "X" ((trace "X" (weakT
1846 (trace "X" ((trace "X" ((let {
1848 (trace "X" (case (trace "X" (l)) of {
1849 ([]) -> (trace "X" (m));
1850 (:) a0 l1 -> (trace "X" ((:) (trace "X" (a0)) (trace "X" ((trace "X" ((app0 (trace "X" (l1)) (trace "X" (m)))))))))}))}
1851 in app0 (trace "X" (__U03ba_0)) (trace "X" (__U0393_0))))))) (trace "X" (a)) (trace "X" (__U03ba___U2082_)) (trace "X" ((unsafeCoerce (trace "X" (iH__U03ba_)))))))))))) (trace "X" (__U03ba_)) (trace "X" (__)) (trace "X" (x))))))
1853 weakT'' :: TypeEnv -> (([]) Kind) -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1854 weakT'' __U0393_0 __U03ba_ __U03ba___U2082_ lt x =
1855 (trace "X" (let {x0 = (trace "X" ((trace "X" (ilist_chop (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (x))))))} in (trace "X" ((trace "X" (unsafeCoerce (trace "X" (lt)) (trace "X" (__)) (trace "X" (x0))))))))
1857 lamer :: (([]) Kind) -> (([]) Kind) -> (([]) Kind) -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1858 lamer a b c __U03ba_ lt x =
1859 (trace "X" (let {lt0 = (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((app (trace "X" (a)) (trace "X" (b))))))) (trace "X" (c))))))) (trace "X" (lt)) (trace "X" ((trace "X" ((app (trace "X" (a)) (trace "X" ((trace "X" ((app (trace "X" (b)) (trace "X" (c))))))))))))))))} in (trace "X" ((trace "X" (unsafeCoerce (trace "X" (lt0)) (trace "X" (__)) (trace "X" (x))))))))
1861 weakL' :: TypeEnv -> (([]) Kind) -> HaskLevel -> HaskLevel
1862 weakL' __U0393_0 __U03ba_ lev =
1863 (trace "X" ((trace "X" (list_rect (trace "X" (lev)) (trace "X" ((\a __U03ba_0 iH__U03ba_ ->
1864 (trace "X" ((trace "X" (weakL
1865 (trace "X" ((trace "X" ((let {
1867 (trace "X" (case (trace "X" (l)) of {
1868 ([]) -> (trace "X" (m));
1869 (:) a0 l1 -> (trace "X" ((:) (trace "X" (a0)) (trace "X" ((trace "X" ((app0 (trace "X" (l1)) (trace "X" (m)))))))))}))}
1870 in app0 (trace "X" (__U03ba_0)) (trace "X" (__U0393_0))))))) (trace "X" (a)) (trace "X" (iH__U03ba_))))))))) (trace "X" (__U03ba_))))))
1872 weakLT :: TypeEnv -> Kind -> Kind -> LeveledHaskType -> LeveledHaskType
1873 weakLT __U0393_0 __U03ba_ __U03ba___U2082_ lt =
1874 (trace "X" (case (trace "X" (lt)) of {
1875 MkLeveledHaskType t l -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03ba___U2082_)) (trace "X" (t))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (l)))))))))}))
1877 weakLT' :: TypeEnv -> (([]) Kind) -> Kind -> LeveledHaskType -> LeveledHaskType
1878 weakLT' __U0393_0 __U03ba_ __U03ba___U2082_ lt =
1879 (trace "X" (case (trace "X" (lt)) of {
1880 MkLeveledHaskType t l -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03ba___U2082_)) (trace "X" (t))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (l)))))))))}))
1882 weakICE :: TypeEnv -> Kind -> CoercionEnv -> (InstantiatedCoercionEnv a1 a2) -> InstantiatedCoercionEnv a1 a2
1883 weakICE __U0393_0 __U03ba_ __U0394_0 ice =
1884 (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((map (trace "X" ((\x _ ite -> (trace "X" ((trace "X" (x (trace "X" (__)) (trace "X" ((trace "X" ((weakITE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (ite)))))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" (ice)) (trace "X" ((trace "X" ((length (trace "X" (__U0394_0)))))))))))
1886 weakCK :: TypeEnv -> Kind -> HaskCoercionKind -> (InstantiatedTypeEnv a1) -> RawCoercionKind a1
1887 weakCK __U0393_0 __U03ba_ hck x =
1888 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (hck)) (trace "X" (__))
1889 (trace "X" ((case (trace "X" (x)) of {
1890 INil -> (trace "X" (false_rect));
1891 ICons i is x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (__U0393_0)) (trace "X" ((\x2 x3 -> (trace "X" (x3))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))})))))))
1893 weakCK' :: TypeEnv -> (([]) Kind) -> HaskCoercionKind -> (InstantiatedTypeEnv a1) -> RawCoercionKind a1
1894 weakCK' __U0393_0 __U03ba_ hck x =
1895 (trace "X" ((trace "X" (list_rect (trace "X" ((unsafeCoerce (trace "X" (hck))))) (trace "X" ((\a __U03ba_0 iH__U03ba_ _ ->
1896 (trace "X" ((trace "X" (weakCK
1897 (trace "X" ((trace "X" ((let {
1899 (trace "X" (case (trace "X" (l)) of {
1900 ([]) -> (trace "X" (m));
1901 (:) a0 l1 -> (trace "X" ((:) (trace "X" (a0)) (trace "X" ((trace "X" ((app0 (trace "X" (l1)) (trace "X" (m)))))))))}))}
1902 in app0 (trace "X" (__U03ba_0)) (trace "X" (__U0393_0))))))) (trace "X" (a)) (trace "X" ((unsafeCoerce (trace "X" (iH__U03ba_)))))))))))) (trace "X" (__U03ba_)) (trace "X" (__)) (trace "X" (x))))))
1904 weakCK'' :: TypeEnv -> (([]) Kind) -> (([]) HaskCoercionKind) -> ([]) HaskCoercionKind
1905 weakCK'' __U0393_0 __U03ba_ hck =
1906 (trace "X" ((trace "X" (map (trace "X" ((\x _ -> (trace "X" ((trace "X" (weakCK' (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (x))))))))) (trace "X" (hck))))))
1908 weakCV :: TypeEnv -> CoercionEnv -> Kind -> HaskCoVar -> (InstantiatedTypeEnv a1) -> (InstantiatedCoercionEnv a1 a2) -> a2
1909 weakCV __U0393_0 __U0394_0 __U03ba_ cv' ite ice =
1910 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (cv')) (trace "X" (__)) (trace "X" (__)) (trace "X" ((trace "X" ((weakITE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (ite))))))) (trace "X" ((trace "X" ((weakICE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0)) (trace "X" (ice)))))))))))
1912 weakF :: TypeEnv -> Kind -> Kind -> (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) -> (InstantiatedTypeEnv a1) -> a1 -> RawHaskType a1
1913 weakF __U0393_0 __U03ba_ __U03ba___U2082_ f ite tv =
1914 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (f)) (trace "X" (__)) (trace "X" ((trace "X" ((weakITE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (ite))))))) (trace "X" (tv))))))
1916 caseType0 :: TypeEnv -> (([]) Kind) -> (IList Kind HaskType) -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1917 caseType0 __U0393_0 lk x x0 x1 =
1918 (trace "X" (case (trace "X" (lk)) of {
1919 ([]) -> (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x0)) (trace "X" (__)) (trace "X" (x1))))));
1921 (trace "X" ((trace "X" (caseType0 (trace "X" (__U0393_0)) (trace "X" (lk')) (trace "X" ((trace "X" ((ilist_tail (trace "X" (k)) (trace "X" (lk')) (trace "X" (x))))))) (trace "X" ((\_ env -> (trace "X" (TApp
1922 (trace "X" ((trace "X" ((let {
1924 (trace "X" (case (trace "X" (l)) of {
1925 ([]) -> (trace "X" (KindStar));
1926 (:) b t -> (trace "X" (KindArrow (trace "X" (b)) (trace "X" ((trace "X" ((fold_right0 (trace "X" (t)))))))))}))}
1927 in fold_right0 (trace "X" (lk'))))))) (trace "X" (k)) (trace "X" ((trace "X" ((x0 (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((ilist_head (trace "X" (k)) (trace "X" (lk')) (trace "X" (x)) (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (x1))))))}))
1929 caseType :: TypeEnv -> TyCon.TyCon -> (IList Kind HaskType) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1930 caseType __U0393_0 tc atypes x =
1931 (trace "X" ((trace "X" (caseType0 (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((tyConKind (trace "X" (tc))))))) (trace "X" (atypes)) (trace "X" ((\_ env -> (trace "X" (TCon (trace "X" (tc))))))) (trace "X" (x))))))
1934 Build_StrongAltCon WeakAltCon Nat Nat Nat (Vec Kind) (TypeEnv -> (IList Kind HaskType) -> Vec HaskCoercionKind) (TypeEnv -> (IList Kind HaskType) -> Vec HaskType)
1936 sac_altcon :: TyCon.TyCon -> StrongAltCon -> WeakAltCon
1938 (trace "X" (case (trace "X" (s)) of {
1939 Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x))}))
1941 sac_numExTyVars :: TyCon.TyCon -> StrongAltCon -> Nat
1942 sac_numExTyVars tc s =
1943 (trace "X" (case (trace "X" (s)) of {
1944 Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x0))}))
1946 sac_numCoerVars :: TyCon.TyCon -> StrongAltCon -> Nat
1947 sac_numCoerVars tc s =
1948 (trace "X" (case (trace "X" (s)) of {
1949 Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x1))}))
1951 sac_numExprVars :: TyCon.TyCon -> StrongAltCon -> Nat
1952 sac_numExprVars tc s =
1953 (trace "X" (case (trace "X" (s)) of {
1954 Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x2))}))
1956 sac_ekinds :: TyCon.TyCon -> StrongAltCon -> Vec Kind
1958 (trace "X" (case (trace "X" (s)) of {
1959 Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x3))}))
1961 sac_gamma :: TyCon.TyCon -> StrongAltCon -> (([]) Kind) -> ([]) Kind
1962 sac_gamma tc s __U0393_0 =
1963 (trace "X" ((trace "X" (app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (s))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (s)))))))))))) (trace "X" (__U0393_0))))))
1965 sac_coercions :: TyCon.TyCon -> StrongAltCon -> TypeEnv -> (IList Kind HaskType) -> Vec HaskCoercionKind
1966 sac_coercions tc s =
1967 (trace "X" (case (trace "X" (s)) of {
1968 Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x4))}))
1970 sac_types :: TyCon.TyCon -> StrongAltCon -> TypeEnv -> (IList Kind HaskType) -> Vec HaskType
1972 (trace "X" (case (trace "X" (s)) of {
1973 Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x5))}))
1975 sac_delta :: TyCon.TyCon -> StrongAltCon -> TypeEnv -> (IList Kind HaskType) -> (([]) HaskCoercionKind) -> ([]) HaskCoercionKind
1976 sac_delta tc s __U0393_0 atypes __U0394_0 =
1977 (trace "X" ((trace "X" (app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numCoerVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (s))))))) (trace "X" ((trace "X" ((sac_coercions (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (s)) (trace "X" (__U0393_0)) (trace "X" (atypes)))))))))))) (trace "X" (__U0394_0))))))
1979 literalType :: Literal.Literal -> TypeEnv -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1980 literalType lit __U0393_0 x =
1981 (trace "X" (let {z = (trace "X" (\ite -> (trace "X" (TCon (trace "X" ((trace "X" ((haskLiteralToTyCon (trace "X" (lit)))))))))))} in (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((tyConKind (trace "X" ((trace "X" ((haskLiteralToTyCon (trace "X" (lit)))))))))))) (trace "X" ((\_ ite -> (trace "X" ((trace "X" (z (trace "X" (ite))))))))) (trace "X" (([]))) (trace "X" (__)) (trace "X" (x))))))))
1983 update_xi :: (EqDecidable a1) -> TypeEnv -> (a1 -> LeveledHaskType) -> HaskLevel -> (([]) ((,) a1 HaskType)) -> a1 -> LeveledHaskType
1984 update_xi eQD_VV __U0393_0 __U03be_0 lev vt =
1985 (trace "X" (case (trace "X" (vt)) of {
1986 ([]) -> (trace "X" (__U03be_0));
1987 (:) p tl -> (trace "X" ((\v' ->
1988 (trace "X" (case (trace "X" (p)) of {
1990 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eQD_VV)) (trace "X" (v)) (trace "X" (v')))))) of {
1991 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))));
1992 Prelude.False -> (trace "X" ((trace "X" (update_xi (trace "X" (eQD_VV)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (tl)) (trace "X" (v'))))))}))})))))}))
1994 compareT :: Nat -> Kind -> (RawHaskType Nat) -> Kind -> (RawHaskType Nat) -> Prelude.Bool
1995 compareT n __U03ba___U2081_ t1 __U03ba___U2082_ t2 =
1996 (trace "X" (case (trace "X" (t1)) of {
1998 (trace "X" (case (trace "X" (t2)) of {
1999 TVar __U03ba_0 x' ->
2000 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqDecidableNat)) (trace "X" (x)) (trace "X" (x')))))) of {
2001 Prelude.True -> (trace "X" (Prelude.True));
2002 Prelude.False -> (trace "X" (Prelude.False))}));
2003 _ -> (trace "X" (Prelude.False))}));
2005 (trace "X" (case (trace "X" (t2)) of {
2007 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (tyConEqDecidable)) (trace "X" (tc)) (trace "X" (tc')))))) of {
2008 Prelude.True -> (trace "X" (Prelude.True));
2009 Prelude.False -> (trace "X" (Prelude.False))}));
2010 _ -> (trace "X" (Prelude.False))}));
2012 (trace "X" (case (trace "X" (t2)) of {
2013 TArrow -> (trace "X" (Prelude.True));
2014 _ -> (trace "X" (Prelude.False))}));
2015 TCoerc __U03ba_ t3 t4 t ->
2016 (trace "X" (case (trace "X" (t4)) of {
2017 TCoerc __U03ba_0 t1' t2' t' ->
2018 (trace "X" (case (trace "X" (case (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (__U03ba_)) (trace "X" (t3)) (trace "X" (__U03ba_0)) (trace "X" (t1')))))) of {
2019 Prelude.True -> (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (__U03ba_)) (trace "X" (t4)) (trace "X" (__U03ba_0)) (trace "X" (t2'))))));
2020 Prelude.False -> (trace "X" (Prelude.False))})) of {
2021 Prelude.True -> (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (KindStar)) (trace "X" (t)) (trace "X" (KindStar)) (trace "X" (t'))))));
2022 Prelude.False -> (trace "X" (Prelude.False))}));
2023 _ -> (trace "X" (Prelude.False))}));
2024 TApp __U03ba___U2081_0 __U03ba___U2082_0 x y ->
2025 (trace "X" (case (trace "X" (t2)) of {
2026 TApp __U03ba___U2081_1 __U03ba___U2082_1 x' y' ->
2027 (trace "X" (case (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" ((KindArrow (trace "X" (__U03ba___U2082_0)) (trace "X" (__U03ba___U2081_0))))) (trace "X" (x)) (trace "X" ((KindArrow (trace "X" (__U03ba___U2082_1)) (trace "X" (__U03ba___U2081_1))))) (trace "X" (x')))))) of {
2028 Prelude.True -> (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (__U03ba___U2082_0)) (trace "X" (y)) (trace "X" (__U03ba___U2082_1)) (trace "X" (y'))))));
2029 Prelude.False -> (trace "X" (Prelude.False))}));
2030 _ -> (trace "X" (Prelude.False))}));
2032 (trace "X" (case (trace "X" (t2)) of {
2033 TAll __U03ba_0 y' -> (trace "X" ((trace "X" (compareT (trace "X" ((S (trace "X" (n))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((y (trace "X" (n))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((y' (trace "X" (n)))))))))));
2034 _ -> (trace "X" (Prelude.False))}));
2036 (trace "X" (case (trace "X" (t2)) of {
2038 (trace "X" (case (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (eCKind)) (trace "X" (ec)) (trace "X" (eCKind)) (trace "X" (ec')))))) of {
2039 Prelude.True -> (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (KindStar)) (trace "X" (t)) (trace "X" (KindStar)) (trace "X" (t'))))));
2040 Prelude.False -> (trace "X" (Prelude.False))}));
2041 _ -> (trace "X" (Prelude.False))}));
2042 TyFunApp tfc kl k lt ->
2043 (trace "X" (case (trace "X" (t2)) of {
2044 TyFunApp tfc' kl' k' lt' ->
2045 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (tyFunEqDecidable)) (trace "X" (tfc)) (trace "X" (tfc')))))) of {
2046 Prelude.True -> (trace "X" ((trace "X" (compareTL (trace "X" (n)) (trace "X" (kl)) (trace "X" (lt)) (trace "X" (kl')) (trace "X" (lt'))))));
2047 Prelude.False -> (trace "X" (Prelude.False))}));
2048 _ -> (trace "X" (Prelude.False))}))}))
2050 compareTL :: Nat -> (([]) Kind) -> (RawHaskTypeList Nat) -> (([]) Kind) -> (RawHaskTypeList Nat) -> Prelude.Bool
2051 compareTL n __U03ba___U2081_ t1 __U03ba___U2082_ t2 =
2052 (trace "X" (case (trace "X" (t1)) of {
2054 (trace "X" (case (trace "X" (t2)) of {
2055 TyFunApp_nil -> (trace "X" (Prelude.True));
2056 TyFunApp_cons __U03ba_ kl r r0 -> (trace "X" (Prelude.False))}));
2057 TyFunApp_cons __U03ba_ kl t r ->
2058 (trace "X" (case (trace "X" (t2)) of {
2059 TyFunApp_nil -> (trace "X" (Prelude.False));
2060 TyFunApp_cons __U03ba_' kl' t' r' ->
2061 (trace "X" (case (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (__U03ba_)) (trace "X" (t)) (trace "X" (__U03ba_')) (trace "X" (t')))))) of {
2062 Prelude.True -> (trace "X" ((trace "X" (compareTL (trace "X" (n)) (trace "X" (kl)) (trace "X" (r)) (trace "X" (kl')) (trace "X" (r'))))));
2063 Prelude.False -> (trace "X" (Prelude.False))}))}))}))
2065 count' :: (([]) Kind) -> Nat -> IList Kind Nat
2067 (trace "X" (case (trace "X" (lk)) of {
2068 ([]) -> (trace "X" (INil));
2069 (:) h t -> (trace "X" (ICons (trace "X" (h)) (trace "X" (t)) (trace "X" (n)) (trace "X" ((trace "X" ((count' (trace "X" (t)) (trace "X" ((S (trace "X" (n))))))))))))}))
2071 compareHT :: TypeEnv -> Kind -> HaskType -> HaskType -> Prelude.Bool
2072 compareHT __U0393_0 __U03ba_ ht1 ht2 =
2073 (trace "X" ((trace "X" (compareT (trace "X" ((trace "X" ((length (trace "X" (__U0393_0))))))) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ht1)) (trace "X" (__)) (trace "X" ((trace "X" ((count' (trace "X" (__U0393_0)) (trace "X" (O)))))))))))) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ht2)) (trace "X" (__)) (trace "X" ((trace "X" ((count' (trace "X" (__U0393_0)) (trace "X" (O))))))))))))))))
2075 haskTypeEqDecidable :: TypeEnv -> Kind -> EqDecidable HaskType
2076 haskTypeEqDecidable __U0393_0 __U03ba_ v1 v2 =
2077 (trace "X" (let {q = (trace "X" ((trace "X" (compareHT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (v1)) (trace "X" (v2))))))} in
2078 (trace "X" (case (trace "X" (q)) of {
2079 Prelude.True -> (trace "X" (Prelude.True));
2080 Prelude.False -> (trace "X" (Prelude.False))}))))
2082 haskTyVarEqDecidable :: TypeEnv -> Kind -> EqDecidable HaskTyVar
2083 haskTyVarEqDecidable __U0393_0 __U03ba_ v1 v2 =
2084 (trace "X" (let {q = (trace "X" ((trace "X" (compareHT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTyVarToType (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (v1))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTyVarToType (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (v2)))))))))))))} in
2085 (trace "X" (case (trace "X" (q)) of {
2086 Prelude.True -> (trace "X" (Prelude.True));
2087 Prelude.False -> (trace "X" (Prelude.False))}))))
2089 haskLevelEqDecidable :: TypeEnv -> EqDecidable HaskLevel
2090 haskLevelEqDecidable __U0393_0 v1 v2 =
2091 (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((eqDecidableList (trace "X" ((trace "X" ((haskTyVarEqDecidable (trace "X" (__U0393_0)) (trace "X" (eCKind)))))))))))) (trace "X" (v1)) (trace "X" (v2))))))
2093 typeToString' :: Prelude.Bool -> Nat -> Kind -> (RawHaskType Nat) -> Prelude.String
2094 typeToString' needparens n __U03ba_ t =
2095 (trace "X" (case (trace "X" (t)) of {
2096 TVar __U03ba_0 v -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('v')) (trace "X" ([])))))))) (trace "X" ((trace "X" ((toString (trace "X" (natToStringInstance)) (trace "X" (v)))))))))));
2097 TCon tc -> (trace "X" ((trace "X" (toString (trace "X" (tyConToString)) (trace "X" (tc))))));
2098 TArrow -> (trace "X" ((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))))))));
2099 TCoerc __U03ba_0 t1 t2 t0 -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('(')) (trace "X" ([]))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.False)) (trace "X" (n)) (trace "X" (__U03ba_0)) (trace "X" (t1)))))))))))) (trace "X" (((:) (trace "X" ('~')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.False)) (trace "X" (n)) (trace "X" (__U03ba_0)) (trace "X" (t2)))))))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" (((:) (trace "X" ('=')) (trace "X" (((:) (trace "X" ('>')) (trace "X" ([])))))))))))))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (needparens)) (trace "X" (n)) (trace "X" (KindStar)) (trace "X" (t0)))))))))));
2100 TApp __U03ba___U2081_ __U03ba___U2082_ t1 t2 ->
2101 (trace "X" (case (trace "X" (t1)) of {
2102 TApp __U03ba___U2081_0 __U03ba___U2082_0 r t3 ->
2103 (trace "X" (case (trace "X" (r)) of {
2105 (trace "X" (case (trace "X" (needparens)) of {
2106 Prelude.True -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('(')) (trace "X" ([]))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.True)) (trace "X" (n)) (trace "X" (__U03ba___U2082_0)) (trace "X" (t3)))))))))))) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('>')) (trace "X" ([]))))))))))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.True)) (trace "X" (n)) (trace "X" (__U03ba___U2082_)) (trace "X" (t2)))))))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))));
2107 Prelude.False -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.True)) (trace "X" (n)) (trace "X" (__U03ba___U2082_0)) (trace "X" (t3))))))) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('>')) (trace "X" ([]))))))))))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.True)) (trace "X" (n)) (trace "X" (__U03ba___U2082_)) (trace "X" (t2)))))))))))}));
2109 (trace "X" (case (trace "X" (needparens)) of {
2110 Prelude.True -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('(')) (trace "X" ([]))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.True)) (trace "X" (n)) (trace "X" ((KindArrow (trace "X" (__U03ba___U2082_)) (trace "X" (__U03ba___U2081_))))) (trace "X" (t1)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.False)) (trace "X" (n)) (trace "X" (__U03ba___U2082_)) (trace "X" (t2)))))))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))));
2111 Prelude.False -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.True)) (trace "X" (n)) (trace "X" ((KindArrow (trace "X" (__U03ba___U2082_)) (trace "X" (__U03ba___U2081_))))) (trace "X" (t1))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.False)) (trace "X" (n)) (trace "X" (__U03ba___U2082_)) (trace "X" (t2)))))))))))}))}));
2113 (trace "X" (case (trace "X" (needparens)) of {
2114 Prelude.True -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('(')) (trace "X" ([]))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.True)) (trace "X" (n)) (trace "X" ((KindArrow (trace "X" (__U03ba___U2082_)) (trace "X" (__U03ba___U2081_))))) (trace "X" (t1)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.False)) (trace "X" (n)) (trace "X" (__U03ba___U2082_)) (trace "X" (t2)))))))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))));
2115 Prelude.False -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.True)) (trace "X" (n)) (trace "X" ((KindArrow (trace "X" (__U03ba___U2082_)) (trace "X" (__U03ba___U2081_))))) (trace "X" (t1))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.False)) (trace "X" (n)) (trace "X" (__U03ba___U2082_)) (trace "X" (t2)))))))))))}))}));
2116 TAll k f -> (trace "X" (let {alpha = (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('v')) (trace "X" ([])))))))) (trace "X" ((trace "X" ((toString (trace "X" (natToStringInstance)) (trace "X" (n)))))))))))} in (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))) (trace "X" (alpha))))))) (trace "X" (((:) (trace "X" (':')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (k)))))))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.False)) (trace "X" ((S (trace "X" (n))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((f (trace "X" (n))))))))))))))))));
2117 TCode ec t0 -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('<')) (trace "X" (((:) (trace "X" ('[')) (trace "X" ([])))))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.True)) (trace "X" (n)) (trace "X" (KindStar)) (trace "X" (t0)))))))))))) (trace "X" (((:) (trace "X" (']')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('@')) (trace "X" ([])))))))))))))))) (trace "X" ((trace "X" ((typeToString' (trace "X" (Prelude.False)) (trace "X" (n)) (trace "X" (eCKind)) (trace "X" (ec)))))))))));
2118 TyFunApp tfc kl k lt -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((toString (trace "X" (tyFunToString)) (trace "X" (tfc))))))) (trace "X" (((:) (trace "X" ('_')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((toString (trace "X" (natToStringInstance)) (trace "X" (n)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('[')) (trace "X" ([]))))))))))))) (trace "X" ((trace "X" ((fold_left (trace "X" ((\x y -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))) (trace "X" (x))))))) (trace "X" (y))))))))) (trace "X" ((trace "X" ((typeList2string (trace "X" (Prelude.False)) (trace "X" (n)) (trace "X" (kl)) (trace "X" (lt))))))) (trace "X" ([])))))))))))) (trace "X" (((:) (trace "X" (']')) (trace "X" ([])))))))))}))
2120 typeList2string :: Prelude.Bool -> Nat -> (([]) Kind) -> (RawHaskTypeList Nat) -> ([]) Prelude.String
2121 typeList2string needparens n __U03ba_ t =
2122 (trace "X" (case (trace "X" (t)) of {
2123 TyFunApp_nil -> (trace "X" (([])));
2124 TyFunApp_cons __U03ba_0 kl rhk rhkl -> (trace "X" ((:) (trace "X" ((trace "X" ((typeToString' (trace "X" (needparens)) (trace "X" (n)) (trace "X" (__U03ba_0)) (trace "X" (rhk))))))) (trace "X" ((trace "X" ((typeList2string (trace "X" (needparens)) (trace "X" (n)) (trace "X" (kl)) (trace "X" (rhkl)))))))))}))
2126 typeToString :: TypeEnv -> Kind -> HaskType -> Prelude.String
2127 typeToString __U0393_0 __U03ba_ ht =
2128 (trace "X" ((trace "X" (typeToString' (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((length (trace "X" (__U0393_0))))))) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ht)) (trace "X" (__)) (trace "X" ((trace "X" ((count' (trace "X" (__U0393_0)) (trace "X" (O))))))))))))))))
2130 typeToStringInstance :: TypeEnv -> Kind -> ToString HaskType
2131 typeToStringInstance __U0393_0 __U03ba_ =
2132 (trace "X" ((trace "X" (typeToString (trace "X" (__U0393_0)) (trace "X" (__U03ba_))))))
2134 type StrongCaseBranchWithVVs vV =
2136 -- singleton inductive, whose constructor was Build_StrongCaseBranchWithVVs
2138 scbwv_exprvars :: (EqDecidable a1) -> TyCon.TyCon -> TypeEnv -> (IList Kind HaskType) -> StrongAltCon -> (StrongCaseBranchWithVVs a1) -> Vec a1
2139 scbwv_exprvars eQD_VV tc __U0393_0 atypes sac s =
2142 scbwv_varstypes :: (EqDecidable a1) -> TyCon.TyCon -> TypeEnv -> (IList Kind HaskType) -> StrongAltCon -> (StrongCaseBranchWithVVs a1) -> Vec ((,) a1 HaskType)
2143 scbwv_varstypes eQD_VV tc __U0393_0 atypes sac s =
2144 (trace "X" ((trace "X" (vec_zip (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eQD_VV)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (s))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)))))))))))
2146 scbwv_xi :: (EqDecidable a1) -> TyCon.TyCon -> TypeEnv -> (IList Kind HaskType) -> StrongAltCon -> (StrongCaseBranchWithVVs a1) -> (a1 -> LeveledHaskType) -> HaskLevel -> a1 -> LeveledHaskType
2147 scbwv_xi eQD_VV tc __U0393_0 atypes sac s __U03be_0 lev =
2148 (trace "X" ((trace "X" (update_xi (trace "X" (eQD_VV)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x)))))))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (lev))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_varstypes (trace "X" (eQD_VV)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (s))))))))))))))))
2151 EGlobal TypeEnv CoercionEnv (vV -> LeveledHaskType) Global (IList Kind HaskType) HaskLevel
2152 | EVar TypeEnv CoercionEnv (vV -> LeveledHaskType) vV
2153 | ELit TypeEnv CoercionEnv (vV -> LeveledHaskType) Literal.Literal HaskLevel
2154 | EApp TypeEnv CoercionEnv (vV -> LeveledHaskType) (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) HaskLevel (Expr vV) (Expr vV)
2155 | ELam TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskType HaskType HaskLevel vV (Expr vV)
2156 | ELet TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskType HaskType HaskLevel vV (Expr vV) (Expr vV)
2157 | EEsc TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskTyVar HaskType HaskLevel (Expr vV)
2158 | EBrak TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskTyVar HaskType (([]) HaskTyVar) (Expr vV)
2159 | ECast TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskType HaskType HaskLevel (Expr vV)
2160 | ENote TypeEnv CoercionEnv (vV -> LeveledHaskType) LeveledHaskType CoreSyn.Note (Expr vV)
2161 | ETyApp TypeEnv CoercionEnv Kind (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) HaskType (vV -> LeveledHaskType) HaskLevel (Expr vV)
2162 | ECoLam TypeEnv (([]) HaskCoercionKind) Kind HaskType HaskType HaskType (vV -> LeveledHaskType) HaskLevel (Expr vV)
2163 | ECoApp TypeEnv CoercionEnv Kind HaskType HaskType (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) (vV -> LeveledHaskType) HaskLevel (Expr vV)
2164 | ETyLam (([]) Kind) CoercionEnv (vV -> LeveledHaskType) Kind (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) HaskLevel (Expr vV)
2165 | ECase TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskLevel TyCon.TyCon HaskType (IList Kind HaskType) (Expr vV) (Tree (Prelude.Maybe (SigT StrongAltCon (SigT (StrongCaseBranchWithVVs vV) (Expr vV)))))
2166 | ELetRec TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskLevel HaskType (Tree (Prelude.Maybe ((,) vV HaskType))) (ELetRecBindings vV) (Expr vV)
2167 data ELetRecBindings vV =
2168 ELR_nil TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskLevel
2169 | ELR_leaf TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskLevel vV HaskType (Expr vV)
2170 | ELR_branch TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskLevel (Tree (Prelude.Maybe ((,) vV HaskType))) (Tree (Prelude.Maybe ((,) vV HaskType))) (ELetRecBindings vV) (ELetRecBindings vV)
2173 MkJudg TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe HaskType)) HaskLevel
2175 type ProofCaseBranch =
2176 Tree (Prelude.Maybe LeveledHaskType)
2177 -- singleton inductive, whose constructor was Build_ProofCaseBranch
2179 pcb_freevars :: TyCon.TyCon -> TypeEnv -> (([]) HaskCoercionKind) -> HaskLevel -> HaskType -> (IList Kind HaskType) -> StrongAltCon -> ProofCaseBranch -> Tree (Prelude.Maybe LeveledHaskType)
2180 pcb_freevars tc __U0393_0 __U0394_0 lev branchtype avars sac p =
2183 pcb_judg :: TyCon.TyCon -> TypeEnv -> (([]) HaskCoercionKind) -> HaskLevel -> HaskType -> (IList Kind HaskType) -> StrongAltCon -> ProofCaseBranch -> Judg
2184 pcb_judg tc __U0393_0 __U0394_0 lev branchtype avars sac p =
2185 (trace "X" (MkJudg (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (avars)) (trace "X" ((trace "X" ((map (trace "X" ((\x _ -> (trace "X" ((trace "X" (weakCK' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (x))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar))))))) (trace "X" ((trace "X" ((pcb_freevars (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev)) (trace "X" (branchtype)) (trace "X" (avars)) (trace "X" (sac)) (trace "X" (p)))))))))))) (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((map (trace "X" ((\t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (lev)))))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (avars))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" (branchtype))))))))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (lev)))))))))
2188 RId (Tree (Prelude.Maybe t))
2189 | RCanL (Tree (Prelude.Maybe t))
2190 | RCanR (Tree (Prelude.Maybe t))
2191 | RuCanL (Tree (Prelude.Maybe t))
2192 | RuCanR (Tree (Prelude.Maybe t))
2193 | RAssoc (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t))
2194 | RCossa (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t))
2195 | RExch (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t))
2196 | RWeak (Tree (Prelude.Maybe t))
2197 | RCont (Tree (Prelude.Maybe t))
2198 | RLeft (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Arrange t)
2199 | RRight (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Arrange t)
2200 | RComp (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Arrange t) (Arrange t)
2202 arrange_rect :: ((Tree (Prelude.Maybe a1)) -> a2) -> ((Tree (Prelude.Maybe a1)) -> a2) -> ((Tree (Prelude.Maybe a1)) -> a2) -> ((Tree (Prelude.Maybe a1)) -> a2) -> ((Tree (Prelude.Maybe a1)) -> a2) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> a2) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> a2) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> a2) -> ((Tree (Prelude.Maybe a1)) -> a2) -> ((Tree (Prelude.Maybe a1)) -> a2) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Arrange a1) -> a2 -> a2) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Arrange a1) -> a2 -> a2) -> ((Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Arrange a1) -> a2 -> (Arrange a1) -> a2 -> a2) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Arrange a1) -> a2
2203 arrange_rect f f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 t t0 a =
2204 (trace "X" (case (trace "X" (a)) of {
2205 RId a0 -> (trace "X" ((trace "X" (f (trace "X" (a0))))));
2206 RCanL a0 -> (trace "X" ((trace "X" (f0 (trace "X" (a0))))));
2207 RCanR a0 -> (trace "X" ((trace "X" (f1 (trace "X" (a0))))));
2208 RuCanL a0 -> (trace "X" ((trace "X" (f2 (trace "X" (a0))))));
2209 RuCanR a0 -> (trace "X" ((trace "X" (f3 (trace "X" (a0))))));
2210 RAssoc a0 b c -> (trace "X" ((trace "X" (f4 (trace "X" (a0)) (trace "X" (b)) (trace "X" (c))))));
2211 RCossa a0 b c -> (trace "X" ((trace "X" (f5 (trace "X" (a0)) (trace "X" (b)) (trace "X" (c))))));
2212 RExch a0 b -> (trace "X" ((trace "X" (f6 (trace "X" (a0)) (trace "X" (b))))));
2213 RWeak a0 -> (trace "X" ((trace "X" (f7 (trace "X" (a0))))));
2214 RCont a0 -> (trace "X" ((trace "X" (f8 (trace "X" (a0))))));
2215 RLeft h c x a0 -> (trace "X" ((trace "X" (f9 (trace "X" (h)) (trace "X" (c)) (trace "X" (x)) (trace "X" (a0)) (trace "X" ((trace "X" ((arrange_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (f2)) (trace "X" (f3)) (trace "X" (f4)) (trace "X" (f5)) (trace "X" (f6)) (trace "X" (f7)) (trace "X" (f8)) (trace "X" (f9)) (trace "X" (f10)) (trace "X" (f11)) (trace "X" (h)) (trace "X" (c)) (trace "X" (a0)))))))))));
2216 RRight h c x a0 -> (trace "X" ((trace "X" (f10 (trace "X" (h)) (trace "X" (c)) (trace "X" (x)) (trace "X" (a0)) (trace "X" ((trace "X" ((arrange_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (f2)) (trace "X" (f3)) (trace "X" (f4)) (trace "X" (f5)) (trace "X" (f6)) (trace "X" (f7)) (trace "X" (f8)) (trace "X" (f9)) (trace "X" (f10)) (trace "X" (f11)) (trace "X" (h)) (trace "X" (c)) (trace "X" (a0)))))))))));
2217 RComp a0 b c a1 a2 -> (trace "X" ((trace "X" (f11 (trace "X" (a0)) (trace "X" (b)) (trace "X" (c)) (trace "X" (a1)) (trace "X" ((trace "X" ((arrange_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (f2)) (trace "X" (f3)) (trace "X" (f4)) (trace "X" (f5)) (trace "X" (f6)) (trace "X" (f7)) (trace "X" (f8)) (trace "X" (f9)) (trace "X" (f10)) (trace "X" (f11)) (trace "X" (a0)) (trace "X" (b)) (trace "X" (a1))))))) (trace "X" (a2)) (trace "X" ((trace "X" ((arrange_rect (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (f2)) (trace "X" (f3)) (trace "X" (f4)) (trace "X" (f5)) (trace "X" (f6)) (trace "X" (f7)) (trace "X" (f8)) (trace "X" (f9)) (trace "X" (f10)) (trace "X" (f11)) (trace "X" (b)) (trace "X" (c)) (trace "X" (a2)))))))))))}))
2220 RArrange TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe HaskType)) HaskLevel (Arrange LeveledHaskType)
2221 | RBrak TypeEnv CoercionEnv HaskType HaskTyVar (Tree (Prelude.Maybe LeveledHaskType)) (([]) HaskTyVar)
2222 | REsc TypeEnv CoercionEnv HaskType HaskTyVar (Tree (Prelude.Maybe LeveledHaskType)) HaskLevel
2223 | RNote TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) HaskType HaskLevel CoreSyn.Note
2224 | RLit TypeEnv CoercionEnv Literal.Literal HaskLevel
2225 | RVar TypeEnv CoercionEnv HaskType HaskLevel
2226 | RGlobal TypeEnv CoercionEnv HaskLevel Global (IList Kind HaskType)
2227 | RLam TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) HaskType HaskType HaskLevel
2228 | RCast TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) HaskType HaskType HaskLevel
2229 | RJoin TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe HaskType)) (Tree (Prelude.Maybe HaskType)) HaskLevel
2230 | RApp TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) HaskLevel
2231 | RLet TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) HaskType HaskType HaskLevel
2232 | RWhere TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) HaskType HaskType HaskLevel
2233 | RVoid TypeEnv CoercionEnv HaskLevel
2234 | RAppT TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) Kind (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) HaskType HaskLevel
2235 | RAbsT (([]) Kind) CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) Kind (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) HaskLevel
2236 | RAppCo TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) Kind HaskType HaskType (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) HaskLevel
2237 | RAbsCo TypeEnv (([]) HaskCoercionKind) (Tree (Prelude.Maybe LeveledHaskType)) Kind HaskType HaskType HaskType HaskLevel
2238 | RLetRec TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) HaskType (Tree (Prelude.Maybe HaskType)) HaskLevel
2239 | RCase TypeEnv (([]) HaskCoercionKind) HaskLevel TyCon.TyCon (Tree (Prelude.Maybe LeveledHaskType)) (IList Kind HaskType) HaskType (Tree (Prelude.Maybe (SigT StrongAltCon ProofCaseBranch)))
2241 arrangeMap :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (a1 -> a2) -> (Arrange a1) -> Arrange a2
2242 arrangeMap __U03a3___U2081_ __U03a3___U2082_ f x =
2243 (trace "X" ((trace "X" (arrange_rect (trace "X" ((\a -> (trace "X" (RId (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))))))) (trace "X" ((\a -> (trace "X" (RCanL (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))))))) (trace "X" ((\a -> (trace "X" (RCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))))))) (trace "X" ((\a -> (trace "X" (RuCanL (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))))))) (trace "X" ((\a -> (trace "X" (RuCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))))))) (trace "X" ((\a b c -> (trace "X" (RAssoc (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (b))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (c)))))))))))) (trace "X" ((\a b c -> (trace "X" (RCossa (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (b))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (c)))))))))))) (trace "X" ((\a b -> (trace "X" (RExch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (b)))))))))))) (trace "X" ((\a -> (trace "X" (RWeak (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))))))) (trace "X" ((\a -> (trace "X" (RCont (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))))))) (trace "X" ((\h c x0 x1 iHX -> (trace "X" (RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (h))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (c))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (x0))))))) (trace "X" (iHX))))))) (trace "X" ((\h c x0 x1 iHX -> (trace "X" (RRight (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (h))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (c))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (x0))))))) (trace "X" (iHX))))))) (trace "X" ((\a b c x1 iHX1 x2 iHX2 -> (trace "X" (RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (b))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (c))))))) (trace "X" (iHX1)) (trace "X" (iHX2))))))) (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" (x))))))
2245 arrangeSwapMiddle :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> Arrange a1
2246 arrangeSwapMiddle a b c d =
2247 (trace "X" (RComp (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (d)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (d))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (d)))))))) (trace "X" ((RCossa (trace "X" (a)) (trace "X" (b)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (d)))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (d))))))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b))))) (trace "X" (d)))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (d)))))))) (trace "X" ((RLeft (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (d)))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b))))) (trace "X" (d))))) (trace "X" (a)) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (d)))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c))))) (trace "X" (d))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b))))) (trace "X" (d))))) (trace "X" ((RAssoc (trace "X" (b)) (trace "X" (c)) (trace "X" (d))))) (trace "X" ((RRight (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b))))) (trace "X" (d)) (trace "X" ((RExch (trace "X" (c)) (trace "X" (b)))))))))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b))))) (trace "X" (d)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (d))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (d)))))))) (trace "X" ((RLeft (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b))))) (trace "X" (d))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (d)))))))) (trace "X" (a)) (trace "X" ((RCossa (trace "X" (c)) (trace "X" (b)) (trace "X" (d)))))))) (trace "X" ((RAssoc (trace "X" (a)) (trace "X" (c)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (d))))))))))))))))
2249 weakAltConToCoreAltCon :: WeakAltCon -> CoreSyn.AltCon
2250 weakAltConToCoreAltCon wa =
2251 (trace "X" (case (trace "X" (wa)) of {
2252 WeakDataAlt cdc -> (trace "X" (CoreSyn.DataAlt (trace "X" (cdc))));
2253 WeakLitAlt lit -> (trace "X" (CoreSyn.LitAlt (trace "X" (lit))));
2254 WeakDEFAULT -> (trace "X" (CoreSyn.DEFAULT))}))
2256 weakTypeToCoreType :: WeakType -> TypeRep.Type
2257 weakTypeToCoreType wt =
2258 (trace "X" (case (trace "X" (wt)) of {
2259 WTyVarTy w -> (trace "X" (case (trace "X" (w)) of {
2260 WeakTypeVar v k -> (trace "X" (TypeRep.TyVarTy (trace "X" (v))))}));
2262 (trace "X" (case (trace "X" (t1)) of {
2264 (trace "X" (case (trace "X" (w)) of {
2265 WFunTyCon -> (trace "X" (TypeRep.FunTy (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t3))))))) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t2)))))))));
2267 (trace "X" (case (trace "X" ((trace "X" (weakTypeToCoreType (trace "X" (t1)))))) of {
2268 TypeRep.TyConApp tc tys -> (trace "X" (TypeRep.TyConApp (trace "X" (tc)) (trace "X" ((trace "X" ((app (trace "X" (tys)) (trace "X" (((:) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t2))))))) (trace "X" (([])))))))))))));
2269 x -> (trace "X" (TypeRep.AppTy (trace "X" (x)) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t2)))))))))}))}));
2271 (trace "X" (case (trace "X" ((trace "X" (weakTypeToCoreType (trace "X" (t1)))))) of {
2272 TypeRep.TyConApp tc tys -> (trace "X" (TypeRep.TyConApp (trace "X" (tc)) (trace "X" ((trace "X" ((app (trace "X" (tys)) (trace "X" (((:) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t2))))))) (trace "X" (([])))))))))))));
2273 x -> (trace "X" (TypeRep.AppTy (trace "X" (x)) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t2)))))))))}))}));
2274 WTyFunApp tf lt -> (trace "X" (TypeRep.TyConApp (trace "X" ((trace "X" (((\x -> x) (trace "X" (tf))))))) (trace "X" ((trace "X" ((map (trace "X" (weakTypeToCoreType)) (trace "X" (lt)))))))));
2275 WTyCon tc -> (trace "X" (TypeRep.TyConApp (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))) (trace "X" (([])))));
2276 WFunTyCon -> (trace "X" (TypeRep.TyConApp (trace "X" ((trace "X" (((\x -> x) (trace "X" (arrowTyCon))))))) (trace "X" (([])))));
2277 WCodeTy w t -> (trace "X" (case (trace "X" (w)) of {
2278 WeakTypeVar ec k -> (trace "X" (TypeRep.TyConApp (trace "X" ((trace "X" (((\x -> x) (trace "X" (TysWiredIn.hetMetCodeTypeTyCon))))))) (trace "X" (((:) (trace "X" ((TypeRep.TyVarTy (trace "X" (ec))))) (trace "X" (((:) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t))))))) (trace "X" (([])))))))))))}));
2279 WCoFunTy t1 t2 t3 -> (trace "X" (TypeRep.FunTy (trace "X" ((TypeRep.PredTy (trace "X" ((TypeRep.EqPred (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t1))))))) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t2))))))))))))) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t3)))))))));
2280 WForAllTy w t -> (trace "X" (case (trace "X" (w)) of {
2281 WeakTypeVar wtv k -> (trace "X" (TypeRep.ForAllTy (trace "X" (wtv)) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t)))))))))}));
2282 WClassP c lt -> (trace "X" (TypeRep.PredTy (trace "X" ((TypeRep.ClassP (trace "X" (c)) (trace "X" ((trace "X" ((map (trace "X" (weakTypeToCoreType)) (trace "X" (lt))))))))))));
2283 WIParam n ty -> (trace "X" (TypeRep.PredTy (trace "X" ((TypeRep.IParam (trace "X" (n)) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (ty))))))))))))}))
2285 weakCoercionToCoreCoercion :: WeakCoercion -> Coercion.Coercion
2286 weakCoercionToCoreCoercion wc =
2287 (trace "X" ((trace "X" (Coercion.mkUnsafeCoercion (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" ((trace "X" ((fst (trace "X" ((trace "X" ((weakCoercionTypes (trace "X" (wc))))))))))))))))) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" ((trace "X" ((snd (trace "X" ((trace "X" ((weakCoercionTypes (trace "X" (wc)))))))))))))))))))))
2289 weakExprToCoreExpr :: WeakExpr -> CoreSyn.Expr Var.Var
2290 weakExprToCoreExpr me =
2291 (trace "X" (case (trace "X" (me)) of {
2292 WEVar w -> (trace "X" (case (trace "X" (w)) of {
2293 WeakExprVar v w0 -> (trace "X" (CoreSyn.Var (trace "X" (v))))}));
2294 WELit lit -> (trace "X" (CoreSyn.Lit (trace "X" (lit))));
2295 WELet w ve e -> (trace "X" (case (trace "X" (w)) of {
2296 WeakExprVar v w0 -> (trace "X" ((trace "X" (MkCore.mkCoreLet (trace "X" ((CoreSyn.NonRec (trace "X" (v)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (ve)))))))))) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))))))}));
2297 WELetRec mlr e -> (trace "X" (CoreSyn.Let (trace "X" ((CoreSyn.Rec
2298 (trace "X" ((trace "X" ((let {
2299 mkLetBindings mlr0 =
2300 (trace "X" (case (trace "X" (mlr0)) of {
2302 (trace "X" (case (trace "X" (o)) of {
2304 (trace "X" (case (trace "X" (p)) of {
2305 (,) w e0 -> (trace "X" (case (trace "X" (w)) of {
2306 WeakExprVar cv w0 -> (trace "X" ((:) (trace "X" (((,) (trace "X" (cv)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e0)))))))))) (trace "X" (([])))))}))}));
2307 Prelude.Nothing -> (trace "X" (([])))}));
2308 T_Branch b1 b2 -> (trace "X" ((trace "X" (app (trace "X" ((trace "X" ((mkLetBindings (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkLetBindings (trace "X" (b2)))))))))))}))}
2309 in mkLetBindings (trace "X" (mlr)))))))))) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))));
2310 WECast e co -> (trace "X" (CoreSyn.Cast (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e))))))) (trace "X" ((trace "X" ((weakCoercionToCoreCoercion (trace "X" (co)))))))));
2311 WENote n e -> (trace "X" (CoreSyn.Note (trace "X" (n)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))));
2312 WEApp e1 e2 -> (trace "X" (CoreSyn.App (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e1))))))) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e2)))))))));
2313 WETyApp e t -> (trace "X" (CoreSyn.App (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e))))))) (trace "X" ((CoreSyn.Type (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t))))))))))));
2314 WECoApp e co -> (trace "X" (CoreSyn.App (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e))))))) (trace "X" ((CoreSyn.Type (trace "X" ((trace "X" (((\x -> x) (trace "X" ((trace "X" ((weakCoercionToCoreCoercion (trace "X" (co)))))))))))))))));
2315 WELam w e -> (trace "X" (case (trace "X" (w)) of {
2316 WeakExprVar ev w0 -> (trace "X" (CoreSyn.Lam (trace "X" (ev)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))))}));
2317 WETyLam w e -> (trace "X" (case (trace "X" (w)) of {
2318 WeakTypeVar tv k -> (trace "X" (CoreSyn.Lam (trace "X" (tv)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))))}));
2319 WECoLam w e -> (trace "X" (case (trace "X" (w)) of {
2320 WeakCoerVar cv w0 w1 -> (trace "X" (CoreSyn.Lam (trace "X" (cv)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))))}));
2321 WEBrak v w e t -> (trace "X" (case (trace "X" (w)) of {
2322 WeakTypeVar ec k -> (trace "X" ((trace "X" (fold_left (trace "X" ((\x x0 -> (trace "X" (CoreSyn.App (trace "X" (x)) (trace "X" (x0))))))) (trace "X" (((:) (trace "X" ((CoreSyn.Type (trace "X" ((TypeRep.TyVarTy (trace "X" (ec)))))))) (trace "X" (((:) (trace "X" ((CoreSyn.Type (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t)))))))))) (trace "X" (((:) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e))))))) (trace "X" (([])))))))))))) (trace "X" ((CoreSyn.Var (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v)))))))))))))))))}));
2323 WEEsc v w e t -> (trace "X" (case (trace "X" (w)) of {
2324 WeakTypeVar ec k -> (trace "X" ((trace "X" (fold_left (trace "X" ((\x x0 -> (trace "X" (CoreSyn.App (trace "X" (x)) (trace "X" (x0))))))) (trace "X" (((:) (trace "X" ((CoreSyn.Type (trace "X" ((TypeRep.TyVarTy (trace "X" (ec)))))))) (trace "X" (((:) (trace "X" ((CoreSyn.Type (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t)))))))))) (trace "X" (((:) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e))))))) (trace "X" (([])))))))))))) (trace "X" ((CoreSyn.Var (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v)))))))))))))))))}));
2325 WECSP v w e t -> (trace "X" (case (trace "X" (w)) of {
2326 WeakTypeVar ec k -> (trace "X" ((trace "X" (fold_left (trace "X" ((\x x0 -> (trace "X" (CoreSyn.App (trace "X" (x)) (trace "X" (x0))))))) (trace "X" (((:) (trace "X" ((CoreSyn.Type (trace "X" ((TypeRep.TyVarTy (trace "X" (ec)))))))) (trace "X" (((:) (trace "X" ((CoreSyn.Type (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t)))))))))) (trace "X" (((:) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e))))))) (trace "X" (([])))))))))))) (trace "X" ((CoreSyn.Var (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v)))))))))))))))))}));
2327 WECase vscrut escrut tbranches tc types alts -> (trace "X" (CoreSyn.Case (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (escrut))))))) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (vscrut)))))))))) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (tbranches)))))))
2328 (trace "X" ((trace "X" ((sortAlts
2329 (trace "X" ((trace "X" ((let {
2330 mkCaseBranches alts0 =
2331 (trace "X" (case (trace "X" (alts0)) of {
2333 (trace "X" (case (trace "X" (o)) of {
2335 (trace "X" (case (trace "X" (p)) of {
2337 (trace "X" (case (trace "X" (p0)) of {
2339 (trace "X" (case (trace "X" (p1)) of {
2340 (,) p2 cvars -> (trace "X" (case (trace "X" (p2)) of {
2341 (,) ac tvars -> (trace "X" ((:) (trace "X" (((,,) (trace "X" ((trace "X" ((weakAltConToCoreAltCon (trace "X" (ac))))))) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((map (trace "X" ((\v -> (trace "X" ((trace "X" (weakVarToCoreVar (trace "X" ((WTypeVar (trace "X" (v)))))))))))) (trace "X" (tvars))))))) (trace "X" ((trace "X" ((map (trace "X" ((\v -> (trace "X" ((trace "X" (weakVarToCoreVar (trace "X" ((WCoerVar (trace "X" (v)))))))))))) (trace "X" (cvars)))))))))))) (trace "X" ((trace "X" ((map (trace "X" ((\v -> (trace "X" ((trace "X" (weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v)))))))))))) (trace "X" (evars)))))))))))) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))))) (trace "X" (([])))))}))}))}))}));
2342 Prelude.Nothing -> (trace "X" (([])))}));
2343 T_Branch b1 b2 -> (trace "X" ((trace "X" (app (trace "X" ((trace "X" ((mkCaseBranches (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkCaseBranches (trace "X" (b2)))))))))))}))}
2344 in mkCaseBranches (trace "X" (alts))))))))))))))}))
2346 weakTypeOfWeakExpr :: WeakExpr -> OrError WeakType
2347 weakTypeOfWeakExpr we =
2348 (trace "X" ((trace "X" (coreTypeToWeakType (trace "X" ((trace "X" ((CoreUtils.exprType (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (we))))))))))))))))
2350 weakExprToString :: ToString WeakExpr
2351 weakExprToString we =
2352 (trace "X" ((trace "X" (toString (trace "X" (coreExprToString)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (we)))))))))))
2354 type TyVarResolver = WeakTypeVar0 -> OrError HaskTyVar
2356 type CoVarResolver = WeakCoerVar0 -> OrError HaskCoVar
2358 upPhi :: TypeEnv -> WeakTypeVar0 -> TyVarResolver -> TyVarResolver
2359 upPhi __U0393_0 tv __U03c6_0 tv' =
2360 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (weakTypeVarEqDecidable)) (trace "X" (tv)) (trace "X" (tv')))))) of {
2361 Prelude.True -> (trace "X" (let {fresh0 = (trace "X" (\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv)))))))))))))} in (trace "X" (OK (trace "X" ((trace "X" ((eq_rect (trace "X" (tv)) (trace "X" (fresh0)) (trace "X" (tv')))))))))));
2362 Prelude.False -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((__U03c6_0 (trace "X" (tv'))))))) (trace "X" ((\tv'' -> (trace "X" (OK (trace "X" ((\_ ite -> (trace "X" ((trace "X" (tv'' (trace "X" (__)) (trace "X" ((trace "X" ((weakITE (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (ite)))))))))))))))))))))))}))
2364 upPhi2 :: TypeEnv -> (([]) WeakTypeVar0) -> TyVarResolver -> TyVarResolver
2365 upPhi2 __U0393_0 tvs __U03c6_0 =
2366 (trace "X" ((trace "X" (list_rect (trace "X" (__U03c6_0)) (trace "X" ((\a tvs0 iHtvs -> (trace "X" ((trace "X" (upPhi (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((map (trace "X" ((\tv -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (tv))))))))) (trace "X" (tvs0))))))) (trace "X" (__U0393_0))))))) (trace "X" (a)) (trace "X" (iHtvs))))))))) (trace "X" (tvs))))))
2368 substPhi :: TypeEnv -> Kind -> Kind -> HaskType -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
2369 substPhi __U0393_0 __U03ba_ __U03ba_' __U03b8_ ht x =
2370 (trace "X" ((trace "X" (substT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03ba_')) (trace "X" ((\_ env x0 -> (trace "X" ((trace "X" (ht (trace "X" (__)) (trace "X" ((ICons (trace "X" (__U03ba_)) (trace "X" (__U0393_0)) (trace "X" (x0)) (trace "X" (env)))))))))))) (trace "X" (__U03b8_)) (trace "X" (x))))))
2372 substphi :: TypeEnv -> (([]) Kind) -> (IList Kind HaskType) -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
2373 substphi __U0393_0 lk __U03b8_ __U03ba_ x x0 =
2375 h = (trace "X" ((trace "X" (list_rect (trace "X" ((\__U03b8_0 q -> (trace "X" (q))))) (trace "X" ((\a lk0 iHlk __U03b8_0 q ->
2376 (trace "X" ((trace "X" (iHlk
2377 (trace "X" ((case (trace "X" (__U03b8_0)) of {
2378 INil -> (trace "X" (false_rect));
2379 ICons i is x1 x2 -> (trace "X" ((trace "X" (eq_rect (trace "X" (a)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (lk0)) (trace "X" ((\x3 x4 -> (trace "X" (x4))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x1)) (trace "X" (x2))))))})))
2380 (trace "X" ((case (trace "X" (__U03b8_0)) of {
2381 INil -> (trace "X" (false_rect));
2382 ICons i is x1 x2 -> (trace "X" ((trace "X" (eq_rect (trace "X" (a)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (lk0)) (trace "X" ((\x3 x4 _ -> (trace "X" ((trace "X" (substPhi (trace "X" ((trace "X" ((app (trace "X" (lk0)) (trace "X" (__U0393_0))))))) (trace "X" (a)) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" (lk0)) (trace "X" (a)) (trace "X" (x3))))))))) (trace "X" (q))))))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x1)) (trace "X" (x2))))))})))))))))) (trace "X" (lk))))))}
2384 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (h)) (trace "X" (__U03b8_)) (trace "X" (x)) (trace "X" (__)) (trace "X" (x0))))))))
2386 data StrongAltConPlusJunk =
2387 Build_StrongAltConPlusJunk StrongAltCon (TypeEnv -> TyVarResolver -> TyVarResolver) (TypeEnv -> CoercionEnv -> (IList Kind HaskType) -> CoVarResolver -> CoVarResolver)
2389 sacpj_sac :: TyCon.TyCon -> StrongAltConPlusJunk -> StrongAltCon
2391 (trace "X" (case (trace "X" (s)) of {
2392 Build_StrongAltConPlusJunk sacpj_sac0 sacpj_phi0 sacpj_psi0 -> (trace "X" (sacpj_sac0))}))
2394 sacpj_phi :: TyCon.TyCon -> StrongAltConPlusJunk -> TypeEnv -> TyVarResolver -> TyVarResolver
2396 (trace "X" (case (trace "X" (s)) of {
2397 Build_StrongAltConPlusJunk sacpj_sac0 sacpj_phi0 sacpj_psi0 -> (trace "X" (sacpj_phi0))}))
2399 sacpj_psi :: TyCon.TyCon -> StrongAltConPlusJunk -> TypeEnv -> CoercionEnv -> (IList Kind HaskType) -> CoVarResolver -> CoVarResolver
2401 (trace "X" (case (trace "X" (s)) of {
2402 Build_StrongAltConPlusJunk sacpj_sac0 sacpj_phi0 sacpj_psi0 -> (trace "X" (sacpj_psi0))}))
2404 mkPhi :: (([]) WeakTypeVar0) -> TyVarResolver
2406 (trace "X" (let {__U03c6_2 = (trace "X" ((trace "X" (upPhi2 (trace "X" (([]))) (trace "X" (lv)) (trace "X" ((\x -> Prelude.error "encountered unbound tyvar!")))))))} in (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((map (trace "X" ((\tv -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (tv))))))))) (trace "X" (lv))))))) (trace "X" (([])))))))) (trace "X" (__U03c6_2)) (trace "X" ((trace "X" ((map (trace "X" ((\tv -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (tv))))))))) (trace "X" (lv)))))))))))))
2408 dataConExKinds :: DataCon.DataCon -> Vec Kind
2410 (trace "X" ((trace "X" (vec_map (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConExTyVars (trace "X" (dc)))))))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((dataConExTyVars (trace "X" (dc))))))))))))))))
2412 tyConKinds :: TyCon.TyCon -> Vec Kind
2414 (trace "X" ((trace "X" (vec_map (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" (tc)))))))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((tyConTyVars (trace "X" (tc))))))))))))))))
2416 fixkind :: Kind -> WeakTypeVar0 -> WeakTypeVar0
2417 fixkind __U03ba_ tv =
2418 (trace "X" (WeakTypeVar (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WTypeVar (trace "X" (tv)))))))))) (trace "X" (__U03ba_))))
2420 mkTAll' :: Kind -> (([]) Kind) -> HaskType -> (InstantiatedTypeEnv a1) -> a1 -> RawHaskType a1
2421 mkTAll' __U03ba_ __U0393_0 x ite x0 =
2422 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x)) (trace "X" (__)) (trace "X" ((ICons (trace "X" (__U03ba_)) (trace "X" (__U0393_0)) (trace "X" (x0)) (trace "X" (ite)))))))))
2424 mkTAll :: Kind -> (([]) Kind) -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
2425 mkTAll __U03ba_ __U0393_0 x x0 =
2426 (trace "X" (TAll (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((mkTAll' (trace "X" (__U03ba_)) (trace "X" (__U0393_0)) (trace "X" (x)) (trace "X" (x0)))))))))
2428 weakTypeToType :: TypeEnv -> TyVarResolver -> WeakType -> OrError HaskTypeOfSomeKind0
2429 weakTypeToType __U0393_0 __U03c6_0 t =
2430 (trace "X" ((trace "X" (addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (weakTypeToString)) (trace "X" (t))))))))))))
2431 (trace "X" ((case (trace "X" (t)) of {
2432 WTyVarTy v -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((__U03c6_0 (trace "X" (v))))))) (trace "X" ((\v' -> (trace "X" ((trace "X" (addErrorMessage (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('V')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))) (trace "X" ((OK (trace "X" ((HaskTypeOfSomeKind (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (v))))))) (trace "X" ((\_ env -> (trace "X" (TVar (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (v))))))) (trace "X" ((trace "X" ((v' (trace "X" (__)) (trace "X" (env)))))))))))))))))))))))))))));
2434 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t1))))))) (trace "X" ((\t1' ->
2435 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t2))))))) (trace "X" ((\t2' ->
2436 (trace "X" ((trace "X" (addErrorMessage (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" ([])))))))))))))))))))))))))))))))))))
2437 (trace "X" ((case (trace "X" (t1')) of {
2438 HaskTypeOfSomeKind k1' t1'0 ->
2439 (trace "X" (case (trace "X" (t2')) of {
2440 HaskTypeOfSomeKind k2' t2'0 ->
2441 (trace "X" (case (trace "X" (k1')) of {
2442 KindArrow k1'1 k1'2 ->
2443 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (k1'1)) (trace "X" (k2'))))))} in
2444 (trace "X" (case (trace "X" (s)) of {
2445 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (k2')) (trace "X" ((\t1'1 -> (trace "X" (OK (trace "X" ((HaskTypeOfSomeKind (trace "X" (k1'2)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (k1'2)) (trace "X" (k2')) (trace "X" ((trace "X" ((t1'1 (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((t2'0 (trace "X" (__)) (trace "X" (env)))))))))))))))))))) (trace "X" (k1'1)) (trace "X" (t1'0))))));
2446 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('K')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (k1'1)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (k2'))))))))))))))}))));
2447 x -> (trace "X" (let {err = (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" ((trace "X" ((typeToStringInstance (trace "X" (__U0393_0)) (trace "X" (x))))))) (trace "X" (t1'0)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (x)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" ((trace "X" ((typeToStringInstance (trace "X" (__U0393_0)) (trace "X" (k2'))))))) (trace "X" (t2'0)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (k2')))))))))))} in (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('K')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (err)))))))))))}))}))})))))))))))))))))))));
2449 (trace "X" ((trace "X" (orErrorBind
2450 (trace "X" ((trace "X" ((let {
2451 weakTypeListToTypeList lk lt0 =
2452 (trace "X" (case (trace "X" (lt0)) of {
2454 (trace "X" (case (trace "X" (lk)) of {
2455 ([]) -> (trace "X" (OK (trace "X" ((\_ x -> (trace "X" (TyFunApp_nil)))))));
2456 (:) k l -> (trace "X" (Error (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
2458 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (tx))))))) (trace "X" ((\t' ->
2459 (trace "X" (case (trace "X" (lk)) of {
2460 ([]) -> (trace "X" (Error (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2462 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeListToTypeList (trace "X" (lk')) (trace "X" (lt'))))))) (trace "X" ((\rhtl' ->
2463 (trace "X" ((trace "X" (addErrorMessage (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
2464 (trace "X" ((case (trace "X" (t')) of {
2465 HaskTypeOfSomeKind k' t'0 ->
2466 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (k)) (trace "X" (k'))))))} in
2467 (trace "X" (case (trace "X" (s)) of {
2468 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (k')) (trace "X" ((OK (trace "X" ((\_ ite -> (trace "X" (TyFunApp_cons (trace "X" (k')) (trace "X" (lk')) (trace "X" ((trace "X" ((t'0 (trace "X" (__)) (trace "X" (ite))))))) (trace "X" ((trace "X" ((rhtl' (trace "X" (__)) (trace "X" (ite))))))))))))))) (trace "X" (k))))));
2469 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('K')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (k)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (k'))))))))))))))}))))}))))))))))))))})))))))))}))}
2470 in weakTypeListToTypeList (trace "X" ((trace "X" ((fst (trace "X" ((trace "X" ((tyFunKind (trace "X" (tc)))))))))))) (trace "X" (lt))))))) (trace "X" ((\lt' -> (trace "X" ((trace "X" (addErrorMessage (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((OK (trace "X" ((HaskTypeOfSomeKind (trace "X" ((trace "X" ((snd (trace "X" ((trace "X" ((tyFunKind (trace "X" (tc)))))))))))) (trace "X" ((\_ x -> (trace "X" (TyFunApp (trace "X" (tc)) (trace "X" ((trace "X" ((fst (trace "X" ((trace "X" ((tyFunKind (trace "X" (tc)))))))))))) (trace "X" ((trace "X" ((snd (trace "X" ((trace "X" ((tyFunKind (trace "X" (tc)))))))))))) (trace "X" ((trace "X" ((lt' (trace "X" (__)) (trace "X" (x)))))))))))))))))))))))))))));
2471 WTyCon tc -> (trace "X" ((trace "X" (addErrorMessage (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" ([]))))))))))))))))))))))))))))))))))) (trace "X" ((OK (trace "X" ((HaskTypeOfSomeKind (trace "X" ((trace "X" ((tyConKind' (trace "X" (tc))))))) (trace "X" ((\_ x -> (trace "X" (TCon (trace "X" (tc)))))))))))))))));
2472 WFunTyCon -> (trace "X" (OK (trace "X" ((HaskTypeOfSomeKind (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar)))))))) (trace "X" ((\_ ite -> (trace "X" (TArrow))))))))));
2474 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (tbody))))))) (trace "X" ((\tbody' ->
2475 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((__U03c6_0 (trace "X" ((trace "X" ((fixkind (trace "X" (eCKind)) (trace "X" (ec)))))))))))) (trace "X" ((\ec' ->
2476 (trace "X" ((trace "X" (addErrorMessage (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))
2477 (trace "X" ((case (trace "X" (tbody')) of {
2478 HaskTypeOfSomeKind __U03ba_ h ->
2479 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))} in
2480 (trace "X" (case (trace "X" (s)) of {
2481 Prelude.True -> (trace "X" (OK (trace "X" ((HaskTypeOfSomeKind (trace "X" (KindStar)) (trace "X" ((\_ x -> (trace "X" (TCode (trace "X" ((TVar (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" ((trace "X" ((fixkind (trace "X" (eCKind)) (trace "X" (ec)))))))))))) (trace "X" ((trace "X" ((ec' (trace "X" (__)) (trace "X" (x)))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" (KindStar)) (trace "X" ((\h0 -> (trace "X" ((trace "X" (h0 (trace "X" (__)) (trace "X" (x))))))))) (trace "X" (__U03ba_)) (trace "X" (h)))))))))))))))));
2482 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('K')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (__U03ba_)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (KindStar))))))))))))))}))))})))))))))))))))))))));
2483 WCoFunTy t1 t2 t3 ->
2484 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t1))))))) (trace "X" ((\t1' ->
2485 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t2))))))) (trace "X" ((\t2' ->
2486 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t3))))))) (trace "X" ((\t3' ->
2487 (trace "X" ((trace "X" (addErrorMessage (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))
2488 (trace "X" ((case (trace "X" (t1')) of {
2489 HaskTypeOfSomeKind k1' t1'0 ->
2490 (trace "X" (case (trace "X" (t2')) of {
2491 HaskTypeOfSomeKind k2' t2'0 ->
2492 (trace "X" (case (trace "X" (t3')) of {
2493 HaskTypeOfSomeKind k3' t3'0 ->
2494 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (k1')) (trace "X" (k2'))))))} in
2495 (trace "X" (case (trace "X" (s)) of {
2497 (trace "X" ((trace "X" (eq_rect_r (trace "X" (k2')) (trace "X" ((\t1'1 ->
2498 (trace "X" (let {s0 = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (k3')) (trace "X" (KindStar))))))} in
2499 (trace "X" (case (trace "X" (s0)) of {
2500 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (KindStar)) (trace "X" ((\t3'1 -> (trace "X" (OK (trace "X" ((HaskTypeOfSomeKind (trace "X" (KindStar)) (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (k2')) (trace "X" ((trace "X" ((t1'1 (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((t2'0 (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((t3'1 (trace "X" (__)) (trace "X" (env)))))))))))))))))))) (trace "X" (k3')) (trace "X" (t3'0))))));
2501 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('K')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (k3')))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (KindStar))))))))))))))}))))))) (trace "X" (k1')) (trace "X" (t1'0))))));
2502 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('K')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (k1')))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (k2'))))))))))))))}))))}))}))}))))))))))))))))))))))))))));
2504 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (((:) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (wtv))))))) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((upPhi (trace "X" (__U0393_0)) (trace "X" (wtv)) (trace "X" (__U03c6_0))))))) (trace "X" (t0))))))) (trace "X" ((\t1 ->
2505 (trace "X" ((trace "X" (addErrorMessage (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))
2506 (trace "X" ((case (trace "X" (t1)) of {
2507 HaskTypeOfSomeKind __U03ba_ h ->
2508 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (KindStar)) (trace "X" (__U03ba_))))))} in
2509 (trace "X" (case (trace "X" (s)) of {
2510 Prelude.True -> (trace "X" ((trace "X" (eq_rect (trace "X" (KindStar)) (trace "X" ((\h0 -> (trace "X" (OK (trace "X" ((HaskTypeOfSomeKind (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkTAll (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (wtv))))))) (trace "X" (__U0393_0)) (trace "X" (h0))))))))))))))))) (trace "X" (__U03ba_)) (trace "X" (h))))));
2511 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('K')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (KindStar)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (__U03ba_))))))))))))))}))))}))))))))))))));
2512 WClassP c lt -> (trace "X" (Error (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('P')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2513 WIParam c ty -> (trace "X" (Error (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('P')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))})))))))
2515 weakTypeToType' :: TyCon.TyCon -> DataCon -> TypeEnv -> (IList Kind HaskType) -> WeakType -> OrError HaskType
2516 weakTypeToType' tc dc __U0393_0 avars ct =
2517 (trace "X" ((trace "X" (addErrorMessage (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('\'')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))
2518 (trace "X" ((let {avars' = (trace "X" ((trace "X" (ilmap (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((tyConKinds (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((\x x0 _ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((dataConExKinds (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" (x)) (trace "X" (x0))))))))) (trace "X" (avars))))))} in
2519 (trace "X" (let {q = (trace "X" ((trace "X" (substphi (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((dataConExKinds (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((tyConKinds (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" (avars'))))))} in
2520 (trace "X" (let {__U03c6_2 = (trace "X" ((trace "X" (upPhi2 (trace "X" ((trace "X" ((map (trace "X" ((\x -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x))))))))) (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc)))))))))))) (trace "X" ((trace "X" ((mkPhi (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc)))))))))))))))))))))} in
2521 (trace "X" (let {t = (trace "X" ((trace "X" (weakTypeToType (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((map (trace "X" ((\tv -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (tv))))))))) (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((map (trace "X" ((\x -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x))))))))) (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc)))))))))))))))))))))) (trace "X" (__U03c6_2)) (trace "X" (ct))))))} in
2522 (trace "X" (case (trace "X" (t)) of {
2523 Error error_message -> (trace "X" (Error (trace "X" (error_message))));
2525 (trace "X" (case (trace "X" (t0)) of {
2526 HaskTypeOfSomeKind tk t1 ->
2527 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (tk)) (trace "X" (KindStar))))))} in
2528 (trace "X" (case (trace "X" (s)) of {
2529 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (KindStar)) (trace "X" ((\t2 -> (trace "X" (OK (trace "X" ((let {t' = (trace "X" (\_ -> (trace "X" ((trace "X" (weakT'' (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((map (trace "X" ((\tv -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (tv))))))))) (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((map (trace "X" ((\x -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x))))))))) (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc)))))))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (t2))))))))} in (trace "X" (let {t'' = (trace "X" (\_ -> (trace "X" ((trace "X" (lamer (trace "X" ((trace "X" ((map (trace "X" ((\tv -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (tv))))))))) (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((map (trace "X" ((\x -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x))))))))) (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (t'))))))))} in (trace "X" ((\_ -> (trace "X" ((trace "X" (q (trace "X" (KindStar)) (trace "X" ((trace "X" ((eq_rect (trace "X" ((trace "X" ((map (trace "X" ((\x -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))))))))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" ((trace "X" ((map (trace "X" ((\x -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc)))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc)))))))))))) (trace "X" (t'')) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))))))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))))))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((vec_map (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc)))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((vec_map (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (tk)) (trace "X" (t1))))));
2530 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('\'')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (tk)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (KindStar))))))))))))))}))))}))})))))))))))))))
2532 mkStrongAltCon :: TyCon.TyCon -> DataCon -> StrongAltCon
2533 mkStrongAltCon tc dc =
2534 (trace "X" (Build_StrongAltCon (trace "X" ((WeakDataAlt (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc)))))))))) (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConCoerKinds (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConFieldTypes (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((dataConExKinds (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc)))))))))))) (trace "X" ((\__U0393_0 avars ->
2535 (trace "X" ((trace "X" (vec_map (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConCoerKinds (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((\x ->
2536 (trace "X" (case (trace "X" (x)) of {
2538 (trace "X" (let {q = (trace "X" ((trace "X" (weakTypeToType' (trace "X" (tc)) (trace "X" (dc)) (trace "X" (__U0393_0))))))} in
2539 (trace "X" (let {q0 = (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((vec_map (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x0))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))))))))))))) (trace "X" (q)) (trace "X" ((trace "X" ((map (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x0))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc)))))))))))))))))))))))))))))))} in
2540 (trace "X" (let {q1 = (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc)))))))))))))))))))))) (trace "X" (q0)) (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))} in
2541 (trace "X" (case (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((q1 (trace "X" (avars)) (trace "X" (w))))))) (trace "X" ((\t1 -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((q1 (trace "X" (avars)) (trace "X" (w0))))))) (trace "X" ((\t2 -> (trace "X" (OK (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((dataConExKinds (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" (__U0393_0))))))) (trace "X" (KindStar)) (trace "X" (t1)) (trace "X" (t2))))))))))))))))))))))))) of {
2542 Error s -> (trace "X" ((trace "X" (Prelude.error (trace "X" (s))))));
2543 OK y -> (trace "X" (y))}))))))))}))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((dataConCoerKinds (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc)))))))))))))))))))))))) (trace "X" ((\__U0393_0 avars ->
2544 (trace "X" ((trace "X" (vec_map (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConFieldTypes (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((\x ->
2545 (trace "X" (let {q = (trace "X" ((trace "X" (weakTypeToType' (trace "X" (tc)) (trace "X" (dc)) (trace "X" (__U0393_0))))))} in
2546 (trace "X" (let {q0 = (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((vec_map (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x0))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))))))))))))) (trace "X" (q)) (trace "X" ((trace "X" ((map (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (x0))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc)))))))))))))))))))))))))))))))} in
2547 (trace "X" (let {q1 = (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc)))))))))))))))))))))) (trace "X" (q0)) (trace "X" ((trace "X" ((tyConTyVars (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))))))))))))} in
2548 (trace "X" (let {y = (trace "X" ((trace "X" (q1 (trace "X" (avars)) (trace "X" (x))))))} in
2549 (trace "X" (case (trace "X" (y)) of {
2550 Error s -> (trace "X" ((trace "X" (Prelude.error (trace "X" (s))))));
2551 OK y' -> (trace "X" (y'))}))))))))))))) (trace "X" ((trace "X" ((list2vec (trace "X" ((trace "X" ((dataConFieldTypes (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))))))))))))
2553 weakCV' :: TypeEnv -> CoercionEnv -> (([]) Kind) -> HaskCoVar -> (InstantiatedTypeEnv a1) -> (InstantiatedCoercionEnv a1 a2) -> a2
2554 weakCV' __U0393_0 __U0394_0 __U0393_' x env cenv =
2555 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x)) (trace "X" (__)) (trace "X" (__)) (trace "X" ((trace "X" ((ilist_chop' (trace "X" (__U0393_')) (trace "X" (__U0393_0)) (trace "X" (env))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((map (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (weakCK' (trace "X" (__U0393_0)) (trace "X" (__U0393_')) (trace "X" (x0))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" (cenv)) (trace "X" ((trace "X" ((length (trace "X" (__U0394_0))))))))))))))))
2557 mkStrongAltConPlusJunk :: TyCon.TyCon -> DataCon -> StrongAltConPlusJunk
2558 mkStrongAltConPlusJunk tc dc =
2559 (trace "X" (Build_StrongAltConPlusJunk (trace "X" ((trace "X" ((mkStrongAltCon (trace "X" (tc)) (trace "X" (dc))))))) (trace "X" ((\__U0393_0 __U03c6_0 htv -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((__U03c6_0 (trace "X" (htv))))))) (trace "X" ((\htv' -> (trace "X" (OK (trace "X" ((\_ -> (trace "X" ((trace "X" (weakV' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((mkStrongAltCon (trace "X" (tc)) (trace "X" (dc)))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((mkStrongAltCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (htv))))))) (trace "X" (htv'))))))))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 avars __U03c8_0 htv -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((__U03c8_0 (trace "X" (htv))))))) (trace "X" ((\htv' -> (trace "X" (OK (trace "X" ((\_ _ env cenv -> (trace "X" ((trace "X" (weakCV' (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((mkStrongAltCon (trace "X" (tc)) (trace "X" (dc)))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((mkStrongAltCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" (htv')) (trace "X" (env)) (trace "X" ((trace "X" ((vec_chop' (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numCoerVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((mkStrongAltCon (trace "X" (tc)) (trace "X" (dc)))))))))))) (trace "X" ((trace "X" ((sac_coercions (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((mkStrongAltCon (trace "X" (tc)) (trace "X" (dc))))))) (trace "X" (__U0393_0)) (trace "X" (avars)))))))))))) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((dataConExTyVars (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" ((trace "X" ((dataConExKinds (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc)) (trace "X" (dc))))))))))))))))) (trace "X" (__U0394_0))))))) (trace "X" (cenv))))))))))))))))))))))))))))
2561 mkStrongAltConPlusJunk' :: TyCon.TyCon -> WeakAltCon -> OrError StrongAltConPlusJunk
2562 mkStrongAltConPlusJunk' tc alt =
2563 (trace "X" (case (trace "X" (alt)) of {
2565 (trace "X" (let {tc' = (trace "X" ((trace "X" (DataCon.dataConTyCon (trace "X" (c))))))} in
2566 (trace "X" (let {eqpf = (trace "X" ((trace "X" (eqd_dec (trace "X" (tyConEqDecidable)) (trace "X" (tc)) (trace "X" (tc'))))))} in
2567 (trace "X" (case (trace "X" (eqpf)) of {
2568 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (tc')) (trace "X" ((OK (trace "X" ((trace "X" ((mkStrongAltConPlusJunk (trace "X" (tc')) (trace "X" (c)))))))))) (trace "X" (tc))))));
2569 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (tyConToString)) (trace "X" (tc)))))))))))) (trace "X" (((:) (trace "X" (',')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreDataConToString)) (trace "X" ((trace "X" ((dataConToCoreDataCon (trace "X" (tc')) (trace "X" (c)))))))))))))))))))}))))));
2570 x -> (trace "X" (OK (trace "X" ((Build_StrongAltConPlusJunk (trace "X" ((Build_StrongAltCon (trace "X" (x)) (trace "X" (O)) (trace "X" (O)) (trace "X" (O)) (trace "X" (Vec_nil)) (trace "X" ((\__U0393_0 atypes -> (trace "X" (Vec_nil))))) (trace "X" ((\__U0393_0 atypes -> (trace "X" (Vec_nil)))))))) (trace "X" ((\__U0393_0 __U03c6_0 -> (trace "X" (__U03c6_0))))) (trace "X" ((\__U0393_0 __U0394_0 atypes __U03c8_0 -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (__U0394_0)) (trace "X" (__U03c8_0)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" (([]))) (trace "X" (__U0394_0)))))))))))))))))))}))
2572 weakExprVarToWeakType :: WeakExprVar0 -> WeakType
2573 weakExprVarToWeakType wev =
2574 (trace "X" (case (trace "X" (wev)) of {
2575 WeakExprVar c t -> (trace "X" (t))}))
2577 weakPsi :: TypeEnv -> CoercionEnv -> HaskCoercionKind -> (WeakCoerVar0 -> OrError HaskCoVar) -> WeakCoerVar0 -> OrError HaskCoVar
2578 weakPsi __U0393_0 __U0394_0 __U03ba_ __U03c8_0 x =
2579 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((__U03c8_0 (trace "X" (x))))))) (trace "X" ((\x0 -> (trace "X" (OK (trace "X" ((\_ _ env cenv ->
2580 (trace "X" (case (trace "X" (cenv)) of {
2581 Vec_nil -> (trace "X" (false_rect));
2582 Vec_cons n x1 x2 -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((length (trace "X" (__U0394_0))))))) (trace "X" ((\x3 x4 -> (trace "X" (x3))))) (trace "X" (n)) (trace "X" (x1)) (trace "X" (x2))))))}))))))))))))))
2584 castExpr :: WeakExpr -> Prelude.String -> TypeEnv -> CoercionEnv -> (Var.Var -> LeveledHaskType) -> LeveledHaskType -> LeveledHaskType -> (Expr Var.Var) -> OrError (Expr Var.Var)
2585 castExpr we err_msg __U0393_0 __U0394_0 __U03be_0 __U03c4_ __U03c4_' e =
2586 (trace "X" ((trace "X" (addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))) (trace "X" (err_msg)))))))
2587 (trace "X" ((case (trace "X" (__U03c4_)) of {
2588 MkLeveledHaskType __U03c4_0 l ->
2589 (trace "X" (case (trace "X" (__U03c4_')) of {
2590 MkLeveledHaskType __U03c4_'0 l' ->
2591 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((haskLevelEqDecidable (trace "X" (__U0393_0))))))) (trace "X" (l)) (trace "X" (l'))))))} in
2592 (trace "X" (case (trace "X" (s)) of {
2594 (trace "X" (let {s0 = (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((haskTypeEqDecidable (trace "X" (__U0393_0)) (trace "X" (KindStar))))))) (trace "X" (__U03c4_0)) (trace "X" (__U03c4_'0))))))} in
2595 (trace "X" (case (trace "X" (s0)) of {
2596 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (__U03c4_'0)) (trace "X" ((\e0 -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (l')) (trace "X" ((\e1 -> (trace "X" (OK (trace "X" (e1))))))) (trace "X" (l)) (trace "X" (e0))))))))) (trace "X" (__U03c4_0)) (trace "X" (e))))));
2597 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (',')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (err_msg))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" ((trace "X" ((typeToStringInstance (trace "X" (__U0393_0)) (trace "X" (KindStar))))))) (trace "X" (__U03c4_0)))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" ((trace "X" ((typeToStringInstance (trace "X" (__U0393_0)) (trace "X" (KindStar))))))) (trace "X" (__U03c4_'0))))))))))))))}))));
2598 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (',')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (err_msg))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))) (trace "X" ((trace "X" ((fold_left (trace "X" ((\x y -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (y)) (trace "X" (((:) (trace "X" (',')) (trace "X" ([])))))))))) (trace "X" (y))))))))) (trace "X" ((trace "X" ((map (trace "X" ((\x -> (trace "X" ((trace "X" (toString (trace "X" ((trace "X" ((typeToStringInstance (trace "X" (__U0393_0)) (trace "X" (eCKind))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTyVarToType (trace "X" (__U0393_0)) (trace "X" (eCKind)) (trace "X" (x)))))))))))))))) (trace "X" (l))))))) (trace "X" ([])))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((fold_left (trace "X" ((\x y -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (x)) (trace "X" (((:) (trace "X" (',')) (trace "X" ([])))))))))) (trace "X" (y))))))))) (trace "X" ((trace "X" ((map (trace "X" ((\x -> (trace "X" ((trace "X" (toString (trace "X" ((trace "X" ((typeToStringInstance (trace "X" (__U0393_0)) (trace "X" (eCKind))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTyVarToType (trace "X" (__U0393_0)) (trace "X" (eCKind)) (trace "X" (x)))))))))))))))) (trace "X" (l'))))))) (trace "X" ([]))))))))))))))}))))}))})))))))
2600 coVarKind :: WeakCoerVar0 -> Kind
2602 (trace "X" (case (trace "X" (wcv)) of {
2603 WeakCoerVar c t w -> (trace "X" ((trace "X" ((coreKindToKind . Coercion.typeKind) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t)))))))))))}))
2605 weakTypeToTypeOfKind :: TypeEnv -> TyVarResolver -> WeakType -> Kind -> OrError HaskType
2606 weakTypeToTypeOfKind __U0393_0 __U03c6_0 t __U03ba_ =
2607 (trace "X" (let {wt = (trace "X" ((trace "X" (weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t))))))} in
2608 (trace "X" (case (trace "X" (wt)) of {
2609 Error error_message -> (trace "X" (Error (trace "X" (error_message))));
2611 (trace "X" (case (trace "X" (h)) of {
2612 HaskTypeOfSomeKind __U03ba_0 h0 ->
2613 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (__U03ba_)) (trace "X" (__U03ba_0))))))} in
2614 (trace "X" (case (trace "X" (s)) of {
2615 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (__U03ba_0)) (trace "X" ((OK (trace "X" (h0))))) (trace "X" (__U03ba_))))));
2616 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('K')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('O')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('K')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (__U03ba_)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((toString (trace "X" (kindToString0)) (trace "X" (__U03ba_0))))))))))))))}))))}))}))))
2618 varsTypes :: TypeEnv -> (Tree (Prelude.Maybe ((,) WeakExprVar0 WeakExpr))) -> TyVarResolver -> Tree (Prelude.Maybe ((,) Var.Var HaskType))
2619 varsTypes __U0393_0 t __U03c6_0 =
2620 (trace "X" (case (trace "X" (t)) of {
2622 (trace "X" (case (trace "X" (o)) of {
2624 (trace "X" (case (trace "X" (p)) of {
2626 (trace "X" (case (trace "X" ((trace "X" (weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" ((trace "X" ((weakExprVarToWeakType (trace "X" (wev))))))) (trace "X" (KindStar)))))) of {
2627 Error error_message -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
2628 OK t' -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" (((,) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (wev)))))))))) (trace "X" (t'))))))))))}))}));
2629 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
2630 T_Branch b1 b2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((varsTypes (trace "X" (__U0393_0)) (trace "X" (b1)) (trace "X" (__U03c6_0))))))) (trace "X" ((trace "X" ((varsTypes (trace "X" (__U0393_0)) (trace "X" (b2)) (trace "X" (__U03c6_0)))))))))}))
2632 mkAvars :: TypeEnv -> (([]) WeakType) -> (([]) Kind) -> TyVarResolver -> OrError (IList Kind HaskType)
2633 mkAvars __U0393_0 wtl lk __U03c6_0 =
2634 (trace "X" (case (trace "X" (lk)) of {
2636 (trace "X" (case (trace "X" (wtl)) of {
2637 ([]) -> (trace "X" (OK (trace "X" (INil))));
2638 (:) w l -> (trace "X" (Error (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('s')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
2640 (trace "X" (case (trace "X" (wtl)) of {
2641 ([]) -> (trace "X" (Error (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('s')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2642 (:) wt wtl' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (wt)) (trace "X" (k))))))) (trace "X" ((\t -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((mkAvars (trace "X" (__U0393_0)) (trace "X" (wtl')) (trace "X" (lk')) (trace "X" (__U03c6_0))))))) (trace "X" ((\rest -> (trace "X" (OK (trace "X" ((ICons (trace "X" (k)) (trace "X" (lk')) (trace "X" (t)) (trace "X" (rest)))))))))))))))))))))}))}))
2644 update_ig :: (Var.Var -> Prelude.Bool) -> (([]) Var.Var) -> Var.Var -> Prelude.Bool
2646 (trace "X" (case (trace "X" (vars)) of {
2647 ([]) -> (trace "X" (ig));
2648 (:) v vars' -> (trace "X" ((\v' ->
2649 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (coreVarEqDecidable)) (trace "X" (v)) (trace "X" (v')))))) of {
2650 Prelude.True -> (trace "X" (Prelude.False));
2651 Prelude.False -> (trace "X" ((trace "X" (update_ig (trace "X" (ig)) (trace "X" (vars')) (trace "X" (v'))))))})))))}))
2653 doesWeakVarOccur :: WeakExprVar0 -> WeakExpr -> Prelude.Bool
2654 doesWeakVarOccur wev me =
2655 (trace "X" (case (trace "X" (me)) of {
2657 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (coreVarEqDecidable)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (wev)))))))))) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (cv)))))))))))))) of {
2658 Prelude.True -> (trace "X" (Prelude.True));
2659 Prelude.False -> (trace "X" (Prelude.False))}));
2660 WELit h -> (trace "X" (Prelude.False));
2662 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e1)))))) of {
2663 Prelude.True -> (trace "X" (Prelude.True));
2665 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (coreVarEqDecidable)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (wev)))))))))) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (cv)))))))))))))) of {
2666 Prelude.True -> (trace "X" (Prelude.False));
2667 Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e2))))))}))}));
2669 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e)))))) of {
2670 Prelude.True -> (trace "X" (Prelude.True));
2672 (trace "X" ((trace "X" (let {
2673 doesWeakVarOccurLetRec mlr0 =
2674 (trace "X" (case (trace "X" (mlr0)) of {
2676 (trace "X" (case (trace "X" (o)) of {
2678 (trace "X" (case (trace "X" (p)) of {
2680 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (coreVarEqDecidable)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (wev)))))))))) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (cv)))))))))))))) of {
2681 Prelude.True -> (trace "X" (Prelude.False));
2682 Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e0))))))}))}));
2683 Prelude.Nothing -> (trace "X" (Prelude.False))}));
2685 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccurLetRec (trace "X" (b1)))))) of {
2686 Prelude.True -> (trace "X" (Prelude.True));
2687 Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccurLetRec (trace "X" (b2))))))}))}))}
2688 in doesWeakVarOccurLetRec (trace "X" (mlr))))))}));
2689 WECast e co -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2690 WENote n e -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2692 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e1)))))) of {
2693 Prelude.True -> (trace "X" (Prelude.True));
2694 Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e2))))))}));
2695 WETyApp e t -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2696 WECoApp e co -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2698 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (coreVarEqDecidable)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (wev)))))))))) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (cv)))))))))))))) of {
2699 Prelude.True -> (trace "X" (Prelude.False));
2700 Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))))}));
2701 WETyLam cv e -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2702 WECoLam cv e -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2703 WEBrak w ec e w0 -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2704 WEEsc w ec e w0 -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2705 WECSP w ec e w0 -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2706 WECase vscrut escrut tbranches tc avars alts ->
2707 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (escrut)))))) of {
2708 Prelude.True -> (trace "X" (Prelude.True));
2710 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (coreVarEqDecidable)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (wev)))))))))) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (vscrut)))))))))))))) of {
2711 Prelude.True -> (trace "X" (Prelude.False));
2713 (trace "X" ((trace "X" (let {
2714 doesWeakVarOccurAlts0 alts0 =
2715 (trace "X" (case (trace "X" (alts0)) of {
2717 (trace "X" (case (trace "X" (y)) of {
2718 Prelude.Just y0 -> (trace "X" (case (trace "X" (y0)) of {
2719 (,) y1 e -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))))}));
2720 Prelude.Nothing -> (trace "X" (Prelude.False))}));
2722 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccurAlts0 (trace "X" (b1)))))) of {
2723 Prelude.True -> (trace "X" (Prelude.True));
2724 Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccurAlts0 (trace "X" (b2))))))}))}))}
2725 in doesWeakVarOccurAlts0 (trace "X" (alts))))))}))}))}))
2727 doesWeakVarOccurAlts :: WeakExprVar0 -> (Tree (Prelude.Maybe ((,) ((,) ((,) ((,) WeakAltCon (([]) WeakTypeVar0)) (([]) WeakCoerVar0)) (([]) WeakExprVar0)) WeakExpr))) -> Prelude.Bool
2728 doesWeakVarOccurAlts wev alts =
2729 (trace "X" (case (trace "X" (alts)) of {
2731 (trace "X" (case (trace "X" (o)) of {
2732 Prelude.Just p -> (trace "X" (case (trace "X" (p)) of {
2733 (,) p0 e -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))))}));
2734 Prelude.Nothing -> (trace "X" (Prelude.False))}));
2736 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccurAlts (trace "X" (wev)) (trace "X" (b1)))))) of {
2737 Prelude.True -> (trace "X" (Prelude.True));
2738 Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccurAlts (trace "X" (wev)) (trace "X" (b2))))))}))}))
2740 checkDistinct :: (EqDecidable a1) -> (([]) a1) -> OrError ()
2741 checkDistinct eQ lv =
2742 (trace "X" (let {q = (trace "X" ((trace "X" (distinct_decidable (trace "X" (eQ)) (trace "X" (lv))))))} in
2743 (trace "X" (case (trace "X" (q)) of {
2744 Prelude.True -> (trace "X" (OK (trace "X" (__))));
2745 Prelude.False -> (trace "X" (Error (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('D')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))))
2747 mkGlobal :: TypeEnv -> HaskType -> WeakExprVar0 -> Global
2748 mkGlobal __U0393_0 __U03c4_ wev =
2749 (trace "X" (Build_Global (trace "X" (wev)) (trace "X" (([]))) (trace "X" ((\x -> (trace "X" (__U03c4_)))))))
2751 weakExprToStrongExpr :: TypeEnv -> CoercionEnv -> TyVarResolver -> CoVarResolver -> (Var.Var -> LeveledHaskType) -> (Var.Var -> Prelude.Bool) -> HaskType -> HaskLevel -> WeakExpr -> OrError (Expr Var.Var)
2752 weakExprToStrongExpr __U0393_0 __U0394_0 __U03c6_0 __U03c8_0 __U03be_0 ig __U03c4_ lev we =
2753 (trace "X" ((trace "X" (addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('S')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (weakExprToString)) (trace "X" (we))))))))))))
2754 (trace "X" ((case (trace "X" (we)) of {
2756 (trace "X" (case (trace "X" ((trace "X" (ig (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v)))))))))))))) of {
2757 Prelude.True -> (trace "X" (OK (trace "X" ((EGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((mkGlobal (trace "X" (__U0393_0)) (trace "X" (__U03c4_)) (trace "X" (v))))))) (trace "X" (INil)) (trace "X" (lev)))))));
2758 Prelude.False -> (trace "X" ((trace "X" (castExpr (trace "X" (we)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('V')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreVarToString)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v)))))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v))))))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((EVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v)))))))))))))))))}));
2759 WELit lit -> (trace "X" ((trace "X" (castExpr (trace "X" (we)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (haskLiteralToString)) (trace "X" (lit)))))))))))) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (lit)) (trace "X" (__U0393_0))))))))) (trace "X" (lev))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ELit (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lit)) (trace "X" (lev)))))))));
2760 WELet v ve ebody -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" ((trace "X" ((weakExprVarToWeakType (trace "X" (v))))))) (trace "X" (KindStar))))))) (trace "X" ((\tv -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_0)) (trace "X" (ig)) (trace "X" (tv)) (trace "X" (lev)) (trace "X" (ve))))))) (trace "X" ((\ve' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (coreVarEqDecidable)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v)))))))))) (trace "X" (tv))))) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((update_ig (trace "X" (ig)) (trace "X" (((:) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v)))))))))) (trace "X" (([]))))))))))) (trace "X" (__U03c4_)) (trace "X" (lev)) (trace "X" (ebody))))))) (trace "X" ((\ebody' -> (trace "X" (OK (trace "X" ((ELet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (tv)) (trace "X" (__U03c4_)) (trace "X" (lev)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v)))))))))) (trace "X" (ve')) (trace "X" (ebody'))))))))))))))))))))))))))));
2762 (trace "X" (let {__U03be_' = (trace "X" ((trace "X" (update_xi (trace "X" (coreVarEqDecidable)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" ((trace "X" ((varsTypes (trace "X" (__U0393_0)) (trace "X" (rb)) (trace "X" (__U03c6_0))))))))))))))))} in
2763 (trace "X" (let {ig' = (trace "X" ((trace "X" (update_ig (trace "X" (ig)) (trace "X" ((trace "X" ((map (trace "X" ((\x -> (trace "X" ((trace "X" (weakVarToCoreVar (trace "X" ((WExprVar (trace "X" ((trace "X" ((fst (trace "X" (x))))))))))))))))) (trace "X" ((trace "X" ((leaves (trace "X" (rb))))))))))))))))} in
2765 binds = (trace "X" ((trace "X" (let {
2767 (trace "X" (case (trace "X" (t)) of {
2769 (trace "X" (case (trace "X" (o)) of {
2771 (trace "X" (case (trace "X" (p)) of {
2773 (trace "X" ((trace "X" (addErrorMessage (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))))))
2774 (trace "X" ((let {o0 = (trace "X" ((trace "X" (weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" ((trace "X" ((weakExprVarToWeakType (trace "X" (wev))))))) (trace "X" (KindStar))))))} in
2775 (trace "X" (case (trace "X" (o0)) of {
2776 Error error_message -> (trace "X" (Error (trace "X" (error_message))));
2778 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((haskTypeEqDecidable (trace "X" (__U0393_0)) (trace "X" (KindStar))))))) (trace "X" (h)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (wev))))))))))))))))))))))))))} in
2779 (trace "X" (case (trace "X" (s)) of {
2781 (trace "X" (case (trace "X" (wev)) of {
2783 (trace "X" ((trace "X" (eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" ((WeakExprVar (trace "X" (c)) (trace "X" (w)))))))))))))))))))))))))
2784 (trace "X" ((let {e'' = (trace "X" ((trace "X" (weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_')) (trace "X" (ig')) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" ((WeakExprVar (trace "X" (c)) (trace "X" (w))))))))))))))))))))))))) (trace "X" (lev)) (trace "X" (e0))))))} in
2785 (trace "X" (case (trace "X" (e'')) of {
2786 Error error_message -> (trace "X" (Error (trace "X" (error_message))));
2787 OK e1 -> (trace "X" (OK (trace "X" ((ELR_leaf (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_')) (trace "X" (lev)) (trace "X" (c)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" ((WeakExprVar (trace "X" (c)) (trace "X" (w))))))))))))))))))))))))) (trace "X" ((let {l = (trace "X" ((trace "X" (leaves (trace "X" ((trace "X" ((varsTypes (trace "X" (__U0393_0)) (trace "X" (rb)) (trace "X" (__U03c6_0)))))))))))} in (trace "X" ((trace "X" (list_rect (trace "X" ((\e' e2 -> (trace "X" (e2))))) (trace "X" ((\a l0 iHl e' e2 -> (trace "X" (e2))))) (trace "X" (l)) (trace "X" ((\__U03c4_0 -> (trace "X" ((trace "X" (weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_')) (trace "X" (ig')) (trace "X" (__U03c4_0)) (trace "X" (lev)) (trace "X" (e0))))))))) (trace "X" (e1))))))))))))))}))))) (trace "X" (h))))))}));
2788 Prelude.False -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('c')) (trace "X" ([])))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" ((trace "X" ((typeToStringInstance (trace "X" (__U0393_0)) (trace "X" (KindStar))))))) (trace "X" (h)))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((toString (trace "X" ((trace "X" ((typeToStringInstance (trace "X" (__U0393_0)) (trace "X" (KindStar))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (wev))))))))))))))))))))))))))))))))))}))))})))))))))}));
2789 Prelude.Nothing -> (trace "X" (OK (trace "X" ((ELR_nil (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_')) (trace "X" (lev)))))))}));
2790 T_Branch b1 b2 -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((binds (trace "X" (b1))))))) (trace "X" ((\b1' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((binds (trace "X" (b2))))))) (trace "X" ((\b2' -> (trace "X" (OK (trace "X" ((ELR_branch (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_')) (trace "X" (lev)) (trace "X" ((trace "X" ((varsTypes (trace "X" (__U0393_0)) (trace "X" (b1)) (trace "X" (__U03c6_0))))))) (trace "X" ((trace "X" ((varsTypes (trace "X" (__U0393_0)) (trace "X" (b2)) (trace "X" (__U03c6_0))))))) (trace "X" (b1')) (trace "X" (b2')))))))))))))))))))))}))}
2791 in binds (trace "X" (rb))))))}
2793 (trace "X" ((trace "X" (orErrorBind (trace "X" (binds)) (trace "X" ((\binds' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((checkDistinct (trace "X" (coreVarEqDecidable)) (trace "X" ((trace "X" ((map (trace "X" (fst)) (trace "X" ((trace "X" ((leaves (trace "X" ((trace "X" ((varsTypes (trace "X" (__U0393_0)) (trace "X" (rb)) (trace "X" (__U03c6_0)))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_')) (trace "X" (ig')) (trace "X" (__U03c4_)) (trace "X" (lev)) (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" (OK (trace "X" ((ELetRec (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (__U03c4_)) (trace "X" ((trace "X" ((varsTypes (trace "X" (__U0393_0)) (trace "X" (rb)) (trace "X" (__U03c6_0))))))) (trace "X" (binds')) (trace "X" (e'))))))))))))))))))))))))))))))))));
2794 WECast e co -> (trace "X" (case (trace "X" ((trace "X" (weakCoercionTypes (trace "X" (co)))))) of {
2795 (,) t1 t2 -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t1)) (trace "X" (KindStar))))))) (trace "X" ((\t1' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t2)) (trace "X" (KindStar))))))) (trace "X" ((\t2' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_0)) (trace "X" (ig)) (trace "X" (t1')) (trace "X" (lev)) (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (castExpr (trace "X" (we)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([])))))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t2')) (trace "X" (lev))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ECast (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t1')) (trace "X" (t2')) (trace "X" (lev)) (trace "X" (e'))))))))))))))))))))))))))))))}));
2796 WENote n e -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_0)) (trace "X" (ig)) (trace "X" (__U03c4_)) (trace "X" (lev)) (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" (OK (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (n)) (trace "X" (e'))))))))))))));
2797 WEApp e1 e2 -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (e2))))))) (trace "X" ((\t2 -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t2)) (trace "X" (KindStar))))))) (trace "X" ((\t2' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_0)) (trace "X" (ig)) (trace "X" (t2')) (trace "X" (lev)) (trace "X" (e2))))))) (trace "X" ((\e2' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_0)) (trace "X" (ig)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2' (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((__U03c4_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev)) (trace "X" (e1))))))) (trace "X" ((\e1' -> (trace "X" (OK (trace "X" ((EApp (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03c4_)) (trace "X" (t2')) (trace "X" (lev)) (trace "X" (e1')) (trace "X" (e2')))))))))))))))))))))))))))))))))));
2799 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (e))))))) (trace "X" ((\te ->
2800 (trace "X" (case (trace "X" (te)) of {
2801 WForAllTy wtv te' -> (trace "X" (let {__U03c6_2 = (trace "X" ((trace "X" (upPhi (trace "X" (__U0393_0)) (trace "X" (wtv)) (trace "X" (__U03c6_0))))))} in (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (((:) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (wtv))))))) (trace "X" (__U0393_0))))) (trace "X" (__U03c6_2)) (trace "X" (te')) (trace "X" (KindStar))))))) (trace "X" ((\te'' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_0)) (trace "X" (ig)) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkTAll (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (wtv))))))) (trace "X" (__U0393_0)) (trace "X" (te''))))))))) (trace "X" (lev)) (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (wtv)))))))))))) (trace "X" ((\t' -> (trace "X" ((trace "X" (castExpr (trace "X" (we)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" ([]))))))))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (substT (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (wtv))))))) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkTAll' (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (wtv))))))) (trace "X" (__U0393_0)) (trace "X" (te''))))))))) (trace "X" (t'))))))))) (trace "X" (lev))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ETyApp (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (wtv))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkTAll' (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (wtv))))))) (trace "X" (__U0393_0)) (trace "X" (te''))))))))) (trace "X" (t')) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (e'))))))))))))))))))))))))))))))));
2802 _ -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (weakTypeToString)) (trace "X" (te))))))))))))))})))))))));
2804 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (e))))))) (trace "X" ((\te ->
2805 (trace "X" (case (trace "X" (te)) of {
2806 WCoFunTy t1 t2 t3 -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t1))))))) (trace "X" ((\t1' -> (trace "X" (case (trace "X" (t1')) of {
2807 HaskTypeOfSomeKind __U03ba_ t1'' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t2)) (trace "X" (__U03ba_))))))) (trace "X" ((\t2'' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t3)) (trace "X" (KindStar))))))) (trace "X" ((\t3'' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_0)) (trace "X" (ig)) (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((t1'' (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((t2'' (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c4_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev)) (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((castExpr (trace "X" (we)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" ([]))))))))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((t1'' (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((t2'' (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c4_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((t1'' (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((t2'' (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c4_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" (e'))))))) (trace "X" ((\e'' -> (trace "X" (OK (trace "X" ((ECoApp (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03ba_)) (trace "X" (t1'')) (trace "X" (t2'')) (trace "X" (__U03c4_)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (e'')))))))))))))))))))))))))))))))))))})))))))));
2808 _ -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (weakTypeToString)) (trace "X" (te))))))))))))))})))))))));
2809 WELam ev ebody -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" ((trace "X" ((weakExprVarToWeakType (trace "X" (ev))))))) (trace "X" (KindStar))))))) (trace "X" ((\tv -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (ebody))))))) (trace "X" ((\tbody -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (tbody)) (trace "X" (KindStar))))))) (trace "X" ((\tbody' -> (trace "X" (let {__U03be_' = (trace "X" ((trace "X" (update_xi (trace "X" (coreVarEqDecidable)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (ev)))))))))) (trace "X" (tv))))) (trace "X" (([]))))))))))} in (trace "X" (let {ig' = (trace "X" ((trace "X" (update_ig (trace "X" (ig)) (trace "X" (((:) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (ev)))))))))) (trace "X" (([]))))))))))} in (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_')) (trace "X" (ig')) (trace "X" (tbody')) (trace "X" (lev)) (trace "X" (ebody))))))) (trace "X" ((\ebody' -> (trace "X" ((trace "X" (castExpr (trace "X" (we)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('m')) (trace "X" ([]))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tv (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((tbody' (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ELam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (tv)) (trace "X" (tbody')) (trace "X" (lev)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (ev)))))))))) (trace "X" (ebody')))))))))))))))))))))))))))))))))))))))));
2810 WETyLam tv e -> (trace "X" (let {__U03c6_2 = (trace "X" ((trace "X" (upPhi (trace "X" (__U0393_0)) (trace "X" (tv)) (trace "X" (__U03c6_0))))))} in (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (e))))))) (trace "X" ((\te -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (((:) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (__U0393_0))))) (trace "X" (__U03c6_2)) (trace "X" (te)) (trace "X" (KindStar))))))) (trace "X" ((\__U03c4_' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (((:) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (__U0394_0))))))) (trace "X" (__U03c6_2)) (trace "X" ((\x -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((__U03c8_0 (trace "X" (x))))))) (trace "X" ((\y -> (trace "X" (OK (trace "X" ((\_ _ -> (trace "X" ((trace "X" (weakCV (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (y))))))))))))))))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakLT (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x)))))))))))))) (trace "X" (ig)) (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkTAll' (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (__U0393_0)) (trace "X" (__U03c4_')))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (lev))))))) (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (castExpr (trace "X" (we)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('2')) (trace "X" ([])))))))))))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkTAll' (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (__U0393_0)) (trace "X" (__U03c4_')))))))))))))))) (trace "X" (lev))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ETyLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkTAll' (trace "X" ((trace "X" ((weakTypeVarToKind (trace "X" (tv))))))) (trace "X" (__U0393_0)) (trace "X" (__U03c4_'))))))))) (trace "X" (lev)) (trace "X" (e'))))))))))))))))))))))))))))))));
2811 WECoLam cv e -> (trace "X" (case (trace "X" (cv)) of {
2812 WeakCoerVar x t1 t2 -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (e))))))) (trace "X" ((\te -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (te)) (trace "X" (KindStar))))))) (trace "X" ((\te' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t1)) (trace "X" ((trace "X" ((coVarKind (trace "X" (cv)))))))))))) (trace "X" ((\t1' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t2)) (trace "X" ((trace "X" ((coVarKind (trace "X" (cv)))))))))))) (trace "X" ((\t2' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((coVarKind (trace "X" (cv))))))) (trace "X" (t1')) (trace "X" (t2'))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03c6_0)) (trace "X" ((trace "X" ((weakPsi (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((coVarKind (trace "X" (cv))))))) (trace "X" (t1')) (trace "X" (t2'))))))))) (trace "X" (__U03c8_0))))))) (trace "X" (__U03be_0)) (trace "X" (ig)) (trace "X" (te')) (trace "X" (lev)) (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (castExpr (trace "X" (we)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('m')) (trace "X" ([]))))))))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" ((trace "X" ((coVarKind (trace "X" (cv))))))) (trace "X" ((trace "X" ((t1' (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((t2' (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((te' (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ECoLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((coVarKind (trace "X" (cv))))))) (trace "X" (te')) (trace "X" (t1')) (trace "X" (t2')) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (e'))))))))))))))))))))))))))))))))))))))))))))}));
2813 WEBrak w ec e tbody -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((__U03c6_0 (trace "X" ((trace "X" ((fixkind (trace "X" (eCKind)) (trace "X" (ec)))))))))))) (trace "X" ((\ec' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (tbody)) (trace "X" (KindStar))))))) (trace "X" ((\tbody' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_0)) (trace "X" (ig)) (trace "X" (tbody')) (trace "X" (((:) (trace "X" (ec')) (trace "X" (lev))))) (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (castExpr (trace "X" (we)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('B')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" ([])))))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec')) (trace "X" (tbody'))))))))) (trace "X" (lev))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((EBrak (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec')) (trace "X" (tbody')) (trace "X" (lev)) (trace "X" (e'))))))))))))))))))))))))))))));
2814 WEEsc w ec e tbody ->
2815 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((__U03c6_0 (trace "X" (ec))))))) (trace "X" ((\ec'' ->
2816 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (tbody)) (trace "X" (KindStar))))))) (trace "X" ((\tbody' ->
2817 (trace "X" (case (trace "X" (lev)) of {
2818 ([]) -> (trace "X" (Error (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2819 (:) ec' lev' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_0)) (trace "X" (ig)) (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec')) (trace "X" (tbody'))))))))) (trace "X" (lev')) (trace "X" (e))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (castExpr (trace "X" (we)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('c')) (trace "X" ([]))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbody')) (trace "X" (((:) (trace "X" (ec')) (trace "X" (lev')))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((EEsc (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec')) (trace "X" (tbody')) (trace "X" (lev')) (trace "X" (e'))))))))))))))))}))))))))))))))));
2820 WECSP w ec e tbody -> (trace "X" (Error (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('X')) (trace "X" (((:) (trace "X" ('M')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('S')) (trace "X" (((:) (trace "X" ('P')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('H')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2821 WECase vscrut escrut tbranches tc avars alts ->
2822 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (escrut))))))) (trace "X" ((\tscrut ->
2823 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (tscrut)) (trace "X" (KindStar))))))) (trace "X" ((\tscrut' ->
2824 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccurAlts (trace "X" (vscrut)) (trace "X" (alts)))))) of {
2825 Prelude.True -> (trace "X" (Error (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('!')) (trace "X" (((:) (trace "X" ('!')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2827 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((mkAvars (trace "X" (__U0393_0)) (trace "X" (avars)) (trace "X" ((trace "X" ((tyConKind (trace "X" (tc))))))) (trace "X" (__U03c6_0))))))) (trace "X" ((\avars' ->
2828 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (tbranches)) (trace "X" (KindStar))))))) (trace "X" ((\tbranches' ->
2829 (trace "X" ((trace "X" (orErrorBind
2830 (trace "X" ((trace "X" ((let {
2832 (trace "X" (case (trace "X" (t)) of {
2834 (trace "X" (case (trace "X" (o)) of {
2836 (trace "X" (case (trace "X" (p)) of {
2838 (trace "X" (case (trace "X" (p0)) of {
2840 (trace "X" (case (trace "X" (p1)) of {
2842 (trace "X" (case (trace "X" (p2)) of {
2844 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((mkStrongAltConPlusJunk' (trace "X" (tc)) (trace "X" (ac))))))) (trace "X" ((\sac ->
2845 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((list2vecOrFail (trace "X" ((trace "X" ((map (trace "X" ((\ev -> (trace "X" ((trace "X" (weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (ev)))))))))))) (trace "X" (exprvars))))))) (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" ((\x x0 -> (trace "X" ((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))))))))))))) (trace "X" ((\exprvars' ->
2846 (trace "X" ((trace "X" (orErrorBind
2847 (trace "X" ((let {dec = (trace "X" ((trace "X" (distinct_decidable (trace "X" (coreVarEqDecidable)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (exprvars')))))))))))} in
2848 (trace "X" (case (trace "X" (dec)) of {
2849 Prelude.True -> (trace "X" (OK (trace "X" (__))));
2850 Prelude.False -> (trace "X" (Error (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('H')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" (__U0393_0)) (trace "X" (avars')) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((sacpj_phi (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (__U03c6_0))))))) (trace "X" ((trace "X" ((sacpj_psi (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (avars')) (trace "X" (__U03c8_0))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (coreVarEqDecidable)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (avars')) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" (exprvars')) (trace "X" (__U03be_0)) (trace "X" (lev))))))) (trace "X" ((trace "X" ((update_ig (trace "X" (ig)) (trace "X" ((trace "X" ((map (trace "X" (fst)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" ((trace "X" ((scbwv_varstypes (trace "X" (coreVarEqDecidable)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (avars')) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" (exprvars')))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))))))))))))) (trace "X" (KindStar)) (trace "X" (tbranches'))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))))))))))))) (trace "X" (lev))))))) (trace "X" (ebranch))))))) (trace "X" ((\ebranch' -> (trace "X" (OK (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((ExistT (trace "X" ((trace "X" ((sacpj_sac (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((ExistT (trace "X" (exprvars')) (trace "X" (ebranch'))))))))))))))))))))))))))))))))))))))))))))}))}))}))}));
2851 Prelude.Nothing -> (trace "X" (OK (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))}));
2852 T_Branch b1 b2 -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((mkTree (trace "X" (b1))))))) (trace "X" ((\b1' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((mkTree (trace "X" (b2))))))) (trace "X" ((\b2' -> (trace "X" (OK (trace "X" ((T_Branch (trace "X" (b1')) (trace "X" (b2')))))))))))))))))))))}))}
2853 in mkTree (trace "X" (alts))))))) (trace "X" ((\tree -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c6_0)) (trace "X" (__U03c8_0)) (trace "X" (__U03be_0)) (trace "X" (ig)) (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (avars'))))))))) (trace "X" (lev)) (trace "X" (escrut))))))) (trace "X" ((\escrut' -> (trace "X" ((trace "X" (castExpr (trace "X" (we)) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches')) (trace "X" (lev))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ECase (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (tc)) (trace "X" (tbranches')) (trace "X" (avars')) (trace "X" (escrut')) (trace "X" (tree)))))))))))))))))))))))))))))))))))))}))))))))))))))))})))))))
2855 pivotContext :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> Arrange a1
2856 pivotContext a b c =
2857 (trace "X" (RComp (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" (b))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))) (trace "X" ((RCossa (trace "X" (a)) (trace "X" (b)) (trace "X" (c))))) (trace "X" ((RLeft (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b))))) (trace "X" (a)) (trace "X" ((RExch (trace "X" (c)) (trace "X" (b))))))))))) (trace "X" ((RAssoc (trace "X" (a)) (trace "X" (c)) (trace "X" (b)))))))
2859 pivotContext' :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> Arrange a1
2860 pivotContext' a b c =
2861 (trace "X" (RComp (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (a))))) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c)))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (a))))) (trace "X" (c))))) (trace "X" ((RAssoc (trace "X" (a)) (trace "X" (b)) (trace "X" (c))))) (trace "X" ((RRight (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (a))))) (trace "X" (c)) (trace "X" ((RExch (trace "X" (b)) (trace "X" (a))))))))))) (trace "X" ((RCossa (trace "X" (b)) (trace "X" (a)) (trace "X" (c)))))))
2863 copyAndPivotContext :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> Arrange a1
2864 copyAndPivotContext a b c =
2865 (trace "X" (RComp (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (b)))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" (b))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" (b))))) (trace "X" (b))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (b)))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" (c))))) (trace "X" (b))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" (b))))) (trace "X" (b))))) (trace "X" ((RAssoc (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" (c)) (trace "X" (b))))) (trace "X" ((RRight (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" (b))))) (trace "X" (b)) (trace "X" ((trace "X" ((pivotContext (trace "X" (a)) (trace "X" (b)) (trace "X" (c))))))))))))) (trace "X" ((RCossa (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" (b)) (trace "X" (b)))))))) (trace "X" ((RLeft (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (b))))) (trace "X" (b)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((RCont (trace "X" (b))))))))))
2867 dropVar :: (EqDecidable a1) -> (([]) a1) -> a1 -> Prelude.Maybe a1
2868 dropVar eqd_vv lv v =
2869 (trace "X" (case (trace "X" (lv)) of {
2870 ([]) -> (trace "X" (Prelude.Just (trace "X" (v))));
2872 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
2873 Prelude.True -> (trace "X" (Prelude.Nothing));
2874 Prelude.False -> (trace "X" ((trace "X" (dropVar (trace "X" (eqd_vv)) (trace "X" (lv')) (trace "X" (v))))))}))}))
2876 mapOptionTree' :: (a1 -> Prelude.Maybe a2) -> (Tree (Prelude.Maybe a1)) -> Tree (Prelude.Maybe a2)
2877 mapOptionTree' f t =
2878 (trace "X" (case (trace "X" (t)) of {
2880 (trace "X" (case (trace "X" (o)) of {
2881 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((trace "X" ((f (trace "X" (x)))))))));
2882 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
2883 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree' (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree' (trace "X" (f)) (trace "X" (r)))))))))}))
2885 stripOutVars :: (EqDecidable a1) -> (([]) a1) -> (Tree (Prelude.Maybe a1)) -> Tree (Prelude.Maybe a1)
2886 stripOutVars eqd_vv lv =
2887 (trace "X" ((trace "X" (mapOptionTree' (trace "X" ((trace "X" ((dropVar (trace "X" (eqd_vv)) (trace "X" (lv)))))))))))
2889 expr2antecedent :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> LeveledHaskType -> (Expr a1) -> Tree (Prelude.Maybe a1)
2890 expr2antecedent eqd_vv =
2892 expr2antecedent0 __U0393_' __U0394_' __U03be_' __U03c4_' exp =
2893 (trace "X" (case (trace "X" (exp)) of {
2894 EVar __U0393_0 __U0394_0 __U03be_0 ev -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" (ev)))))));
2895 EApp __U0393_0 __U0394_0 __U03be_0 t1 t2 lev e1 e2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" (e1))))))) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))));
2896 ELam __U0393_0 __U0394_0 __U03be_0 t1 t2 lev v e -> (trace "X" ((trace "X" (stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" (v)) (trace "X" (t1))))) (trace "X" (([]))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e)))))))))));
2897 ELet __U0393_0 __U0394_0 __U03be_0 tv t lev v ev ebody -> (trace "X" (T_Branch (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (lev))))) (trace "X" (ev))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" (v)) (trace "X" (tv))))) (trace "X" (([]))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (lev))))) (trace "X" (ebody))))))))))))));
2898 EEsc __U0393_0 __U0394_0 __U03be_0 ec t lev e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev))))) (trace "X" (e))))));
2899 EBrak __U0393_0 __U0394_0 __U03be_0 ec t lev e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))) (trace "X" (e))))));
2900 ECast __U0393_0 __U0394_0 __U03be_0 __U03b3_ t1 lev e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03b3_)) (trace "X" (lev))))) (trace "X" (e))))));
2901 ENote __U0393_0 __U0394_0 __U03be_0 t n e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" (e))))));
2902 ETyApp __U0393_0 __U0394_0 __U03ba_ __U03c3_ __U03c4_ __U03be_0 l e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" (e))))));
2903 ECoLam __U0393_0 __U0394_0 __U03ba_ __U03c3_ __U03c3___U2081_ __U03c3___U2082_ __U03be_0 l e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (l))))) (trace "X" (e))))));
2904 ECoApp __U0393_0 __U0394_0 __U03ba_ __U03b3_ __U03c3___U2081_ __U03c3_ __U03be_0 l e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03b3_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (l))))) (trace "X" (e))))));
2905 ETyLam __U0393_0 __U0394_0 __U03be_0 __U03ba_ __U03c3_ l e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x)))))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (l)))))))))) (trace "X" (e))))));
2906 ECase __U0393_0 __U0394_0 __U03be_0 l tc tbranches atypes e' alts -> (trace "X" (T_Branch
2907 (trace "X" ((trace "X" ((let {
2908 varsfromalts alts0 =
2909 (trace "X" (case (trace "X" (alts0)) of {
2911 (trace "X" (case (trace "X" (o)) of {
2912 Prelude.Just h -> (trace "X" ((trace "X" (stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" (h)))))))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((projT2 (trace "X" (h)))))))))))))))))))))) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" (h)))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((projT2 (trace "X" (h)))))))))))) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" (h)))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" ((trace "X" ((projT2 (trace "X" ((trace "X" ((projT2 (trace "X" (h)))))))))))))))))))));
2913 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
2914 T_Branch b1 b2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((varsfromalts (trace "X" (b1))))))) (trace "X" ((trace "X" ((varsfromalts (trace "X" (b2)))))))))}))}
2915 in varsfromalts (trace "X" (alts))))))) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (e')))))))));
2916 ELetRec __U0393_0 __U0394_0 __U03be_0 l __U03c4_ vars x x0 -> (trace "X" (let {__U03be_'0 = (trace "X" ((trace "X" (update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" ((trace "X" ((leaves (trace "X" (vars)))))))))))} in (trace "X" (let {branch_context = (trace "X" ((trace "X" (eLetRecContext0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_'0)) (trace "X" (l)) (trace "X" (vars)) (trace "X" (x))))))} in (trace "X" (let {all_contexts = (trace "X" (T_Branch (trace "X" (branch_context)) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_'0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (l))))) (trace "X" (x0)))))))))} in (trace "X" ((trace "X" (stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (vars)))))))))))) (trace "X" (all_contexts))))))))))));
2917 _ -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
2918 eLetRecContext0 __U0393_0 __U0394_0 __U03be_0 lev tree elrb =
2919 (trace "X" (case (trace "X" (elrb)) of {
2920 ELR_nil __U0393_1 __U0394_1 __U03be_1 lev0 -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
2921 ELR_leaf __U0393_1 __U0394_1 __U03be_1 lev0 v t e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (lev0))))) (trace "X" (e))))));
2922 ELR_branch __U0393_1 __U0394_1 __U03be_1 lev0 t1 t2 b1 b2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((eLetRecContext0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" (lev0)) (trace "X" (t1)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((eLetRecContext0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" (lev0)) (trace "X" (t2)) (trace "X" (b2)))))))))}))}
2923 in expr2antecedent0))
2925 eLetRecContext :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> HaskLevel -> (Tree (Prelude.Maybe ((,) a1 HaskType))) -> (ELetRecBindings a1) -> Tree (Prelude.Maybe a1)
2926 eLetRecContext eqd_vv =
2928 expr2antecedent0 __U0393_' __U0394_' __U03be_' __U03c4_' exp =
2929 (trace "X" (case (trace "X" (exp)) of {
2930 EGlobal __U0393_0 __U0394_0 __U03be_0 g v lev -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
2931 EVar __U0393_0 __U0394_0 __U03be_0 ev -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" (ev)))))));
2932 ELit __U0393_0 __U0394_0 __U03be_0 lit lev -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
2933 EApp __U0393_0 __U0394_0 __U03be_0 t1 t2 lev e1 e2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" (e1))))))) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))));
2934 ELam __U0393_0 __U0394_0 __U03be_0 t1 t2 lev v e -> (trace "X" ((trace "X" (stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" (v)) (trace "X" (t1))))) (trace "X" (([]))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e)))))))))));
2935 ELet __U0393_0 __U0394_0 __U03be_0 tv t lev v ev ebody -> (trace "X" (T_Branch (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (lev))))) (trace "X" (ev))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" (v)) (trace "X" (tv))))) (trace "X" (([]))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (lev))))) (trace "X" (ebody))))))))))))));
2936 EEsc __U0393_0 __U0394_0 __U03be_0 ec t lev e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev))))) (trace "X" (e))))));
2937 EBrak __U0393_0 __U0394_0 __U03be_0 ec t lev e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))) (trace "X" (e))))));
2938 ECast __U0393_0 __U0394_0 __U03be_0 __U03b3_ t1 lev e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03b3_)) (trace "X" (lev))))) (trace "X" (e))))));
2939 ENote __U0393_0 __U0394_0 __U03be_0 t n e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" (e))))));
2940 ETyApp __U0393_0 __U0394_0 __U03ba_ __U03c3_ __U03c4_ __U03be_0 l e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" (e))))));
2941 ECoLam __U0393_0 __U0394_0 __U03ba_ __U03c3_ __U03c3___U2081_ __U03c3___U2082_ __U03be_0 l e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (l))))) (trace "X" (e))))));
2942 ECoApp __U0393_0 __U0394_0 __U03ba_ __U03b3_ __U03c3___U2081_ __U03c3_ __U03be_0 l e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03b3_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (l))))) (trace "X" (e))))));
2943 ETyLam __U0393_0 __U0394_0 __U03be_0 __U03ba_ __U03c3_ l e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x)))))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (l)))))))))) (trace "X" (e))))));
2944 ECase __U0393_0 __U0394_0 __U03be_0 l tc tbranches atypes e' alts -> (trace "X" (T_Branch
2945 (trace "X" ((trace "X" ((let {
2946 varsfromalts alts0 =
2947 (trace "X" (case (trace "X" (alts0)) of {
2949 (trace "X" (case (trace "X" (o)) of {
2950 Prelude.Just h -> (trace "X" ((trace "X" (stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" (h)))))))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((projT2 (trace "X" (h)))))))))))))))))))))) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" (h)))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((projT2 (trace "X" (h)))))))))))) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" (h)))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" ((trace "X" ((projT2 (trace "X" ((trace "X" ((projT2 (trace "X" (h)))))))))))))))))))));
2951 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
2952 T_Branch b1 b2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((varsfromalts (trace "X" (b1))))))) (trace "X" ((trace "X" ((varsfromalts (trace "X" (b2)))))))))}))}
2953 in varsfromalts (trace "X" (alts))))))) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (e')))))))));
2954 ELetRec __U0393_0 __U0394_0 __U03be_0 l __U03c4_ vars x x0 -> (trace "X" (let {__U03be_'0 = (trace "X" ((trace "X" (update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" ((trace "X" ((leaves (trace "X" (vars)))))))))))} in (trace "X" (let {branch_context = (trace "X" ((trace "X" (eLetRecContext0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_'0)) (trace "X" (l)) (trace "X" (vars)) (trace "X" (x))))))} in (trace "X" (let {all_contexts = (trace "X" (T_Branch (trace "X" (branch_context)) (trace "X" ((trace "X" ((expr2antecedent0 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_'0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (l))))) (trace "X" (x0)))))))))} in (trace "X" ((trace "X" (stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (vars)))))))))))) (trace "X" (all_contexts))))))))))))}));
2955 eLetRecContext0 __U0393_0 __U0394_0 __U03be_0 lev tree elrb =
2956 (trace "X" (case (trace "X" (elrb)) of {
2957 ELR_nil __U0393_1 __U0394_1 __U03be_1 lev0 -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
2958 ELR_leaf __U0393_1 __U0394_1 __U03be_1 lev0 v t e -> (trace "X" ((trace "X" (expr2antecedent0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (lev0))))) (trace "X" (e))))));
2959 ELR_branch __U0393_1 __U0394_1 __U03be_1 lev0 t1 t2 b1 b2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((eLetRecContext0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" (lev0)) (trace "X" (t1)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((eLetRecContext0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" (lev0)) (trace "X" (t2)) (trace "X" (b2)))))))))}))}
2960 in eLetRecContext0))
2962 mkProofCaseBranch :: (EqDecidable a1) -> (([]) Kind) -> (([]) HaskCoercionKind) -> (a1 -> LeveledHaskType) -> HaskLevel -> TyCon.TyCon -> HaskType -> (IList Kind HaskType) -> (SigT StrongAltCon (SigT (StrongCaseBranchWithVVs a1) (Expr a1))) -> SigT StrongAltCon ProofCaseBranch
2963 mkProofCaseBranch eqd_vv __U0393_0 __U0394_0 __U03be_0 l tc tbranches atypes alt =
2964 (trace "X" (case (trace "X" (alt)) of {
2965 ExistT x s -> (trace "X" (ExistT (trace "X" (x)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (x))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (x)) (trace "X" ((trace "X" ((projT1 (trace "X" (s))))))))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (x)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (x)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (x))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (x)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (x)) (trace "X" ((trace "X" ((projT1 (trace "X" (s))))))) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (x))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (x)))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (s))))))))))))))))))))))))}))
2967 factorContextLeft :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> a1 -> (Tree (Prelude.Maybe a1)) -> (a1 -> LeveledHaskType) -> Prelude.Either (Arrange LeveledHaskType) (Arrange LeveledHaskType)
2968 factorContextLeft eqd_vv __U0393_0 __U0394_0 v ctx __U03be_0 =
2969 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a ->
2970 (trace "X" (case (trace "X" (a)) of {
2972 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v')) (trace "X" (v))))))} in
2973 (trace "X" (case (trace "X" (s)) of {
2974 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (v)) (trace "X" ((Prelude.Right (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))))))))) (trace "X" (v'))))));
2975 Prelude.False -> (trace "X" (Prelude.Left (trace "X" ((RuCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v'))))))))))))))))))}))));
2976 Prelude.Nothing -> (trace "X" (Prelude.Left (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))}))))) (trace "X" ((\ctx1 iHctx1 ctx2 iHctx2 ->
2977 (trace "X" (case (trace "X" (iHctx1)) of {
2979 (trace "X" (case (trace "X" (iHctx2)) of {
2980 Prelude.Left rpf -> (trace "X" (Prelude.Left (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch
2981 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
2982 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
2983 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
2984 Prelude.True -> (trace "X" (Prelude.Nothing));
2985 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
2986 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
2987 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
2988 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
2989 Prelude.True -> (trace "X" (Prelude.Nothing));
2990 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch
2991 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
2992 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
2993 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
2994 Prelude.True -> (trace "X" (Prelude.Nothing));
2995 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
2996 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
2997 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
2998 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
2999 Prelude.True -> (trace "X" (Prelude.Nothing));
3000 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch
3001 (trace "X" ((trace "X" ((let {
3002 mapOptionTree0 f t =
3003 (trace "X" (case (trace "X" (t)) of {
3005 (trace "X" (case (trace "X" (o)) of {
3006 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3007 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3008 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3009 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch
3010 (trace "X" ((trace "X" ((let {
3011 mapOptionTree0 f t =
3012 (trace "X" (case (trace "X" (t)) of {
3014 (trace "X" (case (trace "X" (o)) of {
3015 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3016 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3017 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3018 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1))))))))))))
3019 (trace "X" ((trace "X" ((let {
3020 mapOptionTree0 f t =
3021 (trace "X" (case (trace "X" (t)) of {
3023 (trace "X" (case (trace "X" (o)) of {
3024 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3025 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3026 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3027 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((RRight (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1)))))))
3028 (trace "X" ((trace "X" ((let {
3029 mapOptionTree0 f t =
3030 (trace "X" (case (trace "X" (t)) of {
3032 (trace "X" (case (trace "X" (o)) of {
3033 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3034 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3035 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3036 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))))))
3037 (trace "X" ((trace "X" ((let {
3038 mapOptionTree0 f t =
3039 (trace "X" (case (trace "X" (t)) of {
3041 (trace "X" (case (trace "X" (o)) of {
3042 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3043 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3044 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3045 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" (lpf)) (trace "X" ((RCanL
3046 (trace "X" ((trace "X" ((let {
3047 mapOptionTree0 f t =
3048 (trace "X" (case (trace "X" (t)) of {
3050 (trace "X" (case (trace "X" (o)) of {
3051 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3052 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3053 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3054 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1))))))))))))))))))))) (trace "X" ((RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))
3055 (trace "X" ((trace "X" ((let {
3056 mapOptionTree0 f t =
3057 (trace "X" (case (trace "X" (t)) of {
3059 (trace "X" (case (trace "X" (o)) of {
3060 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3061 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3062 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3063 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2))))))))))))
3064 (trace "X" ((trace "X" ((let {
3065 mapOptionTree0 f t =
3066 (trace "X" (case (trace "X" (t)) of {
3068 (trace "X" (case (trace "X" (o)) of {
3069 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3070 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3071 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3072 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))))))
3073 (trace "X" ((trace "X" ((let {
3074 mapOptionTree0 f t =
3075 (trace "X" (case (trace "X" (t)) of {
3077 (trace "X" (case (trace "X" (o)) of {
3078 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3079 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3080 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3081 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))) (trace "X" (rpf)) (trace "X" ((RCanL
3082 (trace "X" ((trace "X" ((let {
3083 mapOptionTree0 f t =
3084 (trace "X" (case (trace "X" (t)) of {
3086 (trace "X" (case (trace "X" (o)) of {
3087 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3088 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3089 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3090 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))))))))))))))) (trace "X" ((RuCanL (trace "X" ((T_Branch
3091 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3092 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3093 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3094 Prelude.True -> (trace "X" (Prelude.Nothing));
3095 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3096 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3097 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3098 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3099 Prelude.True -> (trace "X" (Prelude.Nothing));
3100 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))))))));
3101 Prelude.Right rpf -> (trace "X" (Prelude.Right (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch
3102 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3103 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3104 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3105 Prelude.True -> (trace "X" (Prelude.Nothing));
3106 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3107 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3108 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3109 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3110 Prelude.True -> (trace "X" (Prelude.Nothing));
3111 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))) (trace "X" ((T_Branch
3112 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3113 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3114 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3115 Prelude.True -> (trace "X" (Prelude.Nothing));
3116 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3117 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3118 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3119 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3120 Prelude.True -> (trace "X" (Prelude.Nothing));
3121 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch
3122 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3123 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3124 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3125 Prelude.True -> (trace "X" (Prelude.Nothing));
3126 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3127 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3128 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3129 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3130 Prelude.True -> (trace "X" (Prelude.Nothing));
3131 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))) (trace "X" ((RRight (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" (lpf)) (trace "X" ((RCanL (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1))))))))))))))))))))) (trace "X" ((RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3132 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3133 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3134 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3135 Prelude.True -> (trace "X" (Prelude.Nothing));
3136 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))
3137 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3138 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3139 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3140 Prelude.True -> (trace "X" (Prelude.Nothing));
3141 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" (rpf))))))))
3142 (trace "X" ((trace "X" ((pivotContext'
3143 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3144 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3145 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3146 Prelude.True -> (trace "X" (Prelude.Nothing));
3147 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3148 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3149 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3150 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3151 Prelude.True -> (trace "X" (Prelude.Nothing));
3152 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))))))))))}));
3153 Prelude.Right lpf ->
3154 (trace "X" (case (trace "X" (iHctx2)) of {
3155 Prelude.Left rpf -> (trace "X" (Prelude.Right (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))) (trace "X" ((T_Branch
3156 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3157 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3158 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3159 Prelude.True -> (trace "X" (Prelude.Nothing));
3160 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3161 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3162 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3163 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3164 Prelude.True -> (trace "X" (Prelude.Nothing));
3165 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))) (trace "X" ((RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))) (trace "X" (rpf)) (trace "X" ((RCanL (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2))))))))))))))))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3166 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3167 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3168 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3169 Prelude.True -> (trace "X" (Prelude.Nothing));
3170 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))))))
3171 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3172 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3173 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3174 Prelude.True -> (trace "X" (Prelude.Nothing));
3175 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))) (trace "X" ((T_Branch
3176 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3177 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3178 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3179 Prelude.True -> (trace "X" (Prelude.Nothing));
3180 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3181 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3182 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3183 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3184 Prelude.True -> (trace "X" (Prelude.Nothing));
3185 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))) (trace "X" ((RRight (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3186 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3187 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3188 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3189 Prelude.True -> (trace "X" (Prelude.Nothing));
3190 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))))))
3191 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3192 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3193 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3194 Prelude.True -> (trace "X" (Prelude.Nothing));
3195 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))) (trace "X" (lpf))))) (trace "X" ((RCossa (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3196 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3197 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3198 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3199 Prelude.True -> (trace "X" (Prelude.Nothing));
3200 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3201 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3202 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3203 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3204 Prelude.True -> (trace "X" (Prelude.Nothing));
3205 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))))))));
3206 Prelude.Right rpf -> (trace "X" (Prelude.Right (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((T_Branch
3207 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3208 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3209 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3210 Prelude.True -> (trace "X" (Prelude.Nothing));
3211 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3212 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3213 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3214 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3215 Prelude.True -> (trace "X" (Prelude.Nothing));
3216 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))) (trace "X" ((T_Branch
3217 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3218 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3219 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3220 Prelude.True -> (trace "X" (Prelude.Nothing));
3221 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3222 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3223 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3224 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3225 Prelude.True -> (trace "X" (Prelude.Nothing));
3226 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (v)))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((T_Branch
3227 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3228 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3229 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3230 Prelude.True -> (trace "X" (Prelude.Nothing));
3231 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3232 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3233 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3234 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3235 Prelude.True -> (trace "X" (Prelude.Nothing));
3236 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))) (trace "X" ((RRight (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (v)))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" (lpf))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (v)))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (v)))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (v)))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((T_Branch
3237 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3238 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3239 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3240 Prelude.True -> (trace "X" (Prelude.Nothing));
3241 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3242 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3243 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3244 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3245 Prelude.True -> (trace "X" (Prelude.Nothing));
3246 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))))))))) (trace "X" ((RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (v)))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (v)))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1))))))))))))))) (trace "X" (rpf)))))
3247 (trace "X" ((trace "X" ((arrangeSwapMiddle (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3248 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3249 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3250 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3251 Prelude.True -> (trace "X" (Prelude.Nothing));
3252 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3253 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3254 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3255 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3256 Prelude.True -> (trace "X" (Prelude.Nothing));
3257 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))))))))))) (trace "X" ((RRight (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))) (trace "X" ((T_Branch
3258 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3259 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3260 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3261 Prelude.True -> (trace "X" (Prelude.Nothing));
3262 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3263 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3264 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3265 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3266 Prelude.True -> (trace "X" (Prelude.Nothing));
3267 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((RCont (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))))))))))))))}))}))))) (trace "X" (ctx))))))
3269 factorContextRight :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> a1 -> (Tree (Prelude.Maybe a1)) -> (a1 -> LeveledHaskType) -> Prelude.Either (Arrange LeveledHaskType) (Arrange LeveledHaskType)
3270 factorContextRight eqd_vv __U0393_0 __U0394_0 v ctx __U03be_0 =
3271 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a ->
3272 (trace "X" (case (trace "X" (a)) of {
3274 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v')) (trace "X" (v))))))} in
3275 (trace "X" (case (trace "X" (s)) of {
3276 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (v)) (trace "X" ((Prelude.Right (trace "X" ((RuCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))))))))) (trace "X" (v'))))));
3277 Prelude.False -> (trace "X" (Prelude.Left (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v'))))))))))))))))))}))));
3278 Prelude.Nothing -> (trace "X" (Prelude.Left (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))}))))) (trace "X" ((\ctx1 iHctx1 ctx2 iHctx2 ->
3279 (trace "X" (case (trace "X" (iHctx1)) of {
3281 (trace "X" (case (trace "X" (iHctx2)) of {
3282 Prelude.Left rpf -> (trace "X" (Prelude.Left (trace "X" ((RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" (ctx1)) (trace "X" (ctx2)))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" ((T_Branch (trace "X" (ctx1)) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" ((T_Branch (trace "X" (ctx1)) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((RRight (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" (lpf)) (trace "X" ((RCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1))))))))))))))))))))) (trace "X" ((RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))) (trace "X" (rpf)) (trace "X" ((RCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))))))))))))))) (trace "X" ((RuCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" ((T_Branch (trace "X" (ctx1)) (trace "X" (ctx2)))))))))))))))))))))));
3283 Prelude.Right rpf -> (trace "X" (Prelude.Right
3284 (trace "X" ((let {q = (trace "X" (RRight (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" (lpf)) (trace "X" ((RCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1))))))))))))))))))))} in
3285 (trace "X" (RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch
3286 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3287 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3288 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3289 Prelude.True -> (trace "X" (Prelude.Nothing));
3290 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3291 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3292 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3293 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3294 Prelude.True -> (trace "X" (Prelude.Nothing));
3295 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" (q)) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch
3296 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3297 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3298 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3299 Prelude.True -> (trace "X" (Prelude.Nothing));
3300 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Branch
3301 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3302 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3303 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3304 Prelude.True -> (trace "X" (Prelude.Nothing));
3305 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch
3306 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3307 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3308 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3309 Prelude.True -> (trace "X" (Prelude.Nothing));
3310 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3311 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3312 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3313 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3314 Prelude.True -> (trace "X" (Prelude.Nothing));
3315 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((T_Branch
3316 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3317 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3318 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3319 Prelude.True -> (trace "X" (Prelude.Nothing));
3320 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))))))
3321 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3322 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3323 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3324 Prelude.True -> (trace "X" (Prelude.Nothing));
3325 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" (rpf))))) (trace "X" ((RAssoc
3326 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3327 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3328 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3329 Prelude.True -> (trace "X" (Prelude.Nothing));
3330 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3331 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3332 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3333 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3334 Prelude.True -> (trace "X" (Prelude.Nothing));
3335 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))))))))))))))))}));
3336 Prelude.Right lpf ->
3337 (trace "X" (case (trace "X" (iHctx2)) of {
3338 Prelude.Left rpf -> (trace "X" (Prelude.Right (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch
3339 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3340 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3341 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3342 Prelude.True -> (trace "X" (Prelude.Nothing));
3343 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))))))
3344 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3345 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3346 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3347 Prelude.True -> (trace "X" (Prelude.Nothing));
3348 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch
3349 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3350 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3351 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3352 Prelude.True -> (trace "X" (Prelude.Nothing));
3353 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3354 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3355 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3356 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3357 Prelude.True -> (trace "X" (Prelude.Nothing));
3358 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))))))
3359 (trace "X" ((let {rpf' = (trace "X" (RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))) (trace "X" (rpf)) (trace "X" ((RCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))))))))} in
3360 (trace "X" (let {qq = (trace "X" (RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" (rpf'))))} in
3361 (trace "X" (RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch
3362 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3363 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3364 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3365 Prelude.True -> (trace "X" (Prelude.Nothing));
3366 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))))))
3367 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3368 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3369 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3370 Prelude.True -> (trace "X" (Prelude.Nothing));
3371 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((RRight (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" (lpf))))) (trace "X" (qq)))))))))
3372 (trace "X" ((trace "X" ((pivotContext
3373 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3374 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3375 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3376 Prelude.True -> (trace "X" (Prelude.Nothing));
3377 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3378 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3379 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3380 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3381 Prelude.True -> (trace "X" (Prelude.Nothing));
3382 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))))))))));
3383 Prelude.Right rpf -> (trace "X" (Prelude.Right (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch
3384 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3385 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3386 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3387 Prelude.True -> (trace "X" (Prelude.Nothing));
3388 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((T_Branch
3389 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3390 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3391 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3392 Prelude.True -> (trace "X" (Prelude.Nothing));
3393 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch
3394 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3395 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3396 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3397 Prelude.True -> (trace "X" (Prelude.Nothing));
3398 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3399 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3400 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3401 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3402 Prelude.True -> (trace "X" (Prelude.Nothing));
3403 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2)))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))))))))) (trace "X" ((RRight (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx1))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" (lpf))))) (trace "X" ((RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx2))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))) (trace "X" (rpf))))))))
3404 (trace "X" ((trace "X" ((copyAndPivotContext
3405 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3406 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3407 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3408 Prelude.True -> (trace "X" (Prelude.Nothing));
3409 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3410 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3411 (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3412 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3413 Prelude.True -> (trace "X" (Prelude.Nothing));
3414 Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))))))))))}))}))))) (trace "X" (ctx))))))
3416 factorContextLeftAndWeaken :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> a1 -> (Tree (Prelude.Maybe a1)) -> (a1 -> LeveledHaskType) -> Arrange LeveledHaskType
3417 factorContextLeftAndWeaken eqd_vv __U0393_0 __U0394_0 v ctx __U03be_0 =
3418 (trace "X" (let {q = (trace "X" ((trace "X" (factorContextLeft (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (v)) (trace "X" (ctx)) (trace "X" (__U03be_0))))))} in
3419 (trace "X" (case (trace "X" (q)) of {
3420 Prelude.Left a -> (trace "X" (RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (v)))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx))))))))))))))) (trace "X" (a)) (trace "X" ((RRight (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))
3421 (trace "X" ((trace "X" ((let {
3422 mapOptionTree0 f t =
3423 (trace "X" (case (trace "X" (t)) of {
3425 (trace "X" (case (trace "X" (o)) of {
3426 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3427 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3428 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3429 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx)))))))))))) (trace "X" ((RWeak (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))))))));
3430 Prelude.Right a -> (trace "X" (a))}))))
3432 factorContextRightAndWeaken :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> a1 -> (Tree (Prelude.Maybe a1)) -> (a1 -> LeveledHaskType) -> Arrange LeveledHaskType
3433 factorContextRightAndWeaken eqd_vv __U0393_0 __U0394_0 v ctx __U03be_0 =
3434 (trace "X" (let {q = (trace "X" ((trace "X" (factorContextRight (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (v)) (trace "X" (ctx)) (trace "X" (__U03be_0))))))} in
3435 (trace "X" (case (trace "X" (q)) of {
3436 Prelude.Left a -> (trace "X" (RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (ctx))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (v)))))))))))))))) (trace "X" (a)) (trace "X" ((RLeft (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" (ctx)))))))))))) (trace "X" ((RWeak (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v)))))))))))))))))))));
3437 Prelude.Right a -> (trace "X" (a))}))))
3439 factorContextRightAndWeaken'' :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (Tree (Prelude.Maybe a1)) -> (a1 -> LeveledHaskType) -> (Tree (Prelude.Maybe a1)) -> Arrange LeveledHaskType
3440 factorContextRightAndWeaken'' eqd_vv __U0393_0 __U0394_0 v __U03be_0 ctx =
3441 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a ctx0 _ ->
3442 (trace "X" (case (trace "X" (a)) of {
3443 Prelude.Just v0 -> (trace "X" ((trace "X" (factorContextRightAndWeaken (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (v0)) (trace "X" (ctx0)) (trace "X" (__U03be_0))))));
3445 (trace "X" ((trace "X" (eq_rect_r (trace "X" (ctx0)) (trace "X" ((RuCanR
3446 (trace "X" ((trace "X" ((let {
3447 mapOptionTree0 f t =
3448 (trace "X" (case (trace "X" (t)) of {
3450 (trace "X" (case (trace "X" (o)) of {
3451 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3452 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3453 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3454 in mapOptionTree0 (trace "X" (__U03be_0)) (trace "X" (ctx0)))))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (([]))) (trace "X" (ctx0)))))))))))}))))) (trace "X" ((\v1 iHv1 v2 iHv2 ctx0 _ -> (trace "X" (let {x = (trace "X" ((trace "X" (mapOptionTree (trace "X" (__U03be_0))))))} in (trace "X" (let {iHv2' = (trace "X" ((trace "X" (iHv2 (trace "X" ((T_Branch (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v1))))))) (trace "X" (ctx0))))))) (trace "X" (v1)))))))))} in (trace "X" (let {qq = (trace "X" (RComp (trace "X" ((trace "X" ((x (trace "X" (ctx0))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((x (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v1))))))) (trace "X" (ctx0)))))))))))) (trace "X" ((trace "X" ((x (trace "X" (v1)))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((x (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v2))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v1))))))) (trace "X" (ctx0))))))))))))))))) (trace "X" ((trace "X" ((x (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v2))))))) (trace "X" (v1))))))))))))))) (trace "X" ((trace "X" ((x (trace "X" (v2)))))))))) (trace "X" ((trace "X" ((iHv1 (trace "X" (ctx0)) (trace "X" (__))))))) (trace "X" ((trace "X" ((iHv2' (trace "X" (__)))))))))} in (trace "X" (RComp (trace "X" ((trace "X" ((x (trace "X" (ctx0))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((x (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v2))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v1))))))) (trace "X" (ctx0))))))))))))))))) (trace "X" ((trace "X" ((x (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v2))))))) (trace "X" (v1))))))))))))))) (trace "X" ((trace "X" ((x (trace "X" (v2)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((x (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((leaves (trace "X" (v1))))))) (trace "X" ((trace "X" ((leaves (trace "X" (v2)))))))))))) (trace "X" (ctx0)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((x (trace "X" (v1))))))) (trace "X" ((trace "X" ((x (trace "X" (v2))))))))))))) (trace "X" (qq)) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v1))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v2))))))) (trace "X" (ctx0)))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((leaves (trace "X" (v1))))))) (trace "X" ((trace "X" ((leaves (trace "X" (v2)))))))))))) (trace "X" (ctx0))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" (v1)) (trace "X" ((RCossa (trace "X" ((trace "X" ((x (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((leaves (trace "X" (v1))))))) (trace "X" ((trace "X" ((leaves (trace "X" (v2)))))))))))) (trace "X" (ctx0)))))))))))) (trace "X" ((trace "X" ((x (trace "X" (v1))))))) (trace "X" ((trace "X" ((x (trace "X" (v2)))))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v2))))))) (trace "X" (v1)))))))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v1))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v2))))))) (trace "X" (ctx0))))))))))))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v2))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" (v1))))))) (trace "X" (ctx0)))))))))))))))))))))))))))) (trace "X" (v)) (trace "X" (ctx)) (trace "X" (__))))))
3456 data LetRecSubproofs vV =
3458 | Lrsp_leaf vV HaskType (Expr vV) (ND Judg Rule)
3459 | Lrsp_cons (Tree (Prelude.Maybe ((,) vV HaskType))) (Tree (Prelude.Maybe ((,) vV HaskType))) (ELetRecBindings vV) (ELetRecBindings vV) (LetRecSubproofs vV) (LetRecSubproofs vV)
3461 letRecSubproofs_rect :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> HaskLevel -> a2 -> (a1 -> HaskType -> (Expr a1) -> (ND Judg Rule) -> a2) -> ((Tree (Prelude.Maybe ((,) a1 HaskType))) -> (Tree (Prelude.Maybe ((,) a1 HaskType))) -> (ELetRecBindings a1) -> (ELetRecBindings a1) -> (LetRecSubproofs a1) -> a2 -> (LetRecSubproofs a1) -> a2 -> a2) -> (Tree (Prelude.Maybe ((,) a1 HaskType))) -> (ELetRecBindings a1) -> (LetRecSubproofs a1) -> a2
3462 letRecSubproofs_rect eqd_vv __U0393_0 __U0394_0 __U03be_0 lev f f0 f1 tree e l =
3463 (trace "X" (case (trace "X" (l)) of {
3464 Lrsp_nil -> (trace "X" (f));
3465 Lrsp_leaf v t e0 n -> (trace "X" ((trace "X" (f0 (trace "X" (v)) (trace "X" (t)) (trace "X" (e0)) (trace "X" (n))))));
3466 Lrsp_cons t1 t2 b1 b2 l0 l1 -> (trace "X" ((trace "X" (f1 (trace "X" (t1)) (trace "X" (t2)) (trace "X" (b1)) (trace "X" (b2)) (trace "X" (l0)) (trace "X" ((trace "X" ((letRecSubproofs_rect (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (t1)) (trace "X" (b1)) (trace "X" (l0))))))) (trace "X" (l1)) (trace "X" ((trace "X" ((letRecSubproofs_rect (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (f)) (trace "X" (f0)) (trace "X" (f1)) (trace "X" (t2)) (trace "X" (b2)) (trace "X" (l1)))))))))))}))
3468 letRecSubproofsToND :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> HaskLevel -> (Tree (Prelude.Maybe ((,) a1 HaskType))) -> (ELetRecBindings a1) -> (LetRecSubproofs a1) -> ND Judg Rule
3469 letRecSubproofsToND eqd_vv __U0393_0 __U0394_0 __U03be_0 lev tree branches x =
3470 (trace "X" ((trace "X" (letRecSubproofs_rect (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (lev))))))))))) (trace "X" ((RVoid (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev)))))))) (trace "X" ((\v t e n -> (trace "X" (n))))) (trace "X" ((\t1 t2 b1 b2 x1 iHX1 x2 iHX2 -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t1)) (trace "X" (b1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t2)) (trace "X" (b2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t2))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t1)) (trace "X" (b1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t2)) (trace "X" (b2))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t2)))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t1)) (trace "X" (b1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t2)) (trace "X" (b2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t2))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t1)) (trace "X" (b1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t2)) (trace "X" (b2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t2))))))) (trace "X" (lev))))))))))) (trace "X" (iHX1)) (trace "X" (iHX2)))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t1)) (trace "X" (b1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t2)) (trace "X" (b2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t2))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t1)) (trace "X" (b1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t2)) (trace "X" (b2))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t2)))))))))) (trace "X" (lev))))))))))) (trace "X" ((RJoin (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t1)) (trace "X" (b1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t2)) (trace "X" (b2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t2))))))) (trace "X" (lev))))))))))))) (trace "X" (tree)) (trace "X" (branches)) (trace "X" (x))))))
3472 letRecSubproofsToND' :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> HaskLevel -> HaskType -> (Tree (Prelude.Maybe ((,) a1 HaskType))) -> (ELetRecBindings a1) -> (Expr a1) -> (ND Judg Rule) -> (LetRecSubproofs a1) -> ND Judg Rule
3473 letRecSubproofsToND' eqd_vv __U0393_0 __U0394_0 __U03be_0 lev __U03c4_ tree branches body pf lrsp =
3474 (trace "X" (let {__U03be_' = (trace "X" ((trace "X" (update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))} in (trace "X" (let {pctx = (trace "X" ((trace "X" (mapOptionTree (trace "X" (fst)) (trace "X" (tree))))))} in (trace "X" (let {z = (trace "X" (\a b x -> (trace "X" (RLetRec (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" (b)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" (x))))))} in (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ELetRec (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (__U03c4_)) (trace "X" (tree)) (trace "X" (branches)) (trace "X" (body))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ELetRec (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (__U03c4_)) (trace "X" (tree)) (trace "X" (branches)) (trace "X" (body))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (lev))))))))))) (trace "X" ((let {q' = (trace "X" (\_ -> (trace "X" ((trace "X" (factorContextRightAndWeaken'' (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (pctx)) (trace "X" (__U03be_')) (trace "X" ((T_Branch (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_')) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_')) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body))))))))))))))))} in (trace "X" (let {q'' = (trace "X" ((trace "X" (q' (trace "X" (__))))))} in (trace "X" (let {q''0 = (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (tree)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body)))))))))))))))))))) (trace "X" (q'')) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (tree)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body))))))))))))))))))))))))} in (trace "X" (let {q''1 = (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (tree)))))))))))) (trace "X" (q''0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree))))))) (trace "X" ((trace "X" ((fst (trace "X" (x)))))))))))))) (trace "X" (tree)))))))))))} in (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree))))))) (trace "X" ((trace "X" ((fst (trace "X" (x)))))))))))))) (trace "X" (tree))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (tree)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body)))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree))))))) (trace "X" ((trace "X" ((fst (trace "X" (x)))))))))))))) (trace "X" (tree)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_))))))))))) (trace "X" (lev))))))))))) (trace "X" ((let {q = (trace "X" ((trace "X" (letRecSubproofsToND (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches)) (trace "X" (lrsp))))))} in (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_))))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_rlecnac (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (lev))))))))))) (trace "X" (q)) (trace "X" (pf)))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RJoin (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (lev))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (tree)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body)))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree))))))) (trace "X" ((trace "X" ((fst (trace "X" (x)))))))))))))) (trace "X" (tree)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (tree)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (branches))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" (body)))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree))))))) (trace "X" ((trace "X" ((fst (trace "X" (x)))))))))))))) (trace "X" (tree)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_))))))))))) (trace "X" (lev)) (trace "X" (q''1))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ELetRec (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (__U03c4_)) (trace "X" (tree)) (trace "X" (branches)) (trace "X" (body))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ELetRec (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (__U03c4_)) (trace "X" (tree)) (trace "X" (branches)) (trace "X" (body))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((z (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))) (trace "X" ((ELetRec (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (__U03c4_)) (trace "X" (tree)) (trace "X" (branches)) (trace "X" (body))))))))))))))) (trace "X" (__U03c4_)) (trace "X" (lev))))))))))))))))))
3476 expr2proof :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> LeveledHaskType -> (Expr a1) -> ND Judg Rule
3477 expr2proof eqd_vv __U0393_' __U0394_' __U03be_' __U03c4_' exp =
3478 (trace "X" (case (trace "X" (exp)) of {
3479 EGlobal __U0393_0 __U0394_0 __U03be_0 g v lev -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (g)) (trace "X" (v))))))))) (trace "X" (lev))))) (trace "X" ((EGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (g)) (trace "X" (v)) (trace "X" (lev))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (g)) (trace "X" (v))))))))) (trace "X" (lev)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (g)) (trace "X" (v))))))))) (trace "X" (lev))))))))))))))))))) (trace "X" ((RGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev)) (trace "X" (g)) (trace "X" (v)))))));
3480 EVar __U0393_0 __U0394_0 __U03be_0 ev -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (ev))))))) (trace "X" ((EVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ev))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (ev)))))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (ev))))))))))))))))))))) (trace "X" ((let {l = (trace "X" ((trace "X" (__U03be_0 (trace "X" (ev))))))} in (trace "X" (RVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (l))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (l))))))))))))));
3481 ELit __U0393_0 __U0394_0 __U03be_0 lit lev -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (lit)) (trace "X" (__U0393_0))))))))) (trace "X" (lev))))) (trace "X" ((ELit (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lit)) (trace "X" (lev))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (lit)) (trace "X" (__U0393_0))))))))) (trace "X" (lev)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (lit)) (trace "X" (__U0393_0))))))))) (trace "X" (lev))))))))))))))))))) (trace "X" ((RLit (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lit)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (lit)) (trace "X" (__U0393_0))))))))) (trace "X" (lev)))))))))))))));
3482 EApp __U0393_0 __U0394_0 __U03be_0 t1 t2 lev e1 e2 -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" (e1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t2)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" (e1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e2))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t1)))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" (e1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t2)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" (e1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t2)))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" (e1))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e2))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" (e1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t2)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" (e1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e2))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t1)))))))) (trace "X" (lev))))))))))) (trace "X" ((RApp (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))) (trace "X" (e1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (trace "X" (t2)) (trace "X" (t1)) (trace "X" (lev))))))))));
3483 ELam __U0393_0 __U0394_0 __U03be_0 t1 t2 lev v e -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch
3484 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3485 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3486 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3487 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3488 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3489 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t2)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
3490 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3491 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3492 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3493 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3494 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3495 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev)))))))))))
3496 (trace "X" ((let {__U03be_'0 = (trace "X" ((trace "X" (update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" (v)) (trace "X" (t1))))) (trace "X" (([]))))))))))} in
3497 (trace "X" (let {pfx = (trace "X" ((trace "X" (factorContextRightAndWeaken (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (v)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" (v)) (trace "X" (t1))))) (trace "X" (([]))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e))))))) (trace "X" (__U03be_'0))))))} in
3498 (trace "X" (let {pfx0 = (trace "X" (RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_'0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" (v)) (trace "X" (t1))))) (trace "X" (([]))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_'0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([])))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" (v)) (trace "X" (t1))))) (trace "X" (([]))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (v)))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t2)))))))) (trace "X" (lev)) (trace "X" (pfx))))} in
3500 pfx1 = (trace "X" ((trace "X" (eq_rect
3501 (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" (v)) (trace "X" (t1))))) (trace "X" (([])))))))))))
3502 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3503 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3504 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3505 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3506 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e))))))))))))))))) (trace "X" (pfx0))
3507 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3508 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3509 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3510 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3511 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3512 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e)))))))))))))))))))))}
3514 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v))))))} in
3515 (trace "X" (case (trace "X" (s)) of {
3516 Prelude.True -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
3517 (trace "X" ((trace "X" ((let {
3518 mapOptionTree0 f t =
3519 (trace "X" (case (trace "X" (t)) of {
3521 (trace "X" (case (trace "X" (o)) of {
3522 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3523 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3524 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3525 in mapOptionTree0 (trace "X" ((\v' ->
3526 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3527 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3528 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))})))))
3529 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3530 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3531 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3532 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t2)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch
3533 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3534 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3535 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3536 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3537 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3538 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t2)))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (((:) (trace "X" (((,) (trace "X" (v)) (trace "X" (t1))))) (trace "X" (([]))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
3539 (trace "X" ((trace "X" ((let {
3540 mapOptionTree0 f t =
3541 (trace "X" (case (trace "X" (t)) of {
3543 (trace "X" (case (trace "X" (o)) of {
3544 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3545 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3546 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
3547 in mapOptionTree0 (trace "X" ((\v' ->
3548 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3549 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3550 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))})))))
3551 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3552 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3553 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3554 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t2)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch
3555 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3556 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3557 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3558 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3559 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3560 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t2)))))))) (trace "X" (lev))))))))))) (trace "X" (pfx1)))))));
3561 Prelude.False -> (trace "X" (Prelude.error "absurd case"))}))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch
3562 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3563 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3564 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3565 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3566 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3567 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t2)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
3568 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3569 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3570 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3571 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3572 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3573 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
3574 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3575 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3576 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3577 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3578 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3579 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e))))))))))))))))) (trace "X" (t1)) (trace "X" (t2)) (trace "X" (lev))))))))));
3580 ELet __U0393_0 __U0394_0 __U03be_0 tv t v lev ev ebody -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))))) (trace "X" (ev)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tv)))))))) (trace "X" (v))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))
3581 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3582 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3583 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3584 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3585 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3586 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (v)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))))) (trace "X" (ev))))))))))))
3587 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3588 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3589 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3590 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3591 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3592 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (v))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))))) (trace "X" (ev)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tv)))))))) (trace "X" (v))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))
3593 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3594 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3595 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3596 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3597 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3598 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (v)))))))))))))) (trace "X" ((Nd_rlecnac (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))))) (trace "X" (ev)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tv)))))))) (trace "X" (v))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))
3599 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3600 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3601 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3602 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3603 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3604 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (v))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))))) (trace "X" (ev))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
3605 (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\v' ->
3606 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3607 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3608 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))})))))
3609 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3610 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3611 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3612 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (v))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))
3613 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3614 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3615 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3616 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3617 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3618 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (v))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (v)) (trace "X" (((:) (trace "X" (((,) (trace "X" (lev)) (trace "X" (tv))))) (trace "X" (([]))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))
3619 (trace "X" ((let {__U03be_'0 = (trace "X" ((trace "X" (update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (v)) (trace "X" (((:) (trace "X" (((,) (trace "X" (lev)) (trace "X" (tv))))) (trace "X" (([]))))))))))} in
3621 n = (trace "X" ((trace "X" (factorContextLeftAndWeaken (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev))
3622 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3623 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3624 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3625 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody))))))) (trace "X" (__U03be_'0))))))}
3628 n0 = (trace "X" ((trace "X" (eq_rect
3629 (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (v)) (trace "X" (((:) (trace "X" (((,) (trace "X" (lev)) (trace "X" (tv))))) (trace "X" (([])))))))))))
3630 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3631 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3632 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3633 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3634 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody))))))))))))))))) (trace "X" (n))
3635 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3636 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3637 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3638 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3639 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3640 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))))))))))))}
3642 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (lev))))))} in
3643 (trace "X" (case (trace "X" (s)) of {
3646 n1 = (trace "X" (RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
3647 (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\v' ->
3648 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3649 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3650 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))})))))
3651 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3652 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3653 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3654 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))
3655 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3656 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3657 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3658 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3659 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3660 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (v)) (trace "X" (n0))))}
3662 (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
3663 (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\v' ->
3664 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3665 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3666 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))})))))
3667 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3668 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3669 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3670 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (v))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))
3671 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3672 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3673 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3674 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3675 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3676 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (v))))))))))) (trace "X" (n1))))));
3677 Prelude.False -> (trace "X" (Prelude.error "absurd case"))})))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))))) (trace "X" (ev)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tv)))))))) (trace "X" (v))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))
3678 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3679 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3680 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3681 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3682 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3683 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (v)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))))) (trace "X" (ev))))))))))))
3684 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3685 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3686 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3687 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3688 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3689 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (v))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))))) (trace "X" (ev))))))))))))
3690 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3691 (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3692 (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3693 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3694 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3695 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody))))))))))))))))) (trace "X" (tv)) (trace "X" (t)) (trace "X" (v))))))))));
3696 EEsc __U0393_0 __U0394_0 __U03be_0 ec t lev e -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))) (trace "X" ((EEsc (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec)) (trace "X" (t)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))))))))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))) (trace "X" ((EEsc (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec)) (trace "X" (t)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))))))))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev))))) (trace "X" (e))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))) (trace "X" ((EEsc (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec)) (trace "X" (t)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))))))))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))) (trace "X" ((EEsc (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec)) (trace "X" (t)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))))))))))))))))) (trace "X" ((REsc (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))))))))))))) (trace "X" (ec)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))) (trace "X" ((EEsc (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec)) (trace "X" (t)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" (lev))))))))));
3697 EBrak __U0393_0 __U0394_0 __U03be_0 ec t lev e -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev))))) (trace "X" ((EBrak (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec)) (trace "X" (t)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (((:) (trace "X" (ec)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev)))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev))))) (trace "X" ((EBrak (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec)) (trace "X" (t)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev))))))))))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev)))))))) (trace "X" (e))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev))))) (trace "X" ((EBrak (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec)) (trace "X" (t)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (((:) (trace "X" (ec)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev)))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev))))) (trace "X" ((EBrak (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec)) (trace "X" (t)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev))))))))))))))))))) (trace "X" ((RBrak (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (t)) (trace "X" (ec)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev))))) (trace "X" ((EBrak (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (ec)) (trace "X" (t)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (lev))))))))))))))))));
3698 ECast __U0393_0 __U0394_0 __U03be_0 __U03b3_ t1 lev e -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))))) (trace "X" ((ECast (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03b3_)) (trace "X" (t1)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03b3_)) (trace "X" (lev)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))))) (trace "X" ((ECast (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03b3_)) (trace "X" (t1)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))))))))))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03b3_)) (trace "X" (lev))))) (trace "X" (e))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))))) (trace "X" ((ECast (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03b3_)) (trace "X" (t1)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03b3_)) (trace "X" (lev)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))))) (trace "X" ((ECast (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03b3_)) (trace "X" (t1)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))))))))))))))))))) (trace "X" ((RCast (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))))) (trace "X" ((ECast (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03b3_)) (trace "X" (t1)) (trace "X" (lev)) (trace "X" (e))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03b3_)) (trace "X" (lev)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev)))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))))))))))))))))));
3699 ENote __U0393_0 __U0394_0 __U03be_0 t n e -> (trace "X" (let {e' = (trace "X" ((trace "X" (expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" (e))))))} in (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" (n)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (t))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" (n)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (t))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))) (trace "X" (e')) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" (n)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (t))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" (n)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (t))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))) (trace "X" ((RNote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" (n)) (trace "X" (e))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (t))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (t))))))) (trace "X" (n))))))))))));
3700 ETyApp __U0393_0 __U0394_0 __U03ba_ __U03c3_ __U03c4_ __U03be_0 l e -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (substT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" (e))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (substT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((RAppT (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_)) (trace "X" (l))))))))));
3701 ECoLam __U0393_0 __U0394_0 __U03ba_ __U03c3_ __U03c3___U2081_ __U03c3___U2082_ __U03be_0 l e -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (__U0394_0))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (l))))) (trace "X" (e))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (__U0394_0))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((RAbsCo (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_)) (trace "X" (__U03c3_)) (trace "X" (l))))))))));
3702 ECoApp __U0393_0 __U0394_0 __U03ba_ __U03c3___U2081_ __U03c3___U2082_ __U03b3_ __U03be_0 l e -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03b3_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03b3_ (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03b3_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03b3_)))))))) (trace "X" (l))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03b3_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (l))))) (trace "X" (e))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03b3_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03b3_ (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03b3_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03b3_)))))))) (trace "X" (l))))))))))) (trace "X" ((RAppCo (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03b3_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_)) (trace "X" (__U03b3_)) (trace "X" (l))))))))));
3703 ETyLam __U0393_0 __U0394_0 __U03be_0 __U03ba_ __U03c3_ l e -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" ((ETyLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (l)) (trace "X" (e)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l)))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" ((ETyLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (l)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))))))))))))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x)))))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x)))))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (l)))))))))) (trace "X" (e)))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x)))))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (l)))))))))) (trace "X" (e))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x)))))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (l)))))))))) (trace "X" (e)))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" ((ETyLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (l)) (trace "X" (e)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l)))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" ((ETyLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (l)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))))))))))))))))) (trace "X" ((RAbsT (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" ((ETyLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (l)) (trace "X" (e))))))))))))))) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))))))))))))))));
3704 ECase __U0393_0 __U0394_0 __U03be_0 l tc tbranches atypes e alts' ->
3706 dcsp = (trace "X" ((trace "X" (let {
3708 (trace "X" (case (trace "X" (alts)) of {
3710 (trace "X" (case (trace "X" (o)) of {
3712 (trace "X" (case (trace "X" (x)) of {
3713 ExistT sac s -> (trace "X" (case (trace "X" (s)) of {
3714 ExistT scbx ex -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" (ex)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l))))))))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))) (trace "X" ((trace "X" ((projT2 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" (ex))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" (ex)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l))))))))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))) (trace "X" ((trace "X" ((projT2 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex))))))))))))))))))))))))))))) (trace "X" ((RArrange (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((map (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (weakCK' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex))))))))))))))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))))))))))))) (trace "X" (x0))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" (ex)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex))))))))))))))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))))))))))))) (trace "X" (KindStar))))))) (trace "X" ((trace "X" ((pcb_freevars (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))) (trace "X" ((trace "X" ((projT2 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))))))))))))) (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((map (trace "X" ((\t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex))))))))))))))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))))))))))))) (trace "X" (l)))))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex))))))))))))))))))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))) (trace "X" (__U0393_0)) (trace "X" (atypes))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex))))))))))))))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))))))))))))) (trace "X" (KindStar)) (trace "X" (tbranches))))))))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex))))))))))))))))))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((ExistT (trace "X" (sac)) (trace "X" ((ExistT (trace "X" (scbx)) (trace "X" (ex)))))))))))))))))))))))))))) (trace "X" (l))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))))) (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)))))))))))))))))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x0)))))))))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" (tbranches))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))) (trace "X" (ex))))))))))))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((map (trace "X" ((\t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)))))))))))))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((vec_map (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((\t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes))))))))))))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((vec_map (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx))))))))))))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" ((trace "X" ((map (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx))))))))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)))))))))))))))))))))) (trace "X" ((let {q = (trace "X" ((trace "X" (factorContextRightAndWeaken'' (trace "X" (eqd_vv))))))} in (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x0)))))))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((vec_zip (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)))))))))))))))))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x0)))))))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_varstypes (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx))))))))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" (tbranches))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))) (trace "X" (ex))))))))))))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((leaves (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx))))))))))))))))))))))))))) (trace "X" ((trace "X" ((q (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx))))))))))))))))) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x0)))))))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_varstypes (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx))))))))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x0)))))))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_varstypes (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx))))))))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" (tbranches))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))) (trace "X" (ex)))))))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)))))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x0)))))))))))))) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((update_xi (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((app (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x0)))))))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_varstypes (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx))))))))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" (tbranches))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))) (trace "X" (ex)))))))))))))))))))))))) (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((map (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx))))))))))))))))))))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((vec_map (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)))))))))))))))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((vec_map (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((\t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)))))))))))))))))))))) (trace "X" ((trace "X" ((map (trace "X" ((\t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)))))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))))) (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes))))))))))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)))))))))))) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_0)))))))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqd_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scbx)) (trace "X" (__U03be_0)) (trace "X" (l))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" (tbranches))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))) (trace "X" (ex))))))))))))))))))))))))))) (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((map (trace "X" ((\t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (l)))))))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (atypes)))))))))))))))))))))))))))))))))))}))}));
3715 Prelude.Nothing -> (trace "X" (Nd_id0))}));
3716 T_Branch b1 b2 -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" (x)))))))))))) (trace "X" ((trace "X" ((projT2 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" (x))))))))))))))))))) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" (x)))))))))))) (trace "X" ((trace "X" ((projT2 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" (x))))))))))))))))))) (trace "X" (b2)))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" (x)))))))))))) (trace "X" ((trace "X" ((projT2 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" (x))))))))))))))))))) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" (x)))))))))))) (trace "X" ((trace "X" ((projT2 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" (x))))))))))))))))))) (trace "X" (b2))))))) (trace "X" ((trace "X" ((mkdcsp (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkdcsp (trace "X" (b2))))))))))))}))}
3717 in mkdcsp (trace "X" (alts'))))))}
3719 (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_freevars (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (x))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes))))))) (trace "X" (alts')))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (e))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (x))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes))))))) (trace "X" (alts')))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_freevars (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (x))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes))))))) (trace "X" (alts')))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l))))))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (x))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes))))))) (trace "X" (alts')))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))))))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (x))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes))))))) (trace "X" (alts')))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l))))))))))))))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" (x)))))))))))) (trace "X" ((trace "X" ((projT2 (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" (x))))))))))))))))))) (trace "X" (alts'))))))) (trace "X" (dcsp)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (x))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes))))))) (trace "X" (alts'))))))))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (e))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (x))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes))))))) (trace "X" (alts')))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_freevars (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" ((trace "X" ((projT1 (trace "X" (x))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes))))))) (trace "X" (alts')))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l))))))))))))))))))) (trace "X" ((RCase (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" (tc)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (e)))))))))))) (trace "X" (atypes)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((mkProofCaseBranch (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes))))))) (trace "X" (alts')))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l))))) (trace "X" ((ECase (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (atypes)) (trace "X" (e)) (trace "X" (alts')))))))))))))))))))));
3720 ELetRec __U0393_0 __U0394_0 __U03be_0 lev t tree x x0 ->
3721 (trace "X" (let {__U03be_'0 = (trace "X" ((trace "X" (update_xi (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))} in
3722 (trace "X" ((trace "X" (letRecSubproofsToND' (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (lev)))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (lev)))))))))))) (trace "X" (tree)) (trace "X" (x)) (trace "X" (x0)) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_'0)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (lev))))) (trace "X" (x0)))))))
3723 (trace "X" ((trace "X" ((let {
3724 subproofs __U0393_'' __U0394_'' __U03be_'' lev'' tree' branches' =
3725 (trace "X" (case (trace "X" (branches')) of {
3726 ELR_nil __U0393_1 __U0394_1 __U03be_1 lev0 -> (trace "X" (Lrsp_nil));
3727 ELR_leaf __U0393_1 __U0394_1 __U03be_1 l v t0 e -> (trace "X" (Lrsp_leaf (trace "X" (v)) (trace "X" (t0)) (trace "X" (e)) (trace "X" ((trace "X" ((expr2proof (trace "X" (eqd_vv)) (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" (t0)) (trace "X" (l))))) (trace "X" (e)))))))));
3728 ELR_branch __U0393_1 __U0394_1 __U03be_1 lev0 t1 t2 b1 b2 -> (trace "X" (Lrsp_cons (trace "X" (t1)) (trace "X" (t2)) (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((subproofs (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" (lev0)) (trace "X" (t1)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((subproofs (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" (lev0)) (trace "X" (t2)) (trace "X" (b2)))))))))}))}
3729 in subproofs (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_'0)) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (x)))))))))))))}))
3731 data VarNameStore0 =
3732 VarNameStore Nat Nat Nat
3734 type VarNameStoreM t =
3735 VarNameStore0 -> (,) t VarNameStore0
3736 -- singleton inductive, whose constructor was varNameStoreM
3738 varNameMonad :: Monad (VarNameStoreM ())
3740 (trace "X" (Build_Monad (trace "X" ((\_ x v -> (trace "X" ((,) (trace "X" (x)) (trace "X" (v))))))) (trace "X" ((\_ _ x f vns -> (trace "X" (case (trace "X" ((trace "X" (x (trace "X" (vns)))))) of {
3741 (,) x' vns' -> (trace "X" ((trace "X" (f (trace "X" (x')) (trace "X" (vns'))))))})))))))
3743 freshTyVarName :: Kind -> VarNameStoreM LatexMath
3744 freshTyVarName __U03ba_ vns =
3745 (trace "X" (case (trace "X" (vns)) of {
3746 VarNameStore n1 n2 n3 -> (trace "X" (let {name = (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('{')) (trace "X" ([])))))))))))))))))))))))))) (trace "X" ((trace "X" ((toLatexMath (trace "X" (stringToLatexMath)) (trace "X" ((trace "X" ((toString (trace "X" (natToStringInstance)) (trace "X" (n1))))))))))))))))) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))} in (trace "X" ((,) (trace "X" (name)) (trace "X" ((VarNameStore (trace "X" ((S (trace "X" (n1))))) (trace "X" (n2)) (trace "X" (n3)))))))))}))
3748 typeToLatexMath :: Prelude.Bool -> Kind -> (RawHaskType LatexMath) -> VarNameStoreM LatexMath
3749 typeToLatexMath needparens __U03ba_ t =
3750 (trace "X" (case (trace "X" (t)) of {
3751 TVar __U03ba_0 v -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((toLatexMath (trace "X" (latexMathToLatexMath)) (trace "X" (v)))))))))));
3752 TCon tc -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" ([])))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toLatexMath (trace "X" (stringToLatexMath)) (trace "X" ((trace "X" ((toString (trace "X" (tyConToString)) (trace "X" (tc))))))))))))))))) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))));
3753 TArrow -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" (')')) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))));
3754 TCoerc __U03ba_0 t1 t2 t0 -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.False)) (trace "X" (__U03ba_0)) (trace "X" (t1))))))) (trace "X" ((\t1' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.False)) (trace "X" (__U03ba_0)) (trace "X" (t2))))))) (trace "X" ((\t2' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (needparens)) (trace "X" (KindStar)) (trace "X" (t0))))))) (trace "X" ((\t' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('(')) (trace "X" ([])))))))) (trace "X" (t1'))))))) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([]))))))))))))))))))))))))) (trace "X" (t2'))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('{')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (t'))))))) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))))))))))))))))))))));
3755 TApp __U03ba___U2081_ __U03ba___U2082_ t1 t2 ->
3756 (trace "X" (case (trace "X" (t1)) of {
3757 TApp __U03ba___U2081_0 __U03ba___U2082_0 r tx ->
3758 (trace "X" (case (trace "X" (r)) of {
3760 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.True)) (trace "X" (__U03ba___U2082_0)) (trace "X" (tx))))))) (trace "X" ((\t1' ->
3761 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.True)) (trace "X" (__U03ba___U2082_)) (trace "X" (t2))))))) (trace "X" ((\t2' ->
3762 (trace "X" (let {body = (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (t1')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (t2'))))))} in
3763 (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad)))))
3764 (trace "X" ((case (trace "X" (needparens)) of {
3765 Prelude.True -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('(')) (trace "X" ([]))))) (trace "X" (body))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))));
3766 Prelude.False -> (trace "X" (body))})))))))))))))))))))))));
3768 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.True)) (trace "X" ((KindArrow (trace "X" (__U03ba___U2082_)) (trace "X" (__U03ba___U2081_))))) (trace "X" (t1))))))) (trace "X" ((\t1' ->
3769 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.True)) (trace "X" (__U03ba___U2082_)) (trace "X" (t2))))))) (trace "X" ((\t2' ->
3770 (trace "X" (let {body = (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (t1')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" (t2'))))))} in
3771 (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad)))))
3772 (trace "X" ((case (trace "X" (needparens)) of {
3773 Prelude.True -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('(')) (trace "X" ([]))))) (trace "X" (body))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))));
3774 Prelude.False -> (trace "X" (body))})))))))))))))))))))))))}));
3776 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.True)) (trace "X" ((KindArrow (trace "X" (__U03ba___U2082_)) (trace "X" (__U03ba___U2081_))))) (trace "X" (t1))))))) (trace "X" ((\t1' ->
3777 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.True)) (trace "X" (__U03ba___U2082_)) (trace "X" (t2))))))) (trace "X" ((\t2' ->
3778 (trace "X" (let {body = (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (t1')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))) (trace "X" (t2'))))))} in
3779 (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad)))))
3780 (trace "X" ((case (trace "X" (needparens)) of {
3781 Prelude.True -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('(')) (trace "X" ([]))))) (trace "X" (body))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))));
3782 Prelude.False -> (trace "X" (body))})))))))))))))))))))))))}));
3783 TAll k f -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((freshTyVarName (trace "X" (k))))))) (trace "X" ((\alpha -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.False)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((f (trace "X" (alpha)))))))))))) (trace "X" ((\t' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))) (trace "X" (alpha))))))) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))) (trace "X" ((trace "X" ((kindToLatexMath (trace "X" (k)))))))))))) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))))) (trace "X" (t')))))))))))))))))))))))));
3784 TCode ec t0 -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.True)) (trace "X" (eCKind)) (trace "X" (ec))))))) (trace "X" ((\ec' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.False)) (trace "X" (KindStar)) (trace "X" (t0))))))) (trace "X" ((\t' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('{')) (trace "X" ([])))))))))))))))))))) (trace "X" (ec'))))))) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" ('{')) (trace "X" ([]))))))))))))) (trace "X" (t'))))))) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([]))))))))))))))))))))))))))));
3785 TyFunApp tfc kl k lt -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeListToRawLatexMath (trace "X" (Prelude.False)) (trace "X" (kl)) (trace "X" (lt)))))))))) (trace "X" ((\rest -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('{')) (trace "X" ([]))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toLatexMath (trace "X" (stringToLatexMath)) (trace "X" ((trace "X" ((toString (trace "X" (tyFunToString)) (trace "X" (tfc))))))))))))))))) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('{')) (trace "X" ([]))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (natToStringInstance)) (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((fst (trace "X" ((trace "X" ((tyFunKind (trace "X" (tfc))))))))))))))))))))))))))) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))) (trace "X" ((trace "X" ((fold_left (trace "X" ((\x y -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))) (trace "X" (x))))))) (trace "X" (y))))))))) (trace "X" (rest)) (trace "X" ([])))))))))))))))))))))))}))
3787 typeListToRawLatexMath :: Prelude.Bool -> (([]) Kind) -> (RawHaskTypeList LatexMath) -> VarNameStoreM (([]) LatexMath)
3788 typeListToRawLatexMath needparens __U03ba_ t =
3789 (trace "X" (case (trace "X" (t)) of {
3790 TyFunApp_nil -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" (([])))))));
3791 TyFunApp_cons __U03ba_0 kl rhk rhkl -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (needparens)) (trace "X" (__U03ba_0)) (trace "X" (rhk)))))))))) (trace "X" ((\r -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeListToRawLatexMath (trace "X" (needparens)) (trace "X" (kl)) (trace "X" (rhkl))))))) (trace "X" ((\rl -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" (((:) (trace "X" (r)) (trace "X" (rl)))))))))))))))))))))))}))
3793 ltypeToLatexMath :: TypeEnv -> Kind -> LeveledHaskType -> VarNameStoreM LatexMath
3794 ltypeToLatexMath __U0393_0 __U03ba_ t =
3795 (trace "X" (case (trace "X" (t)) of {
3796 MkLeveledHaskType t' lev ->
3797 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((list_rect (trace "X" ((trace "X" ((returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" (INil))))))) (trace "X" ((\a __U0393_1 iH__U0393_ -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((freshTyVarName (trace "X" (a))))))) (trace "X" ((\tv' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" (iH__U0393_)) (trace "X" ((\iH__U0393_' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((ICons (trace "X" (a)) (trace "X" (__U0393_1)) (trace "X" (tv')) (trace "X" (iH__U0393_')))))))))))))))))))))))))) (trace "X" (__U0393_0))))))) (trace "X" ((\ite ->
3798 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" ((trace "X" ((typeToLatexMath (trace "X" (Prelude.False)) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (t')) (trace "X" (__)) (trace "X" (ite)))))))))))) (trace "X" ((\t'' ->
3799 (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad)))))
3800 (trace "X" ((case (trace "X" (lev)) of {
3801 ([]) -> (trace "X" (t''));
3802 (:) h l -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))) (trace "X" (t''))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('@')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))) (trace "X" ((trace "X" ((fold_left (trace "X" ((\x y -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" (x)) (trace "X" (((:) (trace "X" (':')) (trace "X" ([])))))))))) (trace "X" ((unsafeCoerce (trace "X" (y)))))))))))) (trace "X" ((trace "X" ((map (trace "X" ((\l0 -> (trace "X" ((trace "X" (l0 (trace "X" (__)) (trace "X" (ite))))))))) (trace "X" (lev))))))) (trace "X" ([])))))))))))})))))))))))))))))))))}))
3804 judgmentToRawLatexMath :: Judg -> LatexMath
3805 judgmentToRawLatexMath j =
3806 (trace "X" ((trace "X" (fst (trace "X" ((trace "X" ((unsafeCoerce (trace "X" ((case (trace "X" (j)) of {
3807 MkJudg __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ l -> (trace "X" ((trace "X" (bindM (trace "X" (varNameMonad)) (trace "X" ((trace "X" ((treeM (trace "X" (varNameMonad)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((ltypeToLatexMath (trace "X" (__U0393_0)) (trace "X" (KindStar)))))))))) (trace "X" (__U03a3___U2081_)))))))))))) (trace "X" ((\__U03a3___U2081_' -> (trace "X" ((trace "X" (bindM (trace "X" (varNameMonad)) (trace "X" ((trace "X" ((treeM (trace "X" (varNameMonad)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t -> (trace "X" (unsafeCoerce (trace "X" ((trace "X" ((ltypeToLatexMath (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (l))))))))))))))) (trace "X" (__U03a3___U2082_)))))))))))) (trace "X" ((\__U03a3___U2082_' -> (trace "X" ((trace "X" (returnM (trace "X" (varNameMonad)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableLatexMath)) (trace "X" ((trace "X" ((treeToLatexMath (trace "X" (latexMathToLatexMath)) (trace "X" (__U03a3___U2081_'))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('h')) (trace "X" ([]))))))))))))))))))))))))) (trace "X" ((trace "X" ((treeToLatexMath (trace "X" (latexMathToLatexMath)) (trace "X" (__U03a3___U2082_'))))))))))))))))))))))))))))))}))) (trace "X" ((VarNameStore (trace "X" (O)) (trace "X" (O)) (trace "X" (O))))))))))))))
3809 toLatexMathJudgment :: ToLatexMath Judg
3810 toLatexMathJudgment =
3811 (trace "X" (judgmentToRawLatexMath))
3813 nd_uruleToRawLatexMath :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Arrange a1) -> Prelude.String
3814 nd_uruleToRawLatexMath h c r =
3815 (trace "X" (case (trace "X" (r)) of {
3816 RId a -> (trace "X" ((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))));
3817 RCanL a -> (trace "X" ((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('L')) (trace "X" ([])))))))))))));
3818 RCanR a -> (trace "X" ((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('R')) (trace "X" ([])))))))))))));
3819 RuCanL a -> (trace "X" ((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('L')) (trace "X" ([]))))))))))))))));
3820 RuCanR a -> (trace "X" ((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('R')) (trace "X" ([]))))))))))))))));
3821 RAssoc a b c0 -> (trace "X" ((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('c')) (trace "X" ([]))))))))))))))));
3822 RCossa a b c0 -> (trace "X" ((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('a')) (trace "X" ([]))))))))))))))));
3823 RExch a b -> (trace "X" ((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" ([])))))))))))));
3824 RWeak a -> (trace "X" ((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" ([])))))))))))));
3825 RCont a -> (trace "X" ((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([])))))))))))));
3826 RLeft h0 c0 x r0 -> (trace "X" ((trace "X" (nd_uruleToRawLatexMath (trace "X" (h0)) (trace "X" (c0)) (trace "X" (r0))))));
3827 RRight h0 c0 x r0 -> (trace "X" ((trace "X" (nd_uruleToRawLatexMath (trace "X" (h0)) (trace "X" (c0)) (trace "X" (r0))))));
3828 RComp a b c0 a0 a1 -> (trace "X" ((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" ([])))))))))))))}))
3830 nd_ruleToRawLatexMath :: (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> Rule -> Prelude.String
3831 nd_ruleToRawLatexMath h c r =
3832 (trace "X" (case (trace "X" (r)) of {
3833 RArrange __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03a3_ l r0 -> (trace "X" ((trace "X" (nd_uruleToRawLatexMath (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" (r0))))));
3834 RBrak __U0393_0 __U0394_0 t v __U03a3_ l -> (trace "X" ((:) (trace "X" ('B')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" ([])))))))))))));
3835 REsc __U0393_0 __U0394_0 t v __U03a3_ l -> (trace "X" ((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('c')) (trace "X" ([]))))))))));
3836 RNote __U0393_0 __U0394_0 __U03a3_ __U03c4_ l n -> (trace "X" ((:) (trace "X" ('N')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))));
3837 RLit __U0393_0 __U0394_0 v l -> (trace "X" ((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([]))))))))));
3838 RVar __U0393_0 __U0394_0 __U03c3_ l -> (trace "X" ((:) (trace "X" ('V')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" ([]))))))))));
3839 RGlobal __U0393_0 __U0394_0 l g v -> (trace "X" ((:) (trace "X" ('G')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" ([])))))))))))))))))));
3840 RLam __U0393_0 __U0394_0 __U03a3_ tx te l -> (trace "X" ((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('s')) (trace "X" ([]))))))))));
3841 RCast __U0393_0 __U0394_0 __U03a3_ __U03c3___U2081_ __U03c3___U2082_ l -> (trace "X" ((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([])))))))))))));
3842 RJoin __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03c4___U2081_ __U03c4___U2082_ l -> (trace "X" ((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('J')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" ([]))))))))))))))));
3843 RApp __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ tx te l -> (trace "X" ((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" ([]))))))))));
3844 RLet __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03c3___U2081_ __U03c3___U2082_ l -> (trace "X" ((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([]))))))))));
3845 RWhere __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03a3___U2083_ __U03c3___U2081_ __U03c3___U2082_ l -> (trace "X" ((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))));
3846 RVoid __U0393_0 __U0394_0 l -> (trace "X" ((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('V')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([]))))))))))))))));
3847 RAppT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ __U03c4_ l -> (trace "X" ((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('T')) (trace "X" ([])))))))))))));
3848 RAbsT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ l -> (trace "X" ((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('T')) (trace "X" ([])))))))))))));
3849 RAppCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3___U2081_ __U03c3___U2082_ __U03c3_ l -> (trace "X" ((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" ([]))))))))))))))));
3850 RAbsCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3___U2081_ __U03c3___U2082_ __U03c3_ l -> (trace "X" ((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" ([]))))))))))))))));
3851 RLetRec __U0393_0 __U0394_0 __U03a3___U2081_ __U03c4___U2081_ __U03c4___U2082_ lev -> (trace "X" ((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('c')) (trace "X" ([])))))))))))))))))));
3852 RCase __U0393_0 __U0394_0 lev tc __U03a3_ avars tbranches alts -> (trace "X" ((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))}))
3854 nd_hideURule :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Arrange a1) -> Prelude.Bool
3855 nd_hideURule h c r =
3856 (trace "X" (case (trace "X" (r)) of {
3857 RId a -> (trace "X" (Prelude.False));
3859 (trace "X" (case (trace "X" (a)) of {
3861 (trace "X" (case (trace "X" (o)) of {
3863 (trace "X" (case (trace "X" (b)) of {
3865 (trace "X" (case (trace "X" (o0)) of {
3866 Prelude.Just t0 -> (trace "X" (Prelude.False));
3867 Prelude.Nothing -> (trace "X" (Prelude.True))}));
3868 T_Branch t0 t1 -> (trace "X" (Prelude.False))}));
3869 Prelude.Nothing -> (trace "X" (Prelude.True))}));
3871 (trace "X" (case (trace "X" (b)) of {
3873 (trace "X" (case (trace "X" (o)) of {
3874 Prelude.Just t1 -> (trace "X" (Prelude.False));
3875 Prelude.Nothing -> (trace "X" (Prelude.True))}));
3876 T_Branch t1 t2 -> (trace "X" (Prelude.False))}))}));
3878 (trace "X" (case (trace "X" (a)) of {
3880 (trace "X" (case (trace "X" (o)) of {
3881 Prelude.Just t -> (trace "X" (Prelude.False));
3882 Prelude.Nothing -> (trace "X" (Prelude.True))}));
3883 T_Branch t t0 -> (trace "X" (Prelude.False))}));
3885 (trace "X" (case (trace "X" (a)) of {
3887 (trace "X" (case (trace "X" (o)) of {
3888 Prelude.Just t -> (trace "X" (Prelude.False));
3889 Prelude.Nothing -> (trace "X" (Prelude.True))}));
3890 T_Branch t t0 -> (trace "X" (Prelude.False))}));
3891 RLeft h0 c0 x r0 -> (trace "X" ((trace "X" (nd_hideURule (trace "X" (h0)) (trace "X" (c0)) (trace "X" (r0))))));
3892 RRight h0 c0 x r0 -> (trace "X" ((trace "X" (nd_hideURule (trace "X" (h0)) (trace "X" (c0)) (trace "X" (r0))))));
3893 RComp a b c0 a0 a1 -> (trace "X" (Prelude.False));
3894 _ -> (trace "X" (Prelude.True))}))
3896 nd_hideRule :: (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> Rule -> Prelude.Bool
3898 (trace "X" (case (trace "X" (r)) of {
3899 RArrange __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03a3_ l r0 -> (trace "X" ((trace "X" (nd_hideURule (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" (r0))))));
3900 RJoin __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03c4___U2081_ __U03c4___U2082_ l -> (trace "X" (Prelude.True));
3901 RVoid __U0393_0 __U0394_0 l -> (trace "X" (Prelude.True));
3902 _ -> (trace "X" (Prelude.False))}))
3904 toLatexMathRule :: (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> ToLatexMath Rule
3905 toLatexMathRule h c r =
3906 (trace "X" ((trace "X" (nd_ruleToRawLatexMath (trace "X" (h)) (trace "X" (c)) (trace "X" (r))))))
3908 nd_ml_toLatexMath :: (Tree (Prelude.Maybe Judg)) -> (ND Judg Rule) -> LatexMath
3909 nd_ml_toLatexMath c pf =
3910 (trace "X" ((trace "X" (sIND_toLatexMath (trace "X" (toLatexMathJudgment)) (trace "X" (toLatexMathRule)) (trace "X" (nd_hideRule)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (c)) (trace "X" ((trace "X" ((mkSIND (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (c)) (trace "X" (pf)) (trace "X" ((Scnd_weak (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))))))))
3912 mkWeakTypeVar :: (Unique.Unique -> Kind -> WeakTypeVar0) -> Kind -> UniqM WeakTypeVar0
3913 mkWeakTypeVar mkWeakTypeVar_ k =
3914 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" (getU))))) (trace "X" ((\u -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((mkWeakTypeVar_ (trace "X" (u)) (trace "X" (k))))))))))))))))))
3916 mkWeakCoerVar :: (Unique.Unique -> Kind -> WeakType -> WeakType -> WeakCoerVar0) -> Kind -> WeakType -> WeakType -> UniqM WeakCoerVar0
3917 mkWeakCoerVar mkWeakCoerVar_ k t1 t2 =
3918 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" (getU))))) (trace "X" ((\u -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((mkWeakCoerVar_ (trace "X" (u)) (trace "X" (k)) (trace "X" (t1)) (trace "X" (t2))))))))))))))))))
3920 mkWeakExprVar :: (Unique.Unique -> WeakType -> WeakExprVar0) -> WeakType -> UniqM WeakExprVar0
3921 mkWeakExprVar mkWeakExprVar_ t =
3922 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" (getU))))) (trace "X" ((\u -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((mkWeakExprVar_ (trace "X" (u)) (trace "X" (t))))))))))))))))))
3924 mfresh :: (Unique.Unique -> Kind -> WeakTypeVar0) -> (([]) Kind) -> (([]) Kind) -> (IList Kind WeakTypeVar0) -> UniqM ((,) (Vec WeakTypeVar0) (IList Kind WeakTypeVar0))
3925 mfresh mkWeakTypeVar_ lk __U0393_0 ite =
3926 (trace "X" (case (trace "X" (lk)) of {
3927 ([]) -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (((,) (trace "X" (Vec_nil)) (trace "X" (ite)))))))));
3928 (:) k lk' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((mkWeakTypeVar (trace "X" (mkWeakTypeVar_)) (trace "X" (k)))))))))) (trace "X" ((\v -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((mfresh (trace "X" (mkWeakTypeVar_)) (trace "X" (lk')) (trace "X" (__U0393_0)) (trace "X" (ite))))))) (trace "X" ((\vars_ite' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (((,) (trace "X" ((Vec_cons (trace "X" ((trace "X" ((length (trace "X" (lk'))))))) (trace "X" (v)) (trace "X" ((trace "X" ((fst (trace "X" (vars_ite')))))))))) (trace "X" ((ICons (trace "X" (k)) (trace "X" ((trace "X" ((app (trace "X" (lk')) (trace "X" (__U0393_0))))))) (trace "X" (v)) (trace "X" ((trace "X" ((snd (trace "X" (vars_ite')))))))))))))))))))))))))))))))}))
3930 rawHaskTypeToWeakType :: (Unique.Unique -> Kind -> WeakTypeVar0) -> Kind -> (RawHaskType WeakTypeVar0) -> UniqM WeakType
3931 rawHaskTypeToWeakType mkWeakTypeVar_ =
3933 rawHaskTypeToWeakType0 __U03ba_ rht =
3934 (trace "X" (case (trace "X" (rht)) of {
3935 TVar __U03ba_0 v -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WTyVarTy (trace "X" (v)))))))));
3936 TCon tc -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WTyCon (trace "X" (tc)))))))));
3937 TArrow -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (WFunTyCon))))));
3938 TCoerc __U03ba_0 t1 t2 t3 -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((rawHaskTypeToWeakType0 (trace "X" (__U03ba_0)) (trace "X" (t1))))))) (trace "X" ((\t1' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((rawHaskTypeToWeakType0 (trace "X" (__U03ba_0)) (trace "X" (t2))))))) (trace "X" ((\t2' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((rawHaskTypeToWeakType0 (trace "X" (KindStar)) (trace "X" (t3))))))) (trace "X" ((\t3' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WCoFunTy (trace "X" (t1')) (trace "X" (t2')) (trace "X" (t3'))))))))))))))))))))))))))))));
3939 TApp __U03ba___U2081_ __U03ba___U2082_ t1 t2 -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((rawHaskTypeToWeakType0 (trace "X" ((KindArrow (trace "X" (__U03ba___U2082_)) (trace "X" (__U03ba___U2081_))))) (trace "X" (t1))))))) (trace "X" ((\t1' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((rawHaskTypeToWeakType0 (trace "X" (__U03ba___U2082_)) (trace "X" (t2))))))) (trace "X" ((\t2' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WAppTy (trace "X" (t1')) (trace "X" (t2')))))))))))))))))))))));
3940 TAll k rht' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((mkWeakTypeVar (trace "X" (mkWeakTypeVar_)) (trace "X" (k)))))))))) (trace "X" ((\tv -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((rawHaskTypeToWeakType0 (trace "X" (KindStar)) (trace "X" ((trace "X" ((rht' (trace "X" (tv)))))))))))) (trace "X" ((\t' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WForAllTy (trace "X" (tv)) (trace "X" (t')))))))))))))))))))))));
3942 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((rawHaskTypeToWeakType0 (trace "X" (eCKind)) (trace "X" (t1))))))) (trace "X" ((\t1' ->
3943 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((rawHaskTypeToWeakType0 (trace "X" (KindStar)) (trace "X" (t2))))))) (trace "X" ((\t2' ->
3944 (trace "X" (case (trace "X" (t1')) of {
3945 WTyVarTy ec -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WCodeTy (trace "X" (ec)) (trace "X" (t2')))))))));
3946 _ -> (trace "X" ((\x -> (trace "X" (Error (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([])))))))))))))))))))))))))))))))))))))}))))))))))))))));
3947 TyFunApp tfc kl k tls -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((rawHaskTypeListToWeakType (trace "X" (kl)) (trace "X" (tls))))))) (trace "X" ((\tls' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WTyFunApp (trace "X" (tfc)) (trace "X" (tls'))))))))))))))))}));
3948 rawHaskTypeListToWeakType __U03ba_ rht =
3949 (trace "X" (case (trace "X" (rht)) of {
3950 TyFunApp_nil -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (([])))))));
3951 TyFunApp_cons __U03ba_0 kl rht' rhtl' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((rawHaskTypeToWeakType0 (trace "X" (__U03ba_0)) (trace "X" (rht'))))))) (trace "X" ((\t -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((rawHaskTypeListToWeakType (trace "X" (kl)) (trace "X" (rhtl'))))))) (trace "X" ((\tl -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (((:) (trace "X" (t)) (trace "X" (tl)))))))))))))))))))))))}))}
3952 in rawHaskTypeToWeakType0))
3954 typeToWeakType :: (Unique.Unique -> Kind -> WeakTypeVar0) -> TypeEnv -> Kind -> HaskType -> (InstantiatedTypeEnv WeakTypeVar0) -> UniqM WeakType
3955 typeToWeakType mkWeakTypeVar_ __U0393_0 __U03ba_ __U03c4_ __U03c6_0 =
3956 (trace "X" ((trace "X" (rawHaskTypeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (__U03c4_)) (trace "X" (__)) (trace "X" (__U03c6_0)))))))))))
3958 updateITE :: TypeEnv -> Kind -> a1 -> (InstantiatedTypeEnv a1) -> InstantiatedTypeEnv a1
3959 updateITE __U0393_0 __U03ba_ tv ite =
3960 (trace "X" (ICons (trace "X" (__U03ba_)) (trace "X" (__U0393_0)) (trace "X" (tv)) (trace "X" (ite))))
3962 coercionToWeakCoercion :: (Unique.Unique -> Kind -> WeakTypeVar0) -> TypeEnv -> CoercionEnv -> Kind -> HaskType -> HaskType -> (InstantiatedTypeEnv WeakTypeVar0) -> UniqM WeakCoercion
3963 coercionToWeakCoercion mkWeakTypeVar_ __U0393_0 __U0394_0 __U03ba_ t1 t2 ite =
3964 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (t1)) (trace "X" (ite)))))))))) (trace "X" ((\t1' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (t2)) (trace "X" (ite)))))))))) (trace "X" ((\t2' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WCoUnsafe (trace "X" (t1')) (trace "X" (t2')))))))))))))))))))))))
3966 seqM :: (([]) (UniqM a1)) -> UniqM (([]) a1)
3968 (trace "X" (case (trace "X" (l)) of {
3969 ([]) -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (([])))))));
3970 (:) x y -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" (x))))) (trace "X" ((\x' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((seqM (trace "X" (y))))))) (trace "X" ((\y' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (((:) (trace "X" (x')) (trace "X" (y')))))))))))))))))))))))}))
3972 update_chi :: (EqDecidable a1) -> (a1 -> OrError WeakExprVar0) -> a1 -> WeakExprVar0 -> a1 -> OrError WeakExprVar0
3973 update_chi eqVV __U03c7_ vv ev' vv' =
3974 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqVV)) (trace "X" (vv)) (trace "X" (vv')))))) of {
3975 Prelude.True -> (trace "X" (OK (trace "X" (ev'))));
3976 Prelude.False -> (trace "X" ((trace "X" (__U03c7_ (trace "X" (vv'))))))}))
3978 update_chi' :: (EqDecidable a1) -> (a1 -> OrError WeakExprVar0) -> (([]) ((,) a1 WeakExprVar0)) -> a1 -> OrError WeakExprVar0
3979 update_chi' eqVV __U03c7_ varsexprs =
3980 (trace "X" (case (trace "X" (varsexprs)) of {
3981 ([]) -> (trace "X" (__U03c7_));
3982 (:) p rest -> (trace "X" (case (trace "X" (p)) of {
3983 (,) vv wev -> (trace "X" ((trace "X" (update_chi (trace "X" (eqVV)) (trace "X" ((trace "X" ((update_chi' (trace "X" (eqVV)) (trace "X" (__U03c7_)) (trace "X" (rest))))))) (trace "X" (vv)) (trace "X" (wev))))))}))}))
3985 exprToWeakExpr :: WeakExprVar0 -> WeakExprVar0 -> (Unique.Unique -> Kind -> WeakTypeVar0) -> (Unique.Unique -> Kind -> WeakType -> WeakType -> WeakCoerVar0) -> (Unique.Unique -> WeakType -> WeakExprVar0) -> (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> LeveledHaskType -> (a1 -> OrError WeakExprVar0) -> (Expr a1) -> (InstantiatedTypeEnv WeakTypeVar0) -> UniqM WeakExpr
3986 exprToWeakExpr hetmet_brak hetmet_esc mkWeakTypeVar_ mkWeakCoerVar_ mkWeakExprVar_ eqVV =
3988 exprToWeakExpr0 __U0393_0 __U0394_0 __U03be_0 __U03c4_ __U03c7_ exp =
3989 (trace "X" (case (trace "X" (exp)) of {
3990 EGlobal __U0393_' __U0394_1 __U03be_' g v lev -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((mapM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((ilist_to_list (trace "X" ((trace "X" ((glob_kinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (g))))))) (trace "X" ((trace "X" ((ilmap (trace "X" ((trace "X" ((glob_kinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (g))))))) (trace "X" ((\__U03ba_ x -> (trace "X" (unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_')) (trace "X" (__U03ba_)) (trace "X" (x)) (trace "X" (ite)))))))))))) (trace "X" (v))))))))))))))))) (trace "X" ((\tv' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((fold_left (trace "X" ((\x y -> (trace "X" (WETyApp (trace "X" (x)) (trace "X" (y))))))) (trace "X" (tv')) (trace "X" ((WEVar (trace "X" ((trace "X" ((glob_wv (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (g)))))))))))))))))))))))))))));
3991 EVar __U0393_' __U0394_1 __U03be_' ev -> (trace "X" ((\ite ->
3992 (trace "X" (case (trace "X" ((trace "X" (__U03c7_ (trace "X" (ev)))))) of {
3993 Error s -> (trace "X" ((\x -> (trace "X" (Error (trace "X" (s)))))));
3994 OK v -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WEVar (trace "X" (v)))))))))})))));
3995 ELit __U0393_1 __U0394_1 __U03be_1 lit l -> (trace "X" ((\ite -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WELit (trace "X" (lit))))))))))));
3996 EApp __U0393_' __U0394_1 __U03be_1 t1 t2 l e1 e2 -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_')) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((t2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((t1 (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (l))))) (trace "X" (__U03c7_)) (trace "X" (e1)) (trace "X" (ite))))))) (trace "X" ((\e1' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_')) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (l))))) (trace "X" (__U03c7_)) (trace "X" (e2)) (trace "X" (ite))))))) (trace "X" ((\e2' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WEApp (trace "X" (e1')) (trace "X" (e2'))))))))))))))))))))))))));
3997 ELam __U0393_' __U0394_1 __U03be_1 tv t2 l cv e -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_')) (trace "X" (KindStar)) (trace "X" (tv)) (trace "X" (ite)))))))))) (trace "X" ((\tv' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((mkWeakExprVar (trace "X" (mkWeakExprVar_)) (trace "X" (tv')))))))))) (trace "X" ((\ev' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_')) (trace "X" (__U0394_1)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqVV)) (trace "X" (__U0393_')) (trace "X" (__U03be_1)) (trace "X" (l)) (trace "X" (((:) (trace "X" (((,) (trace "X" (cv)) (trace "X" (tv))))) (trace "X" (([]))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (l))))) (trace "X" ((trace "X" ((update_chi (trace "X" (eqVV)) (trace "X" (__U03c7_)) (trace "X" (cv)) (trace "X" (ev'))))))) (trace "X" (e)) (trace "X" (ite))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WELam (trace "X" (ev')) (trace "X" (e')))))))))))))))))))))))))))))))));
3998 ELet __U0393_' __U0394_1 __U03be_1 t t0 l ev e1 e2 -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_')) (trace "X" (KindStar)) (trace "X" (t)) (trace "X" (ite)))))))))) (trace "X" ((\tv' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_')) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (l))))) (trace "X" (__U03c7_)) (trace "X" (e1)) (trace "X" (ite))))))) (trace "X" ((\e1' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((mkWeakExprVar (trace "X" (mkWeakExprVar_)) (trace "X" (tv')))))))))) (trace "X" ((\ev' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_')) (trace "X" (__U0394_1)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqVV)) (trace "X" (__U0393_')) (trace "X" (__U03be_1)) (trace "X" (l)) (trace "X" (((:) (trace "X" (((,) (trace "X" (ev)) (trace "X" (t))))) (trace "X" (([]))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" (t0)) (trace "X" (l))))) (trace "X" ((trace "X" ((update_chi (trace "X" (eqVV)) (trace "X" (__U03c7_)) (trace "X" (ev)) (trace "X" (ev'))))))) (trace "X" (e2)) (trace "X" (ite))))))) (trace "X" ((\e2' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WELet (trace "X" (ev')) (trace "X" (e1')) (trace "X" (e2'))))))))))))))))))))))))))))))))))))))));
3999 EEsc __U0393_' __U0394_1 __U03be_1 ec t l e -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_')) (trace "X" (KindStar)) (trace "X" (t)) (trace "X" (ite)))))))))) (trace "X" ((\t' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_')) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_')) (trace "X" (ec)) (trace "X" (t))))))))) (trace "X" (l))))) (trace "X" (__U03c7_)) (trace "X" (e)) (trace "X" (ite))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WEEsc (trace "X" (hetmet_esc)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ec)) (trace "X" (__)) (trace "X" (ite))))))) (trace "X" (e')) (trace "X" (t'))))))))))))))))))))))))));
4000 EBrak __U0393_' __U0394_1 __U03be_1 ec t l e -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_')) (trace "X" (KindStar)) (trace "X" (t)) (trace "X" (ite)))))))))) (trace "X" ((\t' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_')) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (l)))))))) (trace "X" (__U03c7_)) (trace "X" (e)) (trace "X" (ite))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WEBrak (trace "X" (hetmet_brak)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ec)) (trace "X" (__)) (trace "X" (ite))))))) (trace "X" (e')) (trace "X" (t'))))))))))))))))))))))))));
4001 ECast __U0393_1 __U0394_1 __U03be_1 t1 t2 l e -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" (t1)) (trace "X" (l))))) (trace "X" (__U03c7_)) (trace "X" (e)) (trace "X" (ite))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((coercionToWeakCoercion (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (KindStar)) (trace "X" (t1)) (trace "X" (t2)) (trace "X" (ite)))))))))) (trace "X" ((\c' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WECast (trace "X" (e')) (trace "X" (c'))))))))))))))))))))))))));
4002 ENote __U0393_1 __U0394_1 __U03be_1 t n e -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" (t)) (trace "X" (__U03c7_)) (trace "X" (e)) (trace "X" (ite))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WENote (trace "X" (n)) (trace "X" (e')))))))))))))))))));
4003 ETyApp __U0393_1 __U0394_1 __U03ba_ __U03c3_ __U03c4_0 __U03be_1 l e -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_1)) (trace "X" (__U03ba_)) (trace "X" (__U03c4_0)) (trace "X" (ite)))))))))) (trace "X" ((\t' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_1)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (l))))) (trace "X" (__U03c7_)) (trace "X" (e)) (trace "X" (ite))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WETyApp (trace "X" (e')) (trace "X" (t'))))))))))))))))))))))))));
4004 ECoLam __U0393_1 __U0394_1 __U03ba_ __U03c3_ __U03c3___U2081_ __U03c3___U2082_ __U03be_1 l e -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_1)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (ite)))))))))) (trace "X" ((\t1' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_1)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2082_)) (trace "X" (ite)))))))))) (trace "X" ((\t2' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((mkWeakCoerVar (trace "X" (mkWeakCoerVar_)) (trace "X" (__U03ba_)) (trace "X" (t1')) (trace "X" (t2')))))))))) (trace "X" ((\cv -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_1)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_1)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (__U0394_1))))) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (l))))) (trace "X" (__U03c7_)) (trace "X" (e)) (trace "X" (ite))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WECoLam (trace "X" (cv)) (trace "X" (e'))))))))))))))))))))))))))))))))))))))));
4005 ECoApp __U0393_1 __U0394_1 __U03ba_ __U03c3___U2081_ __U03c3___U2082_ __U03c3_ __U03be_1 l e -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (l))))) (trace "X" (__U03c7_)) (trace "X" (e)) (trace "X" (ite))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((coercionToWeakCoercion (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_)) (trace "X" (ite)))))))))) (trace "X" ((\c' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WECoApp (trace "X" (e')) (trace "X" (c'))))))))))))))))))))))))));
4006 ETyLam __U0393_1 __U0394_1 __U03be_1 k __U03c3_ l e -> (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((mkWeakTypeVar (trace "X" (mkWeakTypeVar_)) (trace "X" (k)))))))))) (trace "X" ((\tv -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (((:) (trace "X" (k)) (trace "X" (__U0393_1))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_1)) (trace "X" (k)) (trace "X" (__U0394_1))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (weakLT (trace "X" (__U0393_1)) (trace "X" (k)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_1 (trace "X" (x)))))))))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (k)) (trace "X" (__U0393_1))))) (trace "X" (k)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_1)) (trace "X" (k)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_1)) (trace "X" (k)))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_1)) (trace "X" (k)) (trace "X" (l)))))))))) (trace "X" (__U03c7_)) (trace "X" (e)) (trace "X" ((trace "X" ((updateITE (trace "X" (__U0393_1)) (trace "X" (k)) (trace "X" (tv)) (trace "X" (ite)))))))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WETyLam (trace "X" (tv)) (trace "X" (e'))))))))))))))))))))))))));
4007 ECase __U0393_1 __U0394_1 __U03be_1 l tc tbranches atypes escrut alts -> (trace "X" ((\ite ->
4008 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_1)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_1)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (ite)))))))))) (trace "X" ((\tscrut' ->
4009 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((mkWeakExprVar (trace "X" (mkWeakExprVar_)) (trace "X" (tscrut')))))))))) (trace "X" ((\vscrut' ->
4010 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_1)) (trace "X" (KindStar)) (trace "X" (tbranches)) (trace "X" (ite)))))))))) (trace "X" ((\tbranches' ->
4011 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_1)) (trace "X" (tc)) (trace "X" (atypes))))))))) (trace "X" (l))))) (trace "X" (__U03c7_)) (trace "X" (escrut)) (trace "X" (ite))))))) (trace "X" ((\escrut' ->
4012 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad)))))
4013 (trace "X" ((trace "X" ((let {
4015 (trace "X" (case (trace "X" (tree)) of {
4017 (trace "X" (case (trace "X" (o)) of {
4019 (trace "X" (case (trace "X" (x)) of {
4020 ExistT sac scb_e -> (trace "X" (case (trace "X" (scb_e)) of {
4021 ExistT scb e -> (trace "X" (let {varstypes = (trace "X" ((trace "X" (vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_varstypes (trace "X" (eqVV)) (trace "X" (tc)) (trace "X" (__U0393_1)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scb)))))))))))} in (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((mfresh (trace "X" (mkWeakTypeVar_)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0393_1)) (trace "X" (ite)))))))))) (trace "X" ((\evars_ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((seqM (trace "X" ((trace "X" ((map (trace "X" ((\vt -> (trace "X" ((trace "X" (bindM (trace "X" (uniqMonad)) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_1))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((snd (trace "X" (vt))))))) (trace "X" ((trace "X" ((snd (trace "X" (evars_ite))))))))))))))) (trace "X" ((\tleaf -> (trace "X" ((trace "X" (bindM (trace "X" (uniqMonad)) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((mkWeakExprVar (trace "X" (mkWeakExprVar_)) (trace "X" (tleaf)))))))))) (trace "X" ((\v' -> (trace "X" ((trace "X" (returnM (trace "X" (uniqMonad)) (trace "X" (((,) (trace "X" ((trace "X" ((fst (trace "X" (vt))))))) (trace "X" (v')))))))))))))))))))))))))) (trace "X" (varstypes))))))))))))))) (trace "X" ((\exprvars -> (trace "X" (let {__U03c7_' = (trace "X" ((trace "X" (update_chi' (trace "X" (eqVV)) (trace "X" (__U03c7_)) (trace "X" (exprvars))))))} in (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_1))))))) (trace "X" ((trace "X" ((sac_delta (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_1)) (trace "X" (atypes)) (trace "X" ((trace "X" ((weakCK'' (trace "X" (__U0393_1)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (__U0394_1)))))))))))) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqVV)) (trace "X" (tc)) (trace "X" (__U0393_1)) (trace "X" (atypes)) (trace "X" (sac)) (trace "X" (scb)) (trace "X" (__U03be_1)) (trace "X" (l))))))) (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_1)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))) (trace "X" (__U03c7_')) (trace "X" (e)) (trace "X" ((trace "X" ((snd (trace "X" (evars_ite)))))))))))) (trace "X" ((\e'' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (((,) (trace "X" (((,) (trace "X" (((,) (trace "X" (((,) (trace "X" ((trace "X" ((sac_altcon (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))))))))))))) (trace "X" ((trace "X" ((fst (trace "X" (evars_ite))))))))))))))) (trace "X" (([])))))) (trace "X" ((trace "X" ((map (trace "X" (snd)) (trace "X" (exprvars)))))))))) (trace "X" (e''))))))))))))))))))))))))))))))))))))))))}))}));
4022 Prelude.Nothing -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))}));
4023 T_Branch b1 b2 -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((caseBranches (trace "X" (b1))))))) (trace "X" ((\b1' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((caseBranches (trace "X" (b2))))))) (trace "X" ((\b2' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((T_Branch (trace "X" (b1')) (trace "X" (b2')))))))))))))))))))))))}))}
4024 in caseBranches (trace "X" (alts))))))) (trace "X" ((\branches' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((seqM (trace "X" ((trace "X" ((ilist_to_list (trace "X" ((trace "X" ((tyConKind (trace "X" (tc))))))) (trace "X" ((trace "X" ((ilmap (trace "X" ((trace "X" ((tyConKind (trace "X" (tc))))))) (trace "X" ((\i t -> (trace "X" ((trace "X" (typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_1)) (trace "X" (i)) (trace "X" (t)) (trace "X" (ite))))))))) (trace "X" (atypes)))))))))))))))))))) (trace "X" ((\tys -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WECase (trace "X" (vscrut')) (trace "X" (escrut')) (trace "X" (tbranches')) (trace "X" (tc)) (trace "X" (tys)) (trace "X" (branches'))))))))))))))))))))))))))))))))))))))))))))))))))))));
4025 ELetRec __U0393_1 __U0394_1 __U03be_1 l __U03c4_0 vars x x0 -> (trace "X" (let {__U03be_' = (trace "X" ((trace "X" (update_xi (trace "X" (eqVV)) (trace "X" (__U0393_1)) (trace "X" (__U03be_1)) (trace "X" (l)) (trace "X" ((trace "X" ((leaves (trace "X" (vars)))))))))))} in (trace "X" ((\ite -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((seqM (trace "X" ((trace "X" ((map (trace "X" ((\vt -> (trace "X" ((trace "X" (bindM (trace "X" (uniqMonad)) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_1)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((snd (trace "X" (vt))))))) (trace "X" (ite)))))))))) (trace "X" ((\tleaf -> (trace "X" ((trace "X" (bindM (trace "X" (uniqMonad)) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((mkWeakExprVar (trace "X" (mkWeakExprVar_)) (trace "X" (tleaf)))))))))) (trace "X" ((\v' -> (trace "X" ((trace "X" (returnM (trace "X" (uniqMonad)) (trace "X" (((,) (trace "X" ((trace "X" ((fst (trace "X" (vt))))))) (trace "X" (v')))))))))))))))))))))))))) (trace "X" ((trace "X" ((leaves (trace "X" (vars)))))))))))))))))))) (trace "X" ((\vars' -> (trace "X" (let {__U03c7_' = (trace "X" ((trace "X" (update_chi' (trace "X" (eqVV)) (trace "X" (__U03c7_)) (trace "X" (vars'))))))} in (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprLetRec2WeakExprLetRec (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_')) (trace "X" (l)) (trace "X" (__U03c7_')) (trace "X" (vars)) (trace "X" (x)) (trace "X" (ite))))))) (trace "X" ((\elrb' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_')) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_0)) (trace "X" (l))))) (trace "X" (__U03c7_')) (trace "X" (x0)) (trace "X" (ite))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WELetRec (trace "X" (elrb')) (trace "X" (e')))))))))))))))))))))))))))))))))))))}));
4026 exprLetRec2WeakExprLetRec __U0393_0 __U0394_0 __U03be_0 __U03c4_ __U03c7_ vars elrb ite =
4027 (trace "X" (case (trace "X" (elrb)) of {
4028 ELR_nil __U0393_1 __U0394_1 __U03be_1 l -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))));
4029 ELR_leaf __U0393_1 __U0394_1 __U03be_' cv v t e ->
4030 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((unsafeCoerce (trace "X" ((trace "X" ((typeToWeakType (trace "X" (mkWeakTypeVar_)) (trace "X" (__U0393_1)) (trace "X" (KindStar)) (trace "X" (t)) (trace "X" (ite)))))))))) (trace "X" ((\t' ->
4031 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprToWeakExpr0 (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_')) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (cv))))) (trace "X" (__U03c7_)) (trace "X" (e)) (trace "X" (ite))))))) (trace "X" ((\e' ->
4032 (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad)))))
4033 (trace "X" ((case (trace "X" ((trace "X" (__U03c7_ (trace "X" (v)))))) of {
4034 Error s -> (trace "X" ((\x -> (trace "X" (Error (trace "X" (s)))))));
4035 OK y -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (y))))))}))) (trace "X" ((\v' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (((,) (trace "X" (v')) (trace "X" (e'))))))))))))))))))))))))))))))))))));
4036 ELR_branch __U0393_1 __U0394_1 __U03be_1 l t1 t2 b1 b2 -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprLetRec2WeakExprLetRec (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" (l)) (trace "X" (__U03c7_)) (trace "X" (t1)) (trace "X" (b1)) (trace "X" (ite))))))) (trace "X" ((\b1' -> (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((trace "X" ((exprLetRec2WeakExprLetRec (trace "X" (__U0393_1)) (trace "X" (__U0394_1)) (trace "X" (__U03be_1)) (trace "X" (l)) (trace "X" (__U03c7_)) (trace "X" (t2)) (trace "X" (b2)) (trace "X" (ite))))))) (trace "X" ((\b2' -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((T_Branch (trace "X" (b1')) (trace "X" (b2')))))))))))))))))))))))}))}
4037 in exprToWeakExpr0))
4039 strongExprToWeakExpr :: WeakExprVar0 -> WeakExprVar0 -> (Unique.Unique -> Kind -> WeakTypeVar0) -> (Unique.Unique -> Kind -> WeakType -> WeakType -> WeakCoerVar0) -> (Unique.Unique -> WeakType -> WeakExprVar0) -> (EqDecidable a1) -> (ToString a1) -> UniqSupply.UniqSupply -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> LeveledHaskType -> (Expr a1) -> (InstantiatedTypeEnv WeakTypeVar0) -> OrError WeakExpr
4040 strongExprToWeakExpr hetmet_brak hetmet_esc mkWeakTypeVar_ mkWeakCoerVar_ mkWeakExprVar_ eqVV toStringVV us __U0393_0 __U0394_0 __U03be_0 __U03c4_ exp ite =
4041 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((exprToWeakExpr (trace "X" (hetmet_brak)) (trace "X" (hetmet_esc)) (trace "X" (mkWeakTypeVar_)) (trace "X" (mkWeakCoerVar_)) (trace "X" (mkWeakExprVar_)) (trace "X" (eqVV)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03c4_)) (trace "X" ((\v -> (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (toStringVV)) (trace "X" (v))))))))))))))))) (trace "X" (exp)) (trace "X" (ite)) (trace "X" (us))))))) (trace "X" ((\x -> (trace "X" (OK (trace "X" ((trace "X" ((snd (trace "X" (x))))))))))))))))
4043 fresh :: (FreshMonad a1) -> (([]) a1) -> FMT a1 (SigT a1 ())
4045 (trace "X" ((trace "X" (fMT_fresh (trace "X" (freshM))))))
4047 type FreshM vV x = FMT vV x
4049 freshMon :: (FreshMonad a1) -> Monad (FMT a1 ())
4051 (trace "X" ((trace "X" (fMT_Monad (trace "X" (freshM))))))
4053 type Judg2exprType vV = ()
4055 ileaf :: a1 -> (ITree a1 a2) -> a2
4057 (trace "X" (case (trace "X" (it)) of {
4058 INone -> (trace "X" (false_rect));
4059 ILeaf i x0 -> (trace "X" ((trace "X" (eq_rect (trace "X" (t)) (trace "X" ((\x1 -> (trace "X" (x1))))) (trace "X" (i)) (trace "X" (x0))))));
4060 IBranch it1 it2 x0 x1 -> (trace "X" ((trace "X" (false_rect (trace "X" (x0)) (trace "X" (x1))))))}))
4062 fresh_lemma' :: (EqDecidable a1) -> (FreshMonad a1) -> TypeEnv -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (a1 -> LeveledHaskType) -> HaskLevel -> FreshM a1 (Tree (Prelude.Maybe ((,) a1 HaskType)))
4063 fresh_lemma' eqdec_vv freshM __U0393_0 types vars __U03a3_ __U03be_0 lev =
4064 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a vars0 __U03a3_0 __U03be_1 lev0 _ ->
4065 (trace "X" (case (trace "X" (a)) of {
4066 Prelude.Just h -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((fresh (trace "X" (freshM)) (trace "X" ((trace "X" ((leaves (trace "X" (vars0)))))))))))) (trace "X" ((\vf -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((case (trace "X" (vf)) of {
4067 ExistT vf0 _ -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" (((,) (trace "X" (vf0)) (trace "X" (h))))))))))}))))))))))))));
4068 Prelude.Nothing -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))}))))) (trace "X" ((\types1 iHtypes1 types2 iHtypes2 vars0 __U03a3_0 __U03be_1 lev0 _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((iHtypes2 (trace "X" (vars0)) (trace "X" (__U03a3_0)) (trace "X" (__U03be_1)) (trace "X" (lev0)) (trace "X" (__))))))) (trace "X" ((\x2 -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((iHtypes1 (trace "X" ((T_Branch (trace "X" (vars0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (x2)))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev0))))))) (trace "X" (types2)))))))))) (trace "X" ((trace "X" ((update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_1)) (trace "X" (lev0)) (trace "X" ((trace "X" ((leaves (trace "X" (x2)))))))))))) (trace "X" (lev0)) (trace "X" (__))))))) (trace "X" ((\x1 -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((T_Branch (trace "X" (x1)) (trace "X" (x2)))))))))))))))))))))))))) (trace "X" (types)) (trace "X" (vars)) (trace "X" (__U03a3_)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (__))))))
4070 fresh_lemma :: (EqDecidable a1) -> (FreshMonad a1) -> TypeEnv -> (a1 -> LeveledHaskType) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskType -> HaskLevel -> FreshM a1 a1
4071 fresh_lemma eqdec_vv freshM __U0393_0 __U03be_0 vars __U03a3_ __U03a3_' lev =
4072 (trace "X" (let {q = (trace "X" ((trace "X" (fresh_lemma' (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (__U0393_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03a3_')))))))) (trace "X" (vars)) (trace "X" (__U03a3_)) (trace "X" (__U03be_0)) (trace "X" (lev))))))} in
4073 (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" (q)) (trace "X" ((\q' ->
4074 (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM)))))))
4075 (trace "X" ((case (trace "X" (q')) of {
4077 (trace "X" (case (trace "X" (o)) of {
4079 (trace "X" (case (trace "X" (p)) of {
4081 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (eqdec_vv)) (trace "X" (v)) (trace "X" (v))))))} in
4082 (trace "X" (case (trace "X" (s)) of {
4083 Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (__U03a3_')) (trace "X" ((\_ _ -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars))))))) (trace "X" ((\_ -> (trace "X" (v))))) (trace "X" (__U03a3_)) (trace "X" (__))))))))) (trace "X" (h)) (trace "X" (__)) (trace "X" (__))))));
4084 Prelude.False -> (trace "X" (Prelude.error "absurd case"))}))))}));
4085 Prelude.Nothing -> (trace "X" (false_rect))}));
4086 T_Branch varstypes1 varstypes2 -> (trace "X" (false_rect))}))))))))))))))))
4088 type Ujudg2exprType vV = (Tree (Prelude.Maybe vV)) -> () -> FreshM vV (ITree HaskType (Expr vV))
4090 urule2expr :: (EqDecidable a1) -> (FreshMonad a1) -> TypeEnv -> CoercionEnv -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe HaskType)) -> HaskLevel -> (Arrange LeveledHaskType) -> (a1 -> LeveledHaskType) -> (Ujudg2exprType a1) -> (Tree (Prelude.Maybe a1)) -> FreshM a1 (ITree HaskType (Expr a1))
4091 urule2expr eqdec_vv freshM __U0393_0 __U0394_0 h j t l r __U03be_0 x vars =
4092 (trace "X" ((trace "X" (let {
4093 urule2expr0 h0 j0 t0 l0 r0 __U03be_1 x0 =
4094 (trace "X" (case (trace "X" (r0)) of {
4095 RId a -> (trace "X" (x0));
4096 RCanL a -> (trace "X" ((\vars0 _ -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (vars0))))) (trace "X" (__)))))))));
4097 RCanR a -> (trace "X" ((\vars0 _ -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Branch (trace "X" (vars0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" (__)))))))));
4098 RuCanL a -> (trace "X" ((\vars0 _ ->
4099 (trace "X" (case (trace "X" (vars0)) of {
4100 T_Leaf o -> (trace "X" (false_rect));
4101 T_Branch vars1 vars2 -> (trace "X" ((trace "X" (x0 (trace "X" (vars2)) (trace "X" (__))))))})))));
4102 RuCanR a -> (trace "X" ((\vars0 _ ->
4103 (trace "X" (case (trace "X" (vars0)) of {
4104 T_Leaf o -> (trace "X" (false_rect));
4105 T_Branch vars1 vars2 -> (trace "X" ((trace "X" (x0 (trace "X" (vars1)) (trace "X" (__))))))})))));
4106 RAssoc a b c -> (trace "X" ((\vars0 _ ->
4107 (trace "X" (case (trace "X" (vars0)) of {
4108 T_Leaf o -> (trace "X" (false_rect));
4109 T_Branch vars1 vars2 ->
4110 (trace "X" (case (trace "X" (vars1)) of {
4111 T_Leaf o -> (trace "X" (false_rect));
4112 T_Branch vars1_1 vars1_2 -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Branch (trace "X" (vars1_1)) (trace "X" ((T_Branch (trace "X" (vars1_2)) (trace "X" (vars2)))))))) (trace "X" (__))))))}))})))));
4113 RCossa a b c -> (trace "X" ((\vars0 _ ->
4114 (trace "X" (case (trace "X" (vars0)) of {
4115 T_Leaf o -> (trace "X" (false_rect));
4116 T_Branch vars1 vars2 ->
4117 (trace "X" (case (trace "X" (vars2)) of {
4118 T_Leaf o -> (trace "X" (false_rect));
4119 T_Branch vars2_1 vars2_2 -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (vars1)) (trace "X" (vars2_1))))) (trace "X" (vars2_2))))) (trace "X" (__))))))}))})))));
4120 RExch a b -> (trace "X" ((\vars0 _ ->
4121 (trace "X" (case (trace "X" (vars0)) of {
4122 T_Leaf o -> (trace "X" (false_rect));
4123 T_Branch vars1 vars2 -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Branch (trace "X" (vars2)) (trace "X" (vars1))))) (trace "X" (__))))))})))));
4124 RWeak a -> (trace "X" ((\vars0 _ -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__)))))))));
4125 RCont a -> (trace "X" ((\vars0 _ -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Branch (trace "X" (vars0)) (trace "X" (vars0))))) (trace "X" (__)))))))));
4126 RLeft h1 c ctx r1 ->
4127 (trace "X" (let {e = (trace "X" ((trace "X" (urule2expr0 (trace "X" (h1)) (trace "X" (c)) (trace "X" (t0)) (trace "X" (l0)) (trace "X" (r1))))))} in
4128 (trace "X" ((\vars0 _ ->
4129 (trace "X" (case (trace "X" (vars0)) of {
4130 T_Leaf o -> (trace "X" (false_rect));
4131 T_Branch vars1 vars2 -> (trace "X" ((trace "X" (e (trace "X" (__U03be_1)) (trace "X" ((\vars3 _ -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Branch (trace "X" (vars1)) (trace "X" (vars3))))) (trace "X" (__))))))))) (trace "X" (vars2)) (trace "X" (__))))))})))))));
4132 RRight h1 c ctx r1 ->
4133 (trace "X" (let {e = (trace "X" ((trace "X" (urule2expr0 (trace "X" (h1)) (trace "X" (c)) (trace "X" (t0)) (trace "X" (l0)) (trace "X" (r1))))))} in
4134 (trace "X" ((\vars0 _ ->
4135 (trace "X" (case (trace "X" (vars0)) of {
4136 T_Leaf o -> (trace "X" (false_rect));
4137 T_Branch vars1 vars2 -> (trace "X" ((trace "X" (e (trace "X" (__U03be_1)) (trace "X" ((\vars3 _ -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Branch (trace "X" (vars3)) (trace "X" (vars2))))) (trace "X" (__))))))))) (trace "X" (vars1)) (trace "X" (__))))))})))))));
4138 RComp a b c f g -> (trace "X" (let {e1 = (trace "X" ((trace "X" (urule2expr0 (trace "X" (a)) (trace "X" (b)) (trace "X" (t0)) (trace "X" (l0)) (trace "X" (f))))))} in (trace "X" ((trace "X" (urule2expr0 (trace "X" (b)) (trace "X" (c)) (trace "X" (t0)) (trace "X" (l0)) (trace "X" (g)) (trace "X" (__U03be_1)) (trace "X" ((trace "X" ((e1 (trace "X" (__U03be_1)) (trace "X" (x0)))))))))))))}))}
4139 in urule2expr0 (trace "X" (h)) (trace "X" (j)) (trace "X" (t)) (trace "X" (l)) (trace "X" (r)) (trace "X" (__U03be_0)) (trace "X" (x)) (trace "X" (vars)) (trace "X" (__))))))
4141 letrec_helper :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> HaskLevel -> (Tree (Prelude.Maybe ((,) a1 HaskType))) -> (a1 -> LeveledHaskType) -> (ITree HaskType (Expr a1)) -> ELetRecBindings a1
4142 letrec_helper eqdec_vv __U0393_0 __U0394_0 l varstypes __U03be_' x =
4143 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a x0 ->
4144 (trace "X" (case (trace "X" (a)) of {
4146 (trace "X" (case (trace "X" (p)) of {
4148 (trace "X" (let {x1 = (trace "X" ((trace "X" (ileaf (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" ((trace "X" ((fst (trace "X" (((,) (trace "X" (v)) (trace "X" (h)))))))))))))))))))))) (trace "X" (x0))))))} in
4149 (trace "X" (ELR_leaf (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_')) (trace "X" (l)) (trace "X" (v)) (trace "X" (h))
4150 (trace "X" ((let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((haskTypeEqDecidable (trace "X" (__U0393_0)) (trace "X" (KindStar))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" (v)))))))))))))) (trace "X" (h))))))} in
4151 (trace "X" (case (trace "X" (s)) of {
4153 (trace "X" ((trace "X" (eq_rect (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" (v))))))))))))))
4154 (trace "X" ((let {l0 = (trace "X" ((trace "X" (__U03be_' (trace "X" (v))))))} in
4155 (trace "X" (case (trace "X" (l0)) of {
4156 MkLeveledHaskType h0 h1 ->
4157 (trace "X" (let {s0 = (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((haskLevelEqDecidable (trace "X" (__U0393_0))))))) (trace "X" (h1)) (trace "X" (l))))))} in
4158 (trace "X" (case (trace "X" (s0)) of {
4159 Prelude.True -> (trace "X" ((trace "X" (eq_rect (trace "X" (h1)) (trace "X" ((trace "X" ((eq_rect_r (trace "X" (l)) (trace "X" ((\_ -> (trace "X" (x1))))) (trace "X" (h1)) (trace "X" (__))))))) (trace "X" (l))))));
4160 Prelude.False -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))))}))))) (trace "X" (h))))));
4161 Prelude.False -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))})))))))))}));
4162 Prelude.Nothing -> (trace "X" (ELR_nil (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_')) (trace "X" (l))))}))))) (trace "X" ((\varstypes1 iHvarstypes1 varstypes2 iHvarstypes2 x0 -> (trace "X" (ELR_branch (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_')) (trace "X" (l)) (trace "X" (varstypes1)) (trace "X" (varstypes2))
4163 (trace "X" ((trace "X" ((iHvarstypes1
4164 (trace "X" ((case (trace "X" (x0)) of {
4165 INone -> (trace "X" (false_rect));
4166 ILeaf i x1 -> (trace "X" ((trace "X" (false_rect (trace "X" (x1))))));
4167 IBranch it1 it2 x1 x2 -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x3 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" ((trace "X" ((fst (trace "X" (x3))))))))))))))))))) (trace "X" (varstypes1))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x3 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" ((trace "X" ((fst (trace "X" (x3))))))))))))))))))) (trace "X" (varstypes2))))))) (trace "X" ((\x3 x4 -> (trace "X" (x3))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__)) (trace "X" (x1)) (trace "X" (x2))))))}))))))))
4168 (trace "X" ((trace "X" ((iHvarstypes2
4169 (trace "X" ((case (trace "X" (x0)) of {
4170 INone -> (trace "X" (false_rect));
4171 ILeaf i x1 -> (trace "X" ((trace "X" (false_rect (trace "X" (x1))))));
4172 IBranch it1 it2 x1 x2 -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x3 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" ((trace "X" ((fst (trace "X" (x3))))))))))))))))))) (trace "X" (varstypes1))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x3 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_' (trace "X" ((trace "X" ((fst (trace "X" (x3))))))))))))))))))) (trace "X" (varstypes2))))))) (trace "X" ((\x3 x4 -> (trace "X" (x4))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__)) (trace "X" (x1)) (trace "X" (x2))))))}))))))))))))) (trace "X" (varstypes)) (trace "X" (x))))))
4174 unindex_tree :: (Tree (Prelude.Maybe a1)) -> (ITree a1 a2) -> Tree (Prelude.Maybe (SigT a1 a2))
4176 (trace "X" (case (trace "X" (it)) of {
4177 INone -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4178 ILeaf x y -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((ExistT (trace "X" (x)) (trace "X" (y))))))))));
4179 IBranch it1 it2 b1 b2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((unindex_tree (trace "X" (it1)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((unindex_tree (trace "X" (it2)) (trace "X" (b2)))))))))}))
4181 fix_indexing :: (Tree (Prelude.Maybe (SigT a1 a2))) -> (ITree (SigT a1 a2) a3) -> ITree a1 a3
4183 (trace "X" ((trace "X" (iTree_rect (trace "X" (INone)) (trace "X" ((\i f -> (trace "X" (ILeaf (trace "X" ((trace "X" ((projT1 (trace "X" (i))))))) (trace "X" (f))))))) (trace "X" ((\it1 it2 it3 iHit1 it4 iHit2 -> (trace "X" (IBranch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (projT1)) (trace "X" (it1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (projT1)) (trace "X" (it2))))))) (trace "X" (iHit1)) (trace "X" (iHit2))))))) (trace "X" (t)) (trace "X" (it))))))
4185 fix2 :: (FreshMonad a1) -> (Tree (Prelude.Maybe (SigT a2 (FreshM a1 a3)))) -> Tree (Prelude.Maybe (FreshM a1 (SigT a2 a3)))
4187 (trace "X" (case (trace "X" (t)) of {
4189 (trace "X" (case (trace "X" (y)) of {
4190 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((case (trace "X" (x)) of {
4191 ExistT x0 fx -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" (fx)) (trace "X" ((\fx' -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ExistT (trace "X" (x0)) (trace "X" (fx'))))))))))))))))}))))))));
4192 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4193 T_Branch b1 b2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((fix2 (trace "X" (freshM)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((fix2 (trace "X" (freshM)) (trace "X" (b2)))))))))}))
4195 case_helper :: (EqDecidable a1) -> (FreshMonad a1) -> TyCon.TyCon -> TypeEnv -> (([]) HaskCoercionKind) -> HaskLevel -> HaskType -> (IList Kind HaskType) -> (a1 -> LeveledHaskType) -> (SigT StrongAltCon ProofCaseBranch) -> ((,) (Judg2exprType a1) (SigT (Tree (Prelude.Maybe a1)) ())) -> FreshM a1 (SigT (StrongCaseBranchWithVVs a1) (Expr a1))
4196 case_helper eqdec_vv freshM tc __U0393_0 __U0394_0 lev tbranches avars __U03be_0 pcb x =
4197 (trace "X" (case (trace "X" (pcb)) of {
4199 (trace "X" (case (trace "X" (x)) of {
4200 (,) f s -> (trace "X" (case (trace "X" (s)) of {
4201 ExistT vars _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((fresh_lemma' (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" ((trace "X" ((sac_gamma (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_types (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (avars))))))))))))))))) (trace "X" (vars)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar))))))) (trace "X" ((trace "X" ((pcb_freevars (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev)) (trace "X" (tbranches)) (trace "X" (avars)) (trace "X" (sac)) (trace "X" (pcb0)))))))))))) (trace "X" ((\x0 -> (trace "X" ((trace "X" (weakLT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x0)))))))))))))) (trace "X" ((trace "X" ((weakL' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (lev)))))))))))) (trace "X" ((\localvars -> (trace "X" (let {localvars' = (trace "X" ((trace "X" (mapOptionTree (trace "X" (fst)) (trace "X" (localvars))))))} in (trace "X" (let {localvars'' = (trace "X" ((trace "X" (list2vec (trace "X" ((trace "X" ((leaves (trace "X" (localvars')))))))))))} in (trace "X" (let {localvars''0 = (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((length (trace "X" ((trace "X" ((leaves (trace "X" (localvars')))))))))))) (trace "X" (localvars'')) (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))} in (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (f)) (trace "X" ((trace "X" ((scbwv_xi (trace "X" (eqdec_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (avars)) (trace "X" (sac)) (trace "X" (localvars''0)) (trace "X" (__U03be_0)) (trace "X" (lev))))))) (trace "X" ((T_Branch (trace "X" (vars)) (trace "X" ((trace "X" ((unleaves (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExprVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((scbwv_exprvars (trace "X" (eqdec_vv)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (avars)) (trace "X" (sac)) (trace "X" (localvars''0)))))))))))))))))))) (trace "X" (__))))))) (trace "X" ((\q -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ExistT (trace "X" (localvars''0)) (trace "X" ((trace "X" ((ileaf (trace "X" ((\_ -> (trace "X" ((trace "X" (weakT' (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((vec2list (trace "X" ((trace "X" ((sac_numExTyVars (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac))))))) (trace "X" ((trace "X" ((sac_ekinds (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)))))))))))) (trace "X" (KindStar)) (trace "X" (tbranches))))))))) (trace "X" (q))))))))))))))))))))))))))))))))))}))}))}))
4203 gather_branch_variables :: (EqDecidable a1) -> (FreshMonad a1) -> TypeEnv -> (([]) HaskCoercionKind) -> (a1 -> LeveledHaskType) -> TyCon.TyCon -> (IList Kind HaskType) -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe (SigT StrongAltCon ProofCaseBranch))) -> (Tree (Prelude.Maybe a1)) -> (ITree Judg (Judg2exprType a1)) -> ITree (SigT StrongAltCon ProofCaseBranch) ((,) (Judg2exprType a1) (SigT (Tree (Prelude.Maybe a1)) ()))
4204 gather_branch_variables eqdec_vv freshM __U0393_0 __U0394_0 __U03be_0 tc avars tbranches lev alts vars x =
4205 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a vars0 _ source ->
4206 (trace "X" (case (trace "X" (a)) of {
4207 Prelude.Just s -> (trace "X" (let {source0 = (trace "X" ((trace "X" (ileaf (trace "X" ((trace "X" ((pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev)) (trace "X" (tbranches)) (trace "X" (avars)) (trace "X" ((trace "X" ((projT1 (trace "X" (s))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (s)))))))))))) (trace "X" (source))))))} in (trace "X" (ILeaf (trace "X" (s)) (trace "X" (((,) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_1 vars1 _ -> (trace "X" ((trace "X" (unsafeCoerce (trace "X" (source0)) (trace "X" (__U03be_1)) (trace "X" (vars1)) (trace "X" (__)))))))))))) (trace "X" ((ExistT (trace "X" (vars0)) (trace "X" (__))))))))))));
4208 Prelude.Nothing -> (trace "X" (INone))}))))) (trace "X" ((\alts1 iHalts1 alts2 iHalts2 vars0 _ source ->
4209 (trace "X" (case (trace "X" (vars0)) of {
4210 T_Leaf o -> (trace "X" (false_rect));
4211 T_Branch vars1 vars2 ->
4212 (trace "X" (case (trace "X" (source)) of {
4213 INone -> (trace "X" (false_rect));
4214 ILeaf i x0 -> (trace "X" ((trace "X" (false_rect (trace "X" (x0))))));
4215 IBranch it1 it2 x0 x1 -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev)) (trace "X" (tbranches)) (trace "X" (avars)) (trace "X" ((trace "X" ((projT1 (trace "X" (x2))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x2)))))))))))))) (trace "X" (alts1))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev)) (trace "X" (tbranches)) (trace "X" (avars)) (trace "X" ((trace "X" ((projT1 (trace "X" (x2))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x2)))))))))))))) (trace "X" (alts2))))))) (trace "X" ((\x2 x3 -> (trace "X" (IBranch (trace "X" (alts1)) (trace "X" (alts2)) (trace "X" ((trace "X" ((iHalts1 (trace "X" (vars1)) (trace "X" (__)) (trace "X" (x2))))))) (trace "X" ((trace "X" ((iHalts2 (trace "X" (vars2)) (trace "X" (__)) (trace "X" (x3)))))))))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__)) (trace "X" (x0)) (trace "X" (x1))))))}))}))))) (trace "X" (alts)) (trace "X" (vars)) (trace "X" (__)) (trace "X" (x))))))
4217 rule2expr :: (EqDecidable a1) -> (FreshMonad a1) -> (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> Rule -> (ITree Judg (Judg2exprType a1)) -> ITree Judg (Judg2exprType a1)
4218 rule2expr eqdec_vv freshM h j r x_ =
4219 (trace "X" (case (trace "X" (r)) of {
4220 RArrange a b c d e l r0 -> (trace "X" (let {x_0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (a)) (trace "X" (b)) (trace "X" (c)) (trace "X" (e)) (trace "X" (l))))) (trace "X" (x_))))))} in (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (a)) (trace "X" (b)) (trace "X" (d)) (trace "X" (e)) (trace "X" (l))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" (let {x = (trace "X" (\vars0 -> (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x_0)) (trace "X" (__U03be_0)) (trace "X" (vars0)) (trace "X" (__))))))))} in (trace "X" ((trace "X" (urule2expr (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (a)) (trace "X" (b)) (trace "X" (c)) (trace "X" (d)) (trace "X" (e)) (trace "X" (l)) (trace "X" (r0)) (trace "X" (__U03be_0)) (trace "X" ((\vars0 _ -> (trace "X" ((trace "X" (x (trace "X" (vars0))))))))) (trace "X" (vars))))))))))))))))));
4221 RBrak __U03a3_ a b c n m -> (trace "X" (let {x_0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U03a3_)) (trace "X" (a)) (trace "X" (n)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (b)))))))) (trace "X" (((:) (trace "X" (c)) (trace "X" (m)))))))) (trace "X" (x_))))))} in (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U03a3_)) (trace "X" (a)) (trace "X" (n)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U03a3_)) (trace "X" (c)) (trace "X" (b))))))))))))))) (trace "X" (m))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (x_0)) (trace "X" (__U03be_0)) (trace "X" (vars)) (trace "X" (__))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U03a3_)) (trace "X" (c)) (trace "X" (b))))))))) (trace "X" ((EBrak (trace "X" (__U03a3_)) (trace "X" (a)) (trace "X" (__U03be_0)) (trace "X" (c)) (trace "X" (b)) (trace "X" (m)) (trace "X" ((trace "X" ((ileaf (trace "X" (b)) (trace "X" (x))))))))))))))))))))))))))))))))));
4222 REsc __U03a3_ a b c n m -> (trace "X" (let {x_0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U03a3_)) (trace "X" (a)) (trace "X" (n)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U03a3_)) (trace "X" (c)) (trace "X" (b))))))))))))))) (trace "X" (m))))) (trace "X" (x_))))))} in (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U03a3_)) (trace "X" (a)) (trace "X" (n)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (b)))))))) (trace "X" (((:) (trace "X" (c)) (trace "X" (m)))))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (x_0)) (trace "X" (__U03be_0)) (trace "X" (vars)) (trace "X" (__))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" (b)) (trace "X" ((EEsc (trace "X" (__U03a3_)) (trace "X" (a)) (trace "X" (__U03be_0)) (trace "X" (c)) (trace "X" (b)) (trace "X" (m)) (trace "X" ((trace "X" ((ileaf (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U03a3_)) (trace "X" (c)) (trace "X" (b))))))))) (trace "X" (x))))))))))))))))))))))))))))))))));
4223 RNote __U0393_0 __U0394_0 __U03a3_ __U03c4_ l n -> (trace "X" (let {x_0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (l))))) (trace "X" (x_))))))} in (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (l))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (x_0)) (trace "X" (__U03be_0)) (trace "X" (vars)) (trace "X" (__))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" (__U03c4_)) (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (l))))) (trace "X" (n)) (trace "X" ((trace "X" ((ileaf (trace "X" (__U03c4_)) (trace "X" (x))))))))))))))))))))))))))))))))));
4224 RLit __U0393_0 __U0394_0 l l0 -> (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (l0))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))) (trace "X" ((ELit (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (l0))))))))))))))))))));
4225 RVar __U0393_0 __U0394_0 __U03c3_ p -> (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (p))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (p)))))
4226 (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ ->
4227 (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" (__U03c3_))
4228 (trace "X" ((case (trace "X" (vars)) of {
4230 (trace "X" (case (trace "X" (o)) of {
4231 Prelude.Just v -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((__U03be_0 (trace "X" (v))))))) (trace "X" ((EVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (v))))) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (p)))))))));
4232 Prelude.Nothing -> (trace "X" (false_rect))}));
4233 T_Branch vars1 vars2 -> (trace "X" (false_rect))}))))))))))))))))));
4234 RGlobal __U0393_0 __U0394_0 __U03c3_ l wev -> (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (__U03c3_))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))) (trace "X" ((EGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (wev)) (trace "X" (__U03c3_))))))))))))))))))));
4235 RLam __U0393_0 __U0394_0 __U03a3_ tx te x -> (trace "X" (let {x_0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (x)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (te)))))))) (trace "X" (x))))) (trace "X" (x_))))))} in (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (x))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((fresh_lemma (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (vars)) (trace "X" (__U03a3_)) (trace "X" (tx)) (trace "X" (x))))))) (trace "X" ((\pf -> (trace "X" (let {__U03be_' = (trace "X" ((trace "X" (update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (x)) (trace "X" (((:) (trace "X" (((,) (trace "X" (pf)) (trace "X" (tx))))) (trace "X" (([]))))))))))} in (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (x_0)) (trace "X" (__U03be_')) (trace "X" ((T_Branch (trace "X" (vars)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (pf))))))))))) (trace "X" (__))))))) (trace "X" ((\hyp -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" ((ELam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (tx)) (trace "X" (te)) (trace "X" (x)) (trace "X" (pf)) (trace "X" ((trace "X" ((ileaf (trace "X" (te)) (trace "X" (hyp)))))))))))))))))))))))))))))))))))))))))));
4236 RCast __U0393_0 __U0394_0 __U03a3_ __U03c3_ __U03c4_ __U03b3_ -> (trace "X" (let {x_0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (__U03b3_))))) (trace "X" (x_))))))} in (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (__U03b3_))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (x_0)) (trace "X" (__U03be_0)) (trace "X" (vars)) (trace "X" (__))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" (__U03c4_)) (trace "X" ((ECast (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_)) (trace "X" (__U03b3_)) (trace "X" ((trace "X" ((ileaf (trace "X" (__U03c3_)) (trace "X" (x))))))))))))))))))))))))))))))))));
4237 RJoin __U0393_0 p lri m x q l -> (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" ((T_Branch (trace "X" (lri)) (trace "X" (m))))) (trace "X" ((T_Branch (trace "X" (x)) (trace "X" (q))))) (trace "X" (l)))))
4238 (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ ->
4239 (trace "X" (case (trace "X" (x_)) of {
4240 INone -> (trace "X" (false_rect));
4241 ILeaf i x0 -> (trace "X" ((trace "X" (false_rect (trace "X" (x0))))));
4242 IBranch it1 it2 x0 x1 ->
4244 h0 = (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (lri)) (trace "X" (x)) (trace "X" (l))))))))))) (trace "X" ((\_ ->
4245 (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (m)) (trace "X" (q)) (trace "X" (l))))))))))) (trace "X" ((\x2 x3 ->
4246 (trace "X" (let {x4 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (lri)) (trace "X" (x)) (trace "X" (l))))) (trace "X" (x2))))))} in
4247 (trace "X" (let {x5 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (m)) (trace "X" (q)) (trace "X" (l))))) (trace "X" (x3))))))} in
4248 (trace "X" (case (trace "X" (vars)) of {
4249 T_Leaf o -> (trace "X" (false_rect));
4250 T_Branch vars1 vars2 -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((x4 (trace "X" (__U03be_0)) (trace "X" (vars1)) (trace "X" (__))))))) (trace "X" ((\x' -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((x5 (trace "X" (__U03be_0)) (trace "X" (vars2)) (trace "X" (__))))))) (trace "X" ((\x0' -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((IBranch (trace "X" (x)) (trace "X" (q)) (trace "X" (x')) (trace "X" (x0')))))))))))))))))))))))}))))))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__))))))}
4252 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (h0)) (trace "X" (x0)) (trace "X" (x1))))))))}))))))))));
4253 RApp __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ tx te p -> (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (te)))))))) (trace "X" (p)))))
4254 (trace "X" ((case (trace "X" (x_)) of {
4255 INone -> (trace "X" (false_rect));
4256 ILeaf i x -> (trace "X" ((trace "X" (false_rect (trace "X" (x))))));
4257 IBranch it1 it2 x x0 ->
4259 h0 = (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (p))))))))))) (trace "X" ((\_ ->
4260 (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (p))))))))))) (trace "X" ((\x1 x2 ->
4261 (trace "X" (case (trace "X" (x1)) of {
4262 INone -> (trace "X" (false_rect));
4264 (trace "X" ((trace "X" (eq_rect (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (p))))) (trace "X" ((\x4 ->
4265 (trace "X" (case (trace "X" (x2)) of {
4266 INone -> (trace "X" (false_rect));
4268 (trace "X" ((trace "X" (eq_rect (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (p))))) (trace "X" ((\x6 __U03be_0 vars _ ->
4269 (trace "X" (case (trace "X" (vars)) of {
4270 T_Leaf o -> (trace "X" (false_rect));
4271 T_Branch vars1 vars2 -> (trace "X" (let {q1 = (trace "X" ((trace "X" (x4 (trace "X" (__U03be_0)) (trace "X" (vars1)) (trace "X" (__))))))} in (trace "X" (let {q2 = (trace "X" ((trace "X" (x6 (trace "X" (__U03be_0)) (trace "X" (vars2)) (trace "X" (__))))))} in (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" (q1)) (trace "X" ((\q1' -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" (q2)) (trace "X" ((\q2' -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" (te)) (trace "X" ((let {q1'0 = (trace "X" ((trace "X" (ileaf (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (q1'))))))} in (trace "X" (let {q2'0 = (trace "X" ((trace "X" (ileaf (trace "X" (tx)) (trace "X" (q2'))))))} in (trace "X" (EApp (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (te)) (trace "X" (tx)) (trace "X" (p)) (trace "X" (q1'0)) (trace "X" (q2'0))))))))))))))))))))))))))))))))))}))))) (trace "X" (i0)) (trace "X" (x5))))));
4272 IBranch it0 it3 x5 x6 -> (trace "X" ((trace "X" (false_rect (trace "X" (x5)) (trace "X" (x6))))))}))))) (trace "X" (i)) (trace "X" (x3))))));
4273 IBranch it0 it3 x3 x4 -> (trace "X" ((trace "X" (false_rect (trace "X" (x3)) (trace "X" (x4))))))}))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__))))))}
4275 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (h0)) (trace "X" (x)) (trace "X" (x0))))))))})))));
4276 RLet __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03c3___U2081_ __U03c3___U2082_ p -> (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (p)))))
4277 (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ ->
4278 (trace "X" (case (trace "X" (vars)) of {
4279 T_Leaf o -> (trace "X" (false_rect));
4280 T_Branch vars1 vars2 ->
4281 (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((fresh_lemma (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (vars2)) (trace "X" (__U03a3___U2082_)) (trace "X" (__U03c3___U2081_)) (trace "X" (p))))))) (trace "X" ((\pf ->
4282 (trace "X" (let {__U03be_' = (trace "X" ((trace "X" (update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (p)) (trace "X" (((:) (trace "X" (((,) (trace "X" (pf)) (trace "X" (__U03c3___U2081_))))) (trace "X" (([]))))))))))} in
4283 (trace "X" (case (trace "X" (x_)) of {
4284 INone -> (trace "X" (false_rect));
4285 ILeaf i x -> (trace "X" ((trace "X" (false_rect (trace "X" (x))))));
4286 IBranch it1 it2 x x0 -> (trace "X" (let {h0 = (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (p))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (p))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (p))))))))))) (trace "X" ((\x1 x2 -> (trace "X" (let {x3 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (p))))) (trace "X" (x1))))))} in (trace "X" (let {x4 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (p))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (p))))) (trace "X" (x2))))))} in (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((x3 (trace "X" (__U03be_0)) (trace "X" (vars1)) (trace "X" (__))))))) (trace "X" ((\x0' -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((x4 (trace "X" (__U03be_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (pf)))))))) (trace "X" (vars2))))) (trace "X" (__))))))) (trace "X" ((\x1' -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" (__U03c3___U2082_)) (trace "X" ((let {x1'0 = (trace "X" ((trace "X" (ileaf (trace "X" (__U03c3___U2082_)) (trace "X" (x1'))))))} in (trace "X" (let {x0'0 = (trace "X" ((trace "X" (ileaf (trace "X" (__U03c3___U2081_)) (trace "X" (x0'))))))} in (trace "X" (ELet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_)) (trace "X" (p)) (trace "X" (pf)) (trace "X" (x0'0)) (trace "X" (x1'0))))))))))))))))))))))))))))))))))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__))))))} in (trace "X" ((trace "X" (unsafeCoerce (trace "X" (h0)) (trace "X" (x)) (trace "X" (x0))))))))})))))))))))}))))))))));
4287 RWhere __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03a3___U2083_ __U03c3___U2081_ __U03c3___U2082_ p -> (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (p)))))
4288 (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ ->
4289 (trace "X" (case (trace "X" (vars)) of {
4290 T_Leaf o -> (trace "X" (false_rect));
4291 T_Branch vars1 vars2 ->
4292 (trace "X" (case (trace "X" (vars2)) of {
4293 T_Leaf o -> (trace "X" (false_rect));
4294 T_Branch vars2_1 vars2_2 ->
4296 h0 = (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars2_2))))))) (trace "X" ((\x_0 _ _ ->
4297 (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars2_1))))))) (trace "X" ((\x_1 _ ->
4298 (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars1))))))) (trace "X" ((\_ x_2 _ ->
4299 (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((fresh_lemma (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" ((T_Branch (trace "X" (vars1)) (trace "X" (vars2_2))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars2_2)))))))))) (trace "X" (__U03c3___U2081_)) (trace "X" (p))))))) (trace "X" ((\pf ->
4300 (trace "X" (let {__U03be_' = (trace "X" ((trace "X" (update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (p)) (trace "X" (((:) (trace "X" (((,) (trace "X" (pf)) (trace "X" (__U03c3___U2081_))))) (trace "X" (([]))))))))))} in
4301 (trace "X" (case (trace "X" (x_2)) of {
4302 INone -> (trace "X" (false_rect));
4303 ILeaf i x -> (trace "X" ((trace "X" (false_rect (trace "X" (x))))));
4304 IBranch it1 it2 x x0 -> (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars1))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (p))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars2_2))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (p))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars2_1))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (p))))))))))) (trace "X" ((\x1 x2 -> (trace "X" (let {x3 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars1))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (p))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars2_2))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (p))))) (trace "X" (x1))))))} in (trace "X" (let {x4 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars2_1))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (p))))) (trace "X" (x2))))))} in (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((x3 (trace "X" (__U03be_')) (trace "X" ((T_Branch (trace "X" (vars1)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (pf)))))))) (trace "X" (vars2_2)))))))) (trace "X" (__))))))) (trace "X" ((\x0' -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((x4 (trace "X" (__U03be_0)) (trace "X" (vars2_1)) (trace "X" (__))))))) (trace "X" ((\x1' -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" (__U03c3___U2082_)) (trace "X" ((let {x0'0 = (trace "X" ((trace "X" (ileaf (trace "X" (__U03c3___U2082_)) (trace "X" (x0'))))))} in (trace "X" (let {x1'0 = (trace "X" ((trace "X" (ileaf (trace "X" (__U03c3___U2081_)) (trace "X" (x1'))))))} in (trace "X" (ELet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_)) (trace "X" (p)) (trace "X" (pf)) (trace "X" (x1'0)) (trace "X" (x0'0))))))))))))))))))))))))))))))))))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__)) (trace "X" (x)) (trace "X" (x0))))))})))))))))))))) (trace "X" (__U03a3___U2081_)) (trace "X" (__)) (trace "X" (x_1)) (trace "X" (__))))))))) (trace "X" (__U03a3___U2082_)) (trace "X" (x_0)) (trace "X" (__))))))))) (trace "X" (__U03a3___U2083_))))))}
4306 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (h0)) (trace "X" (x_)) (trace "X" (__)) (trace "X" (__))))))))}))}))))))))));
4307 RVoid __U0393_0 __U0394_0 l -> (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (l))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" (INone))))))))))))));
4308 RAppT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ __U03c4_ y -> (trace "X" (let {x_0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))))))))) (trace "X" (y))))) (trace "X" (x_))))))} in (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (substT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_))))))))))))))) (trace "X" (y))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (x_0)) (trace "X" (__U03be_0)) (trace "X" (vars)) (trace "X" (__))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" ((\_ -> (trace "X" ((trace "X" (substT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_))))))))) (trace "X" ((ETyApp (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_)) (trace "X" (__U03be_0)) (trace "X" (y)) (trace "X" ((trace "X" ((ileaf (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (x))))))))))))))))))))))))))))))))));
4309 RAbsT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ a -> (trace "X" (let {x_0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (a)))))))))) (trace "X" (x_))))))} in (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))))))))) (trace "X" (a))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (x_0)) (trace "X" ((\x -> (trace "X" ((trace "X" (weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03be_0 (trace "X" (x)))))))))))))) (trace "X" (vars)) (trace "X" (__))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" ((let {x0 = (trace "X" ((trace "X" (ileaf (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))) (trace "X" (x))))))} in (trace "X" (ETyLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (a)) (trace "X" (x0)))))))))))))))))))))))))))))));
4310 RAppCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3___U2081_ __U03c3___U2082_ __U03c3_ l -> (trace "X" (let {x_0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (l))))) (trace "X" (x_))))))} in (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (l))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (x_0)) (trace "X" (__U03be_0)) (trace "X" (vars)) (trace "X" (__))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" (__U03c3_)) (trace "X" ((ECoApp (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_)) (trace "X" (__U03c3_)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" ((trace "X" ((ileaf (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (x))))))))))))))))))))))))))))))))));
4311 RAbsCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ __U03c3___U2081_ __U03c3___U2082_ y -> (trace "X" (let {x_0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (__U03c3___U2081_))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (y))))) (trace "X" (x_))))))} in (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (y))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (x_0)) (trace "X" (__U03be_0)) (trace "X" (vars)) (trace "X" (__))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" ((ECoLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2082_)) (trace "X" (__U03c3_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03be_0)) (trace "X" (y)) (trace "X" ((trace "X" ((ileaf (trace "X" (__U03c3___U2082_)) (trace "X" (x))))))))))))))))))))))))))))))))));
4312 RLetRec __U0393_0 __U0394_0 lri x y t ->
4313 (trace "X" (let {x_0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (lri)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (t))))))) (trace "X" (y)))))))))) (trace "X" ((T_Branch (trace "X" (y)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x))))))))))) (trace "X" (t))))) (trace "X" (x_))))))} in
4314 (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lri)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (t)))))
4315 (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ ->
4316 (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((fresh_lemma' (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (__U0393_0)) (trace "X" (y)) (trace "X" (vars)) (trace "X" (lri)) (trace "X" (__U03be_0)) (trace "X" (t))))))) (trace "X" ((\__U03be_vars ->
4317 (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (x_0)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((trace "X" ((leaves (trace "X" (__U03be_vars)))))))))))) (trace "X" ((T_Branch (trace "X" (vars)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (__U03be_vars)))))))))) (trace "X" (__))))))) (trace "X" ((\x0 ->
4318 (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" (x))
4319 (trace "X" ((case (trace "X" (x0)) of {
4320 INone -> (trace "X" (false_rect));
4321 ILeaf i x1 -> (trace "X" ((trace "X" (false_rect (trace "X" (x1))))));
4322 IBranch it1 it2 x1 x2 -> (trace "X" ((trace "X" (eq_rect (trace "X" (y)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" ((\x3 x4 -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0)) (trace "X" (vars))))))) (trace "X" ((\_ -> (trace "X" (ELetRec (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" (x)) (trace "X" (__U03be_vars)) (trace "X" ((trace "X" ((letrec_helper (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (t)) (trace "X" (__U03be_vars)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((trace "X" ((leaves (trace "X" (__U03be_vars)))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x5 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x5))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x5 -> (trace "X" ((trace "X" (update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((trace "X" ((leaves (trace "X" (__U03be_vars))))))) (trace "X" ((trace "X" ((fst (trace "X" (x5)))))))))))))) (trace "X" (__U03be_vars)))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((trace "X" ((leaves (trace "X" (__U03be_vars)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (__U03be_vars)))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (t))))))) (trace "X" (y))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" (y)) (trace "X" (x3)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x5 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x5))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (t))))))) (trace "X" (y))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((trace "X" ((leaves (trace "X" (__U03be_vars)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (__U03be_vars))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x5 -> (trace "X" ((trace "X" (update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((trace "X" ((leaves (trace "X" (__U03be_vars))))))) (trace "X" ((trace "X" ((fst (trace "X" (x5)))))))))))))) (trace "X" (__U03be_vars)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x5 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (t)) (trace "X" ((trace "X" ((leaves (trace "X" (__U03be_vars))))))) (trace "X" ((trace "X" ((fst (trace "X" (x5))))))))))))))))))) (trace "X" (__U03be_vars))))))))))))))))) (trace "X" ((trace "X" ((ileaf (trace "X" (x)) (trace "X" (x4)))))))))))) (trace "X" (lri)) (trace "X" (__))))))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__)) (trace "X" (x1)) (trace "X" (x2))))))}))))))))))))))))))))))))))))))))));
4323 RCase __U0393_0 __U0394_0 lev tc __U03a3_ avars tbranches alts -> (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((\x -> (trace "X" ((trace "X" (pcb_freevars (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev)) (trace "X" (tbranches)) (trace "X" (avars)) (trace "X" ((trace "X" ((projT1 (trace "X" (x))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x)))))))))))))) (trace "X" (alts))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tbranches)))))))) (trace "X" (lev)))))
4324 (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ ->
4325 (trace "X" (case (trace "X" (x_)) of {
4326 INone -> (trace "X" (false_rect));
4327 ILeaf i x -> (trace "X" ((trace "X" (false_rect (trace "X" (x))))));
4328 IBranch it1 it2 x x0 ->
4330 h0 = (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 -> (trace "X" ((trace "X" (pcb_judg (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev)) (trace "X" (tbranches)) (trace "X" (avars)) (trace "X" ((trace "X" ((projT1 (trace "X" (x1))))))) (trace "X" ((trace "X" ((projT2 (trace "X" (x1)))))))))))))) (trace "X" (alts))))))) (trace "X" ((\_ ->
4331 (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (avars))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((\x1 x2 ->
4332 (trace "X" (let {x3 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (avars))))))))))))))) (trace "X" (lev))))) (trace "X" (x2))))))} in
4333 (trace "X" (case (trace "X" (vars)) of {
4334 T_Leaf o -> (trace "X" (false_rect));
4335 T_Branch all_freevars1 all_freevars2 -> (trace "X" (let {q = (trace "X" ((trace "X" (gather_branch_variables (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (tc)) (trace "X" (avars)) (trace "X" (tbranches)) (trace "X" (lev)) (trace "X" (alts)) (trace "X" (all_freevars1)) (trace "X" (x1))))))} in (trace "X" (let {alts_exprs' = (trace "X" ((trace "X" (itmap (trace "X" (alts)) (trace "X" ((\pcb alt_expr -> (trace "X" ((trace "X" (case_helper (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (tc)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev)) (trace "X" (tbranches)) (trace "X" (avars)) (trace "X" (__U03be_0)) (trace "X" (pcb)) (trace "X" (alt_expr))))))))) (trace "X" (q))))))} in (trace "X" (let {alts_exprs'0 = (trace "X" ((trace "X" (fix_indexing (trace "X" (alts)) (trace "X" (alts_exprs'))))))} in (trace "X" (let {alts_exprs'1 = (trace "X" ((trace "X" (unindex_tree (trace "X" ((trace "X" ((mapOptionTree (trace "X" (projT1)) (trace "X" (alts))))))) (trace "X" (alts_exprs'0))))))} in (trace "X" (let {alts_exprs'2 = (trace "X" ((trace "X" (fix2 (trace "X" (freshM)) (trace "X" (alts_exprs'1))))))} in (trace "X" (let {alts_exprs'3 = (trace "X" ((trace "X" (treeM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" (alts_exprs'2))))))} in (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" (alts_exprs'3)) (trace "X" ((\y -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((x3 (trace "X" (__U03be_0)) (trace "X" (all_freevars2)) (trace "X" (__))))))) (trace "X" ((\x4 -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" (tbranches)) (trace "X" ((ECase (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (tc)) (trace "X" (tbranches)) (trace "X" (avars)) (trace "X" ((trace "X" ((ileaf (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (avars))))))))) (trace "X" (x4))))))) (trace "X" (y))))))))))))))))))))))))))))))))))))))}))))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__))))))}
4337 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (h0)) (trace "X" (x)) (trace "X" (x0))))))))}))))))))))}))
4339 closed2expr :: (EqDecidable a1) -> (FreshMonad a1) -> (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> (SIND Judg Rule) -> (ITree Judg (Judg2exprType a1)) -> ITree Judg (Judg2exprType a1)
4340 closed2expr eqdec_vv freshM h j pn x =
4341 (trace "X" (case (trace "X" (pn)) of {
4342 Scnd_weak c -> (trace "X" (INone));
4343 Scnd_comp x0 h0 c cnd' r -> (trace "X" ((trace "X" (rule2expr (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (h0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (c)))))))) (trace "X" (r)) (trace "X" ((trace "X" ((closed2expr (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (x0)) (trace "X" (h0)) (trace "X" (cnd')) (trace "X" (x)))))))))));
4344 Scnd_branch ht c0 c3 c1 c2 -> (trace "X" (IBranch (trace "X" (c0)) (trace "X" (c3)) (trace "X" ((trace "X" ((closed2expr (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (ht)) (trace "X" (c0)) (trace "X" (c1)) (trace "X" (x))))))) (trace "X" ((trace "X" ((closed2expr (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (ht)) (trace "X" (c3)) (trace "X" (c2)) (trace "X" (x)))))))))}))
4346 manyFresh :: (EqDecidable a1) -> (FreshMonad a1) -> TypeEnv -> (Tree (Prelude.Maybe LeveledHaskType)) -> (a1 -> LeveledHaskType) -> FreshM a1 (SigT (Tree (Prelude.Maybe a1)) (SigT (a1 -> LeveledHaskType) ()))
4347 manyFresh eqdec_vv freshM __U0393_0 __U03a3_ =
4348 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a __U03be_0 ->
4349 (trace "X" (case (trace "X" (a)) of {
4350 Prelude.Just l -> (trace "X" (case (trace "X" (l)) of {
4351 MkLeveledHaskType __U03c4_ l0 -> (trace "X" (let {q = (trace "X" ((trace "X" (fresh_lemma' (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (__U0393_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03be_0)) (trace "X" (l0))))))} in (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" (q)) (trace "X" ((\q' -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ExistT (trace "X" ((trace "X" ((mapOptionTree (trace "X" (fst)) (trace "X" (q'))))))) (trace "X" ((ExistT (trace "X" ((trace "X" ((update_xi (trace "X" (eqdec_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (l0)) (trace "X" ((trace "X" ((leaves (trace "X" (q')))))))))))) (trace "X" (__)))))))))))))))))))))}));
4352 Prelude.Nothing -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ExistT (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((ExistT (trace "X" (__U03be_0)) (trace "X" (__))))))))))))}))))) (trace "X" ((\__U03a3_1 iH__U03a3_1 __U03a3_2 iH__U03a3_2 __U03be_0 ->
4353 (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((iH__U03a3_1 (trace "X" (__U03be_0))))))) (trace "X" ((\f1 ->
4354 (trace "X" (case (trace "X" (f1)) of {
4356 (trace "X" (case (trace "X" (s)) of {
4357 ExistT __U03be_1 _ ->
4358 (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((iH__U03a3_2 (trace "X" (__U03be_1))))))) (trace "X" ((\f2 ->
4359 (trace "X" (case (trace "X" (f2)) of {
4360 ExistT vars2 s0 -> (trace "X" (case (trace "X" (s0)) of {
4361 ExistT __U03be_2 _ -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ExistT (trace "X" ((T_Branch (trace "X" (vars1)) (trace "X" (vars2))))) (trace "X" ((ExistT (trace "X" (__U03be_2)) (trace "X" (__))))))))))))}))})))))))))}))})))))))))))) (trace "X" (__U03a3_))))))
4363 proof2expr :: (EqDecidable a1) -> (FreshMonad a1) -> TypeEnv -> CoercionEnv -> LeveledHaskType -> (Tree (Prelude.Maybe LeveledHaskType)) -> (a1 -> LeveledHaskType) -> (ToString a1) -> (ND Judg Rule) -> FreshM a1 (OrError (SigT (a1 -> LeveledHaskType) (Expr a1)))
4364 proof2expr eqdec_vv freshM __U0393_0 __U0394_0 __U03c4_ __U03a3_ __U03be_0 zz pf =
4365 (trace "X" (let {cnd = (trace "X" ((trace "X" (mkSIND (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (__U03c4_)))))))))))))))) (trace "X" (pf)) (trace "X" ((Scnd_weak (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))} in
4366 (trace "X" (let {cnd0 = (trace "X" ((trace "X" (closed2expr (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (__U03c4_)))))))))))))))) (trace "X" (cnd)) (trace "X" (INone))))))} in
4367 (trace "X" (let {cnd1 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (__U03c4_)))))))))) (trace "X" (cnd0))))))} in
4368 (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((manyFresh (trace "X" (eqdec_vv)) (trace "X" (freshM)) (trace "X" (__U0393_0)) (trace "X" (__U03a3_)) (trace "X" (__U03be_0))))))) (trace "X" ((\__U03be_vars ->
4369 (trace "X" (case (trace "X" (__U03be_vars)) of {
4370 ExistT vars __U03be_pf -> (trace "X" (case (trace "X" (__U03be_pf)) of {
4371 ExistT __U03be_1 _ -> (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (cnd1)) (trace "X" (__U03be_1)) (trace "X" (vars)) (trace "X" (__))))))) (trace "X" ((\it -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((OK (trace "X" ((ExistT (trace "X" (__U03be_1)) (trace "X" ((trace "X" ((ileaf (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_))))))))) (trace "X" (it))))))))))))))))))))))))}))})))))))))))))))
4373 unleaves_ :: (([]) a1) -> Tree (Prelude.Maybe a1)
4375 (trace "X" (case (trace "X" (l)) of {
4376 ([]) -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4378 (trace "X" (case (trace "X" (b)) of {
4379 ([]) -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" (a)))))));
4380 (:) a0 l0 -> (trace "X" (T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (a)))))))) (trace "X" ((trace "X" ((unleaves_ (trace "X" (b)))))))))}))}))
4382 take_trustme :: TypeEnv -> Nat -> (() -> (InstantiatedTypeEnv ()) -> ([]) (RawHaskType ())) -> ([]) HaskType
4383 take_trustme __U0393_0 n l =
4384 (trace "X" (case (trace "X" (n)) of {
4385 O -> (trace "X" (([])));
4386 S n' -> (trace "X" ((:) (trace "X" ((\_ ite ->
4387 (trace "X" (case (trace "X" ((trace "X" (l (trace "X" (__)) (trace "X" (ite)))))) of {
4388 ([]) -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))))))))))))))))))))));
4389 (:) a b -> (trace "X" (a))})))))
4390 (trace "X" ((trace "X" ((take_trustme (trace "X" (__U0393_0)) (trace "X" (n')) (trace "X" ((\_ ite ->
4391 (trace "X" (case (trace "X" ((trace "X" (l (trace "X" (__)) (trace "X" (ite)))))) of {
4392 ([]) -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))))))))))))))))))))));
4393 (:) a b -> (trace "X" (b))}))))))))))))}))
4395 take_arg_types_as_tree :: TypeEnv -> HaskType -> Tree (Prelude.Maybe HaskType)
4396 take_arg_types_as_tree __U0393_0 ht =
4397 (trace "X" ((trace "X" (unleaves_ (trace "X" ((trace "X" ((take_trustme (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((count_arg_types (trace "X" (KindStar)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ht)) (trace "X" (__)) (trace "X" ((trace "X" ((ite_unit (trace "X" (__U0393_0))))))))))))))))) (trace "X" ((\_ ite -> (trace "X" ((trace "X" (take_arg_types (trace "X" (KindStar)) (trace "X" ((trace "X" ((ht (trace "X" (__)) (trace "X" (ite)))))))))))))))))))))))
4399 drop_arg_types_as_tree :: TypeEnv -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
4400 drop_arg_types_as_tree __U0393_0 ht ite =
4401 (trace "X" ((trace "X" (drop_arg_types (trace "X" (KindStar)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ht)) (trace "X" (__)) (trace "X" (ite)))))))))))
4403 take_arrange :: TypeEnv -> HaskType -> HaskType -> HaskLevel -> Arrange LeveledHaskType
4404 take_arrange __U0393_0 tx te lev =
4405 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((eqDecidableTree (trace "X" ((trace "X" ((eqDecidableOption (trace "X" ((trace "X" ((haskTypeEqDecidable (trace "X" (__U0393_0)) (trace "X" (KindStar))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))))))} in
4406 (trace "X" (case (trace "X" (s)) of {
4407 Prelude.True -> (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))) (trace "X" ((RId (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))))));
4409 (trace "X" (let {n0 = (trace "X" ((trace "X" (count_arg_types (trace "X" (KindStar)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (te)) (trace "X" (__)) (trace "X" ((trace "X" ((ite_unit (trace "X" (__U0393_0))))))))))))))))} in
4410 (trace "X" (case (trace "X" (n0)) of {
4411 O -> (trace "X" ((trace "X" (eq_rect (trace "X" ((\_ ite -> (trace "X" ((trace "X" (tx (trace "X" (__)) (trace "X" (ite))))))))) (trace "X" ((RCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ ite -> (trace "X" ((trace "X" (tx (trace "X" (__)) (trace "X" (ite))))))))) (trace "X" (lev)))))))))))))) (trace "X" (tx))))));
4412 S n1 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))))}))))
4414 take_unarrange :: TypeEnv -> HaskType -> HaskType -> HaskLevel -> Arrange LeveledHaskType
4415 take_unarrange __U0393_0 tx te lev =
4416 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((eqDecidableTree (trace "X" ((trace "X" ((eqDecidableOption (trace "X" ((trace "X" ((haskTypeEqDecidable (trace "X" (__U0393_0)) (trace "X" (KindStar))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))))))} in
4417 (trace "X" (case (trace "X" (s)) of {
4418 Prelude.True -> (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))) (trace "X" ((RId (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))))));
4420 (trace "X" (let {n0 = (trace "X" ((trace "X" (count_arg_types (trace "X" (KindStar)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (te)) (trace "X" (__)) (trace "X" ((trace "X" ((ite_unit (trace "X" (__U0393_0))))))))))))))))} in
4421 (trace "X" (case (trace "X" (n0)) of {
4422 O -> (trace "X" ((trace "X" (eq_rect (trace "X" ((\_ ite -> (trace "X" ((trace "X" (tx (trace "X" (__)) (trace "X" (ite))))))))) (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ ite -> (trace "X" ((trace "X" (tx (trace "X" (__)) (trace "X" (ite))))))))) (trace "X" (lev)))))))))))))) (trace "X" (tx))))));
4423 S n1 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))))}))))
4426 SFlat (Tree (Prelude.Maybe Judg)) (Tree (Prelude.Maybe Judg)) Rule
4427 | SBrak TypeEnv CoercionEnv HaskType HaskTyVar (Tree (Prelude.Maybe LeveledHaskType)) (([]) HaskTyVar)
4428 | SEsc TypeEnv CoercionEnv HaskType HaskTyVar (Tree (Prelude.Maybe LeveledHaskType)) HaskLevel
4430 skolemize_judgment :: Judg -> Judg
4431 skolemize_judgment j =
4432 (trace "X" (case (trace "X" (j)) of {
4433 MkJudg __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ lev ->
4434 (trace "X" (case (trace "X" (lev)) of {
4435 ([]) -> (trace "X" (j));
4436 (:) h l -> (trace "X" (MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2082_))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (x))))))))) (trace "X" (__U03a3___U2082_))))))) (trace "X" (lev))))}))}))
4438 check_hof :: TypeEnv -> HaskType -> Prelude.Bool
4439 check_hof __U0393_0 t =
4440 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((eqDecidableTree (trace "X" ((trace "X" ((eqDecidableOption (trace "X" ((trace "X" ((haskTypeEqDecidable (trace "X" (__U0393_0)) (trace "X" (KindStar))))))))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))} in
4441 (trace "X" (case (trace "X" (s)) of {
4443 (trace "X" (let {s0 = (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((haskTypeEqDecidable (trace "X" (__U0393_0)) (trace "X" (KindStar))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))) (trace "X" (t))))))} in
4444 (trace "X" (case (trace "X" (s0)) of {
4445 Prelude.True -> (trace "X" (Prelude.False));
4446 Prelude.False -> (trace "X" (Prelude.True))}))));
4447 Prelude.False -> (trace "X" (Prelude.True))}))))
4449 skolemize_proof :: (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> (ND Judg Rule) -> ND Judg SRule
4450 skolemize_proof h c x =
4451 (trace "X" ((trace "X" (nd_map' (trace "X" (skolemize_judgment)) (trace "X" ((\h0 c0 x0 ->
4452 (trace "X" (case (trace "X" (x0)) of {
4453 RArrange __U0393_0 __U0394_0 a b x1 l d ->
4454 (trace "X" (case (trace "X" (l)) of {
4455 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" (x1)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (b)) (trace "X" (x1)) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" (x1)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (b)) (trace "X" (x1)) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" (b)) (trace "X" (x1)) (trace "X" (([]))) (trace "X" (d))))))))));
4456 (:) h1 l0 -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))) (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0))))))) (trace "X" (x1))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (x2))))))))) (trace "X" (x1))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))) (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0))))))) (trace "X" (x1))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (x2))))))))) (trace "X" (x1))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))) (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0))))))) (trace "X" (x1))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (x2))))))))) (trace "X" (x1))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))) (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0))))))) (trace "X" (x1))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (x2))))))))) (trace "X" (x1))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))) (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0))))))) (trace "X" (x1))))))))))))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))) (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0))))))) (trace "X" (x1))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (x2))))))))) (trace "X" (x1))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0))))) (trace "X" ((RRight (trace "X" (a)) (trace "X" (b)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))) (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0))))))) (trace "X" (x1)))))))))))) (trace "X" (d)))))))))))))}));
4457 RBrak __U0393_0 __U0394_0 t ec succ lev ->
4458 (trace "X" (case (trace "X" (lev)) of {
4459 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (succ)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((SBrak (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (t)) (trace "X" (ec)) (trace "X" (succ)) (trace "X" (([]))))))));
4460 (:) h1 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('B')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('1')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4461 REsc __U0393_0 __U0394_0 t ec succ lev ->
4462 (trace "X" (case (trace "X" (lev)) of {
4463 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (succ)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))))))) (trace "X" ((SEsc (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (t)) (trace "X" (ec)) (trace "X" (succ)) (trace "X" (([]))))))));
4464 (:) h1 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('1')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4465 RNote __U0393_0 __U0394_0 __U03a3_ __U03c4_ l n -> (trace "X" (Nd_rule (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (l)))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (l)))))))))))))))) (trace "X" ((SFlat (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (l)))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (l))))))))))))))))
4466 (trace "X" ((case (trace "X" (l)) of {
4467 ([]) -> (trace "X" (RNote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" (__U03c4_)) (trace "X" (([]))) (trace "X" (n))));
4468 (:) h1 l0 -> (trace "X" (RNote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c4_))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c4_))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0))))) (trace "X" (n))))}))))))));
4469 RLit __U0393_0 __U0394_0 l l0 ->
4470 (trace "X" (case (trace "X" (l0)) of {
4471 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RLit (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (([])))))))))));
4473 (trace "X" (let {hof = (trace "X" ((trace "X" (check_hof (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0)))))))))))))} in
4474 (trace "X" (case (trace "X" (hof)) of {
4475 Prelude.True -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
4476 Prelude.False -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l1)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l1)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l1)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l1)))))))))))))) (trace "X" ((RLit (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l1)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l1)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l1)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l1)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l1)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l1))))) (trace "X" ((RuCanL (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))))))}))))}));
4477 RVar __U0393_0 __U0394_0 __U03c3_ lev ->
4478 (trace "X" (case (trace "X" (lev)) of {
4479 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (([])))))))))))) (trace "X" ((RVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c3_)) (trace "X" (([])))))))))));
4481 (trace "X" (let {hof = (trace "X" ((trace "X" (check_hof (trace "X" (__U0393_0)) (trace "X" (__U03c3_))))))} in
4482 (trace "X" (case (trace "X" (hof)) of {
4483 Prelude.True -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
4484 Prelude.False -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" (__U03c3_)) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3_)))))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3_)))))))))))}))))}));
4485 RGlobal __U0393_0 __U0394_0 __U03c3_ l wev ->
4486 (trace "X" (case (trace "X" (__U03c3_)) of {
4487 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (([]))) (trace "X" (l)) (trace "X" (wev))))))))));
4489 (trace "X" (let {hof = (trace "X" ((trace "X" (check_hof (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev)))))))))))))} in
4490 (trace "X" (case (trace "X" (hof)) of {
4491 Prelude.True -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
4492 Prelude.False -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (__U03c3_0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (__U03c3_0)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (__U03c3_0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (__U03c3_0)))))))))))))) (trace "X" ((RGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (__U03c3_0))))) (trace "X" (l)) (trace "X" (wev))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (__U03c3_0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (__U03c3_0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (__U03c3_0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (__U03c3_0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (__U03c3_0))))) (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))))))))))))}))))}));
4493 RLam __U0393_0 __U0394_0 __U03a3_ tx te lev ->
4494 (trace "X" (case (trace "X" (lev)) of {
4495 ([]) -> (trace "X" (Nd_rule (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (te)))))))) (trace "X" (([]))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (([]))))))))))))))))) (trace "X" ((SFlat (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (te)))))))) (trace "X" (([]))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (([]))))))))))))))))) (trace "X" ((RLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" (tx)) (trace "X" (te)) (trace "X" (([])))))))))));
4496 (:) h1 lev0 -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env))))))))))))))))))))))))) (trace "X" ((RCossa (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" ((RLeft (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))))))) (trace "X" (__U03a3_)) (trace "X" ((trace "X" ((take_arrange (trace "X" (__U0393_0)) (trace "X" (tx)) (trace "X" (te)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))))))))}));
4497 RCast __U0393_0 __U0394_0 __U03a3_ __U03c3_ __U03c4_ lev ->
4498 (trace "X" (case (trace "X" (lev)) of {
4499 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" (([])))))))))))) (trace "X" ((RCast (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_)) (trace "X" (([])))))))))));
4500 (:) h1 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4501 RJoin __U0393_0 p lri m x1 q l ->
4502 (trace "X" (case (trace "X" (l)) of {
4503 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (lri)) (trace "X" (x1)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (m)) (trace "X" (q)) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" ((T_Branch (trace "X" (lri)) (trace "X" (m))))) (trace "X" ((T_Branch (trace "X" (x1)) (trace "X" (q))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (lri)) (trace "X" (x1)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (m)) (trace "X" (q)) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" ((T_Branch (trace "X" (lri)) (trace "X" (m))))) (trace "X" ((T_Branch (trace "X" (x1)) (trace "X" (q))))) (trace "X" (([])))))))))))) (trace "X" ((RJoin (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (lri)) (trace "X" (m)) (trace "X" (x1)) (trace "X" (q)) (trace "X" (([])))))))))));
4504 (:) h1 l0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('J')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4505 RApp __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ tx te lev ->
4506 (trace "X" (case (trace "X" (lev)) of {
4507 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (te)))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (te)))))))) (trace "X" (([])))))))))))) (trace "X" ((RApp (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" (tx)) (trace "X" (te)) (trace "X" (([])))))))))));
4509 (trace "X" ((trace "X" (eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))
4510 (trace "X" ((let {hof_tx = (trace "X" ((trace "X" (check_hof (trace "X" (__U0393_0)) (trace "X" (tx))))))} in
4511 (trace "X" (case (trace "X" (hof_tx)) of {
4512 Prelude.True -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
4513 Prelude.False -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" (tx)) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env))))))))))))))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((take_unarrange (trace "X" (__U0393_0)) (trace "X" (tx)) (trace "X" (te)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RCanR (trace "X" (__U03a3___U2082_))))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (tx)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RWhere (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))) (trace "X" (tx)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RAssoc (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te)))))))))))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (tx)))))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (tx)))))))))))}))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))))))))}));
4514 RLet __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03c3___U2081_ __U03c3___U2082_ lev ->
4515 (trace "X" (case (trace "X" (lev)) of {
4516 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (([])))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_)) (trace "X" (([])))))))))));
4518 (trace "X" (let {hof_tx = (trace "X" ((trace "X" (check_hof (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))} in
4519 (trace "X" (case (trace "X" (hof_tx)) of {
4520 Prelude.True -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
4521 Prelude.False -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" (__U03c3___U2081_)) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RCanR (trace "X" (__U03a3___U2081_)))))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))))))))))) (trace "X" ((let {q = (trace "X" (RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (__U03c3___U2081_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))} in (trace "X" (Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RCossa (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (q))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RAssoc (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_)))))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_)))))))))))}))))}));
4522 RWhere __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03a3___U2083_ __U03c3___U2081_ __U03c3___U2082_ lev ->
4523 (trace "X" (case (trace "X" (lev)) of {
4524 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (([])))))))))))) (trace "X" ((RWhere (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_)) (trace "X" (([])))))))))));
4526 (trace "X" (let {hof_tx = (trace "X" ((trace "X" (check_hof (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))} in
4527 (trace "X" (case (trace "X" (hof_tx)) of {
4528 Prelude.True -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
4529 Prelude.False -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" (__U03c3___U2081_)) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RCanR (trace "X" (__U03a3___U2082_))))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((RCossa (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((RLeft (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" (__U03a3___U2081_)) (trace "X" ((RCossa (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2081_)))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RWhere (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (__U03c3___U2081_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RLeft (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (__U03a3___U2081_)) (trace "X" ((RAssoc (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))) (trace "X" ((RAssoc (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" (__U03a3___U2083_))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_)))))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_)))))))))))}))))}));
4530 RVoid __U0393_0 __U0394_0 l ->
4531 (trace "X" (case (trace "X" (l)) of {
4532 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (([])))))))))))) (trace "X" ((RVoid (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (([])))))))))));
4533 (:) h1 l0 -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((RVoid (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0)))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (l0))))) (trace "X" ((RuCanL (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))))))))))}));
4534 RAppT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ __U03c4_ lev ->
4535 (trace "X" (case (trace "X" (lev)) of {
4536 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (substT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (substT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RAppT (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_)) (trace "X" (([])))))))))));
4537 (:) h1 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4538 RAbsT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ lev ->
4539 (trace "X" (case (trace "X" (lev)) of {
4540 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RAbsT (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (([])))))))))));
4541 (:) h1 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4542 RAppCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3___U2081_ __U03c3___U2082_ __U03c3_ lev ->
4543 (trace "X" (case (trace "X" (lev)) of {
4544 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_)))))))) (trace "X" (([])))))))))))) (trace "X" ((RAppCo (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" (__U03ba_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_)) (trace "X" (__U03c3_)) (trace "X" (([])))))))))));
4545 (:) h1 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4546 RAbsCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ __U03c3___U2081_ __U03c3___U2082_ lev ->
4547 (trace "X" (case (trace "X" (lev)) of {
4548 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (__U03c3___U2081_))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" ((\_ -> (trace "X" ((trace "X" (mkHaskCoercionKind (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (__U03c3___U2081_))))))))) (trace "X" (__U0394_0))))) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3___U2082_)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env))))))) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RAbsCo (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_)) (trace "X" (__U03c3___U2081_)) (trace "X" (__U03c3___U2082_)) (trace "X" (([])))))))))));
4549 (:) h1 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4550 RLetRec __U0393_0 __U0394_0 lri x1 y t ->
4551 (trace "X" (case (trace "X" (t)) of {
4552 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (lri)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (([])))))))) (trace "X" (y)))))))))) (trace "X" ((T_Branch (trace "X" (y)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x1))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lri)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x1)))))))) (trace "X" (([])))))))))))) (trace "X" ((SFlat (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (lri)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (([])))))))) (trace "X" (y)))))))))) (trace "X" ((T_Branch (trace "X" (y)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x1))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lri)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x1)))))))) (trace "X" (([])))))))))))) (trace "X" ((RLetRec (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lri)) (trace "X" (x1)) (trace "X" (y)) (trace "X" (([])))))))))));
4553 (:) h1 t0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4554 RCase __U0393_0 __U0394_0 lev tc __U03a3_ avars tbranches alts -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('S')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('B')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('G')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('X')) (trace "X" (((:) (trace "X" ('M')) (trace "X" (((:) (trace "X" ('E')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))}))))) (trace "X" (h)) (trace "X" (c)) (trace "X" (x))))))
4556 getlev0 :: TypeEnv -> Kind -> LeveledHaskType -> HaskLevel
4557 getlev0 __U0393_0 __U03ba_ lht =
4558 (trace "X" (case (trace "X" (lht)) of {
4559 MkLeveledHaskType t l -> (trace "X" (l))}))
4561 arrange :: (Tree (Prelude.Maybe a1)) -> (a1 -> Prelude.Bool) -> Arrange a1
4562 arrange __U03a3_ f =
4563 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a ->
4564 (trace "X" (case (trace "X" (a)) of {
4566 (trace "X" (let {b = (trace "X" ((trace "X" (f (trace "X" (t))))))} in
4567 (trace "X" (case (trace "X" (b)) of {
4568 Prelude.True -> (trace "X" (RuCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t))))))))));
4569 Prelude.False -> (trace "X" (RuCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t))))))))))}))));
4570 Prelude.Nothing -> (trace "X" (RuCanL (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))}))))) (trace "X" ((\__U03a3_1 iH__U03a3_1 __U03a3_2 iH__U03a3_2 -> (trace "X" (RComp (trace "X" ((T_Branch (trace "X" (__U03a3_1)) (trace "X" (__U03a3_2))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2)))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2)))))))))))))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" (__U03a3_1)) (trace "X" (__U03a3_2))))) (trace "X" ((T_Branch (trace "X" (__U03a3_1)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2)))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2)))))))))))))))))) (trace "X" ((RLeft (trace "X" (__U03a3_2)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2))))))))))))))) (trace "X" (__U03a3_1)) (trace "X" (iH__U03a3_2))))) (trace "X" ((RRight (trace "X" (__U03a3_1)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2))))))))))))))) (trace "X" (iH__U03a3_1)))))))) (trace "X" ((trace "X" ((arrangeSwapMiddle (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2)))))))))))))))))))))) (trace "X" (__U03a3_))))))
4572 arrange' :: (Tree (Prelude.Maybe a1)) -> (a1 -> Prelude.Bool) -> Arrange a1
4573 arrange' __U03a3_ f =
4574 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a ->
4575 (trace "X" (case (trace "X" (a)) of {
4577 (trace "X" (let {b = (trace "X" ((trace "X" (f (trace "X" (t))))))} in
4578 (trace "X" (case (trace "X" (b)) of {
4579 Prelude.True -> (trace "X" (RCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t))))))))));
4580 Prelude.False -> (trace "X" (RCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t))))))))))}))));
4581 Prelude.Nothing -> (trace "X" (RCanL (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))}))))) (trace "X" ((\__U03a3_1 iH__U03a3_1 __U03a3_2 iH__U03a3_2 -> (trace "X" (RComp (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2)))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2)))))))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3_1)) (trace "X" (__U03a3_2))))) (trace "X" ((trace "X" ((arrangeSwapMiddle (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2))))))))))))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2)))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1))))))))))))))) (trace "X" (__U03a3_2))))) (trace "X" ((T_Branch (trace "X" (__U03a3_1)) (trace "X" (__U03a3_2))))) (trace "X" ((RLeft (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_2)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_2))))))))))))))) (trace "X" (__U03a3_2)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1))))))))))))))) (trace "X" (iH__U03a3_2))))) (trace "X" ((RRight (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" (f))))))) (trace "X" (__U03a3_1)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (__U03a3_1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((f (trace "X" (x))))))))))))))))))) (trace "X" (__U03a3_1))))))))))))))) (trace "X" (__U03a3_1)) (trace "X" (__U03a3_2)) (trace "X" (iH__U03a3_1))))))))))))) (trace "X" (__U03a3_))))))
4583 v2t :: TypeEnv -> HaskTyVar -> (InstantiatedTypeEnv a1) -> RawHaskType a1
4584 v2t __U0393_0 ec ite =
4585 (trace "X" (TVar (trace "X" (eCKind)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ec)) (trace "X" (__)) (trace "X" (ite)))))))))
4587 levelMatch :: TypeEnv -> HaskLevel -> LeveledHaskType -> Prelude.Bool
4588 levelMatch __U0393_0 lev t =
4589 (trace "X" (case (trace "X" (t)) of {
4590 MkLeveledHaskType ttype tlev ->
4591 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((haskLevelEqDecidable (trace "X" (__U0393_0))))))) (trace "X" (tlev)) (trace "X" (lev)))))) of {
4592 Prelude.True -> (trace "X" (Prelude.True));
4593 Prelude.False -> (trace "X" (Prelude.False))}))}))
4595 mkDropFlags :: TypeEnv -> HaskLevel -> (Tree (Prelude.Maybe LeveledHaskType)) -> TreeFlags (Prelude.Maybe LeveledHaskType)
4596 mkDropFlags __U0393_0 lev tt =
4597 (trace "X" ((trace "X" (mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (lev)))))))))))) (trace "X" (tt))))))
4599 drop_lev :: TypeEnv -> HaskLevel -> (Tree (Prelude.Maybe LeveledHaskType)) -> Tree (Prelude.Maybe LeveledHaskType)
4600 drop_lev __U0393_0 lev tt =
4601 (trace "X" ((trace "X" (dropT (trace "X" (tt)) (trace "X" ((trace "X" ((mkDropFlags (trace "X" (__U0393_0)) (trace "X" (lev)) (trace "X" (tt)))))))))))
4603 mkTakeFlags :: TypeEnv -> HaskLevel -> (Tree (Prelude.Maybe LeveledHaskType)) -> TreeFlags (Prelude.Maybe LeveledHaskType)
4604 mkTakeFlags __U0393_0 lev tt =
4605 (trace "X" ((trace "X" (mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (lev)) (trace "X" (x))))))))))))))))))) (trace "X" (tt))))))
4607 take_lev :: TypeEnv -> HaskLevel -> (Tree (Prelude.Maybe LeveledHaskType)) -> Tree (Prelude.Maybe LeveledHaskType)
4608 take_lev __U0393_0 lev tt =
4609 (trace "X" ((trace "X" (dropT (trace "X" (tt)) (trace "X" ((trace "X" ((mkTakeFlags (trace "X" (__U0393_0)) (trace "X" (lev)) (trace "X" (tt)))))))))))
4611 ga_mk_tree' :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (RawHaskType a1) -> (Tree (Prelude.Maybe (RawHaskType a1))) -> RawHaskType a1
4612 ga_mk_tree' unitTy prodTy ec tr =
4613 (trace "X" ((trace "X" (reduceTree (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (unitTy)) (trace "X" (__)) (trace "X" (ec))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (prodTy)) (trace "X" (__)) (trace "X" (ec))))))) (trace "X" (tr))))))
4615 ga_mk_tree :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> HaskType -> (Tree (Prelude.Maybe HaskType)) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
4616 ga_mk_tree unitTy prodTy __U0393_0 ec tr ite =
4617 (trace "X" ((trace "X" (ga_mk_tree' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ec)) (trace "X" (__)) (trace "X" (ite))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x)) (trace "X" (__)) (trace "X" (ite))))))))) (trace "X" (tr)))))))))))
4619 ga_mk_raw :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (RawHaskType a1) -> (Tree (Prelude.Maybe (RawHaskType a1))) -> (Tree (Prelude.Maybe (RawHaskType a1))) -> RawHaskType a1
4620 ga_mk_raw unitTy prodTy gaTy ec ant suc =
4621 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (gaTy)) (trace "X" (__)) (trace "X" (ec)) (trace "X" ((trace "X" ((ga_mk_tree' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (ec)) (trace "X" (ant))))))) (trace "X" ((trace "X" ((ga_mk_tree' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (ec)) (trace "X" (suc)))))))))))
4623 ga_mk :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> HaskType -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
4624 ga_mk unitTy prodTy gaTy __U0393_0 ec ant suc ite =
4625 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (gaTy)) (trace "X" (__)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ec)) (trace "X" (__)) (trace "X" (ite))))))) (trace "X" ((trace "X" ((ga_mk_tree (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (ant)) (trace "X" (ite))))))) (trace "X" ((trace "X" ((ga_mk_tree (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (suc)) (trace "X" (ite)))))))))))
4627 flatten_rawtype :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Kind -> (RawHaskType a1) -> RawHaskType a1
4628 flatten_rawtype unitTy prodTy gaTy __U03ba_ exp =
4629 (trace "X" ((trace "X" (let {
4630 flatten_rawtype0 __U03ba_0 exp0 =
4631 (trace "X" (case (trace "X" (exp0)) of {
4632 TCoerc __U03ba_1 t1 t2 t -> (trace "X" (TCoerc (trace "X" (__U03ba_1)) (trace "X" ((trace "X" ((flatten_rawtype0 (trace "X" (__U03ba_1)) (trace "X" (t1))))))) (trace "X" ((trace "X" ((flatten_rawtype0 (trace "X" (__U03ba_1)) (trace "X" (t2))))))) (trace "X" ((trace "X" ((flatten_rawtype0 (trace "X" (KindStar)) (trace "X" (t)))))))));
4633 TApp __U03ba___U2081_ __U03ba___U2082_ x y -> (trace "X" (TApp (trace "X" (__U03ba___U2081_)) (trace "X" (__U03ba___U2082_)) (trace "X" ((trace "X" ((flatten_rawtype0 (trace "X" ((KindArrow (trace "X" (__U03ba___U2082_)) (trace "X" (__U03ba___U2081_))))) (trace "X" (x))))))) (trace "X" ((trace "X" ((flatten_rawtype0 (trace "X" (__U03ba___U2082_)) (trace "X" (y)))))))));
4634 TAll __U03ba_1 y -> (trace "X" (TAll (trace "X" (__U03ba_1)) (trace "X" ((\v -> (trace "X" ((trace "X" (flatten_rawtype0 (trace "X" (KindStar)) (trace "X" ((trace "X" ((y (trace "X" (v))))))))))))))));
4635 TCode ec e -> (trace "X" (let {e' = (trace "X" ((trace "X" (flatten_rawtype0 (trace "X" (KindStar)) (trace "X" (e))))))} in (trace "X" ((trace "X" (ga_mk_raw (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (ec)) (trace "X" ((trace "X" ((unleaves_ (trace "X" ((trace "X" ((take_arg_types (trace "X" (KindStar)) (trace "X" (e')))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((drop_arg_types (trace "X" (KindStar)) (trace "X" (e')))))))))))))))))));
4636 TyFunApp tfc kl k lt -> (trace "X" (TyFunApp (trace "X" (tfc)) (trace "X" (kl)) (trace "X" (k)) (trace "X" ((trace "X" ((flatten_rawtype_list (trace "X" (__)) (trace "X" (kl)) (trace "X" (lt)))))))));
4637 x -> (trace "X" (x))}));
4638 flatten_rawtype_list _ lk exp0 =
4639 (trace "X" (case (trace "X" (exp0)) of {
4640 TyFunApp_nil -> (trace "X" (TyFunApp_nil));
4641 TyFunApp_cons __U03ba_0 kl t rest -> (trace "X" (TyFunApp_cons (trace "X" (__U03ba_0)) (trace "X" (kl)) (trace "X" ((trace "X" ((flatten_rawtype0 (trace "X" (__U03ba_0)) (trace "X" (t))))))) (trace "X" ((trace "X" ((flatten_rawtype_list (trace "X" (__)) (trace "X" (kl)) (trace "X" (rest)))))))))}))}
4642 in flatten_rawtype0 (trace "X" (__U03ba_)) (trace "X" (exp))))))
4644 flatten_type :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
4645 flatten_type unitTy prodTy gaTy __U0393_0 __U03ba_ ht ite =
4646 (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ht)) (trace "X" (__)) (trace "X" (ite)))))))))))
4648 levels_to_tcode :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> HaskType -> HaskLevel -> (InstantiatedTypeEnv a1) -> RawHaskType a1
4649 levels_to_tcode unitTy prodTy gaTy __U0393_0 ht lev x =
4650 (trace "X" (case (trace "X" (lev)) of {
4651 ([]) -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)) (trace "X" (x))))));
4652 (:) ec lev' -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((unsafeCoerce (trace "X" ((\__U0393_1 ht0 lev0 _ x0 -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_1)) (trace "X" (ht0)) (trace "X" (lev0)) (trace "X" (x0))))))))) (trace "X" (__U0393_0)) (trace "X" (ht)) (trace "X" (lev'))))))))))))) (trace "X" (x))))))}))
4654 flatten_leveled_type :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> LeveledHaskType -> LeveledHaskType
4655 flatten_leveled_type unitTy prodTy gaTy __U0393_0 ht =
4656 (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))
4658 flatten_judgment :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Judg -> Judg
4659 flatten_judgment unitTy prodTy gaTy j =
4660 (trace "X" (case (trace "X" (j)) of {
4661 MkJudg __U0393_0 __U0394_0 ant suc h ->
4662 (trace "X" (case (trace "X" (h)) of {
4663 ([]) -> (trace "X" (MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (ant))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (suc))))))) (trace "X" (([])))));
4664 (:) ec lev' -> (trace "X" (MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev'))))) (trace "X" (ant)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev'))))) (trace "X" (ant)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (suc)))))))))))))))))))) (trace "X" (([])))))}))}))
4667 Build_garrow (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> Literal.Literal -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> HaskType -> HaskType -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> ND Judg Rule) (TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> ND Judg Rule)
4669 ga_id :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4670 ga_id unitTy prodTy gaTy garrow =
4671 (trace "X" (case (trace "X" (garrow)) of {
4672 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_id0))}))
4674 ga_cancelr :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4675 ga_cancelr unitTy prodTy gaTy garrow =
4676 (trace "X" (case (trace "X" (garrow)) of {
4677 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_cancelr0))}))
4679 ga_cancell :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4680 ga_cancell unitTy prodTy gaTy garrow =
4681 (trace "X" (case (trace "X" (garrow)) of {
4682 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_cancell0))}))
4684 ga_uncancelr :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4685 ga_uncancelr unitTy prodTy gaTy garrow =
4686 (trace "X" (case (trace "X" (garrow)) of {
4687 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_uncancelr0))}))
4689 ga_uncancell :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4690 ga_uncancell unitTy prodTy gaTy garrow =
4691 (trace "X" (case (trace "X" (garrow)) of {
4692 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_uncancell0))}))
4694 ga_assoc :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4695 ga_assoc unitTy prodTy gaTy garrow =
4696 (trace "X" (case (trace "X" (garrow)) of {
4697 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_assoc0))}))
4699 ga_unassoc :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4700 ga_unassoc unitTy prodTy gaTy garrow =
4701 (trace "X" (case (trace "X" (garrow)) of {
4702 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_unassoc0))}))
4704 ga_swap :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4705 ga_swap unitTy prodTy gaTy garrow =
4706 (trace "X" (case (trace "X" (garrow)) of {
4707 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_swap0))}))
4709 ga_drop :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4710 ga_drop unitTy prodTy gaTy garrow =
4711 (trace "X" (case (trace "X" (garrow)) of {
4712 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_drop0))}))
4714 ga_copy :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4715 ga_copy unitTy prodTy gaTy garrow =
4716 (trace "X" (case (trace "X" (garrow)) of {
4717 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_copy0))}))
4719 ga_first :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4720 ga_first unitTy prodTy gaTy garrow =
4721 (trace "X" (case (trace "X" (garrow)) of {
4722 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_first0))}))
4724 ga_second :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4725 ga_second unitTy prodTy gaTy garrow =
4726 (trace "X" (case (trace "X" (garrow)) of {
4727 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_second0))}))
4729 ga_lit :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> Literal.Literal -> ND Judg Rule
4730 ga_lit unitTy prodTy gaTy garrow =
4731 (trace "X" (case (trace "X" (garrow)) of {
4732 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_lit0))}))
4734 ga_curry :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> HaskType -> HaskType -> ND Judg Rule
4735 ga_curry unitTy prodTy gaTy garrow =
4736 (trace "X" (case (trace "X" (garrow)) of {
4737 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_curry0))}))
4739 ga_comp :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4740 ga_comp unitTy prodTy gaTy garrow =
4741 (trace "X" (case (trace "X" (garrow)) of {
4742 Build_garrow ga_id0 ga_cancelr0 ga_cancell0 ga_uncancelr0 ga_uncancell0 ga_assoc0 ga_unassoc0 ga_swap0 ga_drop0 ga_copy0 ga_first0 ga_second0 ga_lit0 ga_curry0 ga_comp0 ga_apply ga_kappa -> (trace "X" (ga_comp0))}))
4744 boost :: TypeEnv -> CoercionEnv -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskType -> HaskType -> HaskLevel -> (ND Judg Rule) -> ND Judg Rule
4745 boost __U0393_0 __U0394_0 ant x y lev x0 =
4746 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_rlecnac (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (lev)))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev))))))))))) (trace "X" (x0)) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev)) (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (lev))))))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x)) (trace "X" (y)) (trace "X" (lev))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (y)))))))) (trace "X" (lev)) (trace "X" ((RCanR (trace "X" (ant)))))))))))))
4748 precompose :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> HaskLevel -> ND Judg Rule
4749 precompose unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec a x y z lev =
4750 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_rlecnac (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev)))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((ga_comp (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (lev)) (trace "X" (x)) (trace "X" (y)) (trace "X" (z))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev)) (trace "X" ((RExch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))) (trace "X" (lev))))))))))
4752 precompose' :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> HaskLevel -> ND Judg Rule
4753 precompose' unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec a b x y z lev =
4754 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" (b)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((precompose (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" (x)) (trace "X" (y)) (trace "X" (z)) (trace "X" (lev))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev)) (trace "X" ((RCossa (trace "X" (a)) (trace "X" (b)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" (b)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" (b)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev)) (trace "X" ((RLeft (trace "X" ((T_Branch (trace "X" (b)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" (b))))) (trace "X" (a)) (trace "X" ((RExch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" (b))))))))))))))))
4756 postcompose_ :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> HaskLevel -> ND Judg Rule
4757 postcompose_ unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec a x y z lev =
4758 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_rlecnac (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))))))))) (trace "X" (lev)))))))))))))))) (trace "X" ((trace "X" ((ga_comp (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (lev)) (trace "X" (x)) (trace "X" (y)) (trace "X" (z))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))) (trace "X" (lev))))))))))
4760 postcompose :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> HaskLevel -> (ND Judg Rule) -> ND Judg Rule
4761 postcompose unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec x y z lev x0 =
4762 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (y))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" (x0)) (trace "X" ((trace "X" ((postcompose_ (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x)) (trace "X" (y)) (trace "X" (z)) (trace "X" (lev)))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (z))))))))))))))) (trace "X" (lev)) (trace "X" ((RCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (y)) (trace "X" (z))))))))) (trace "X" (lev))))))))))))))))))))))
4764 first_nd :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> ND Judg Rule
4765 first_nd unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec lev a b c __U03a3_ =
4766 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_rlecnac (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev)))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((ga_first (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (lev)) (trace "X" (a)) (trace "X" (b)) (trace "X" (c))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev)) (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev)) (trace "X" ((RCanR (trace "X" (__U03a3_)))))))))))))
4768 firstify :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (ND Judg Rule) -> ND Judg Rule
4769 firstify unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec lev a b c __U03a3_ x =
4770 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" (x)) (trace "X" ((trace "X" ((first_nd (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (lev)) (trace "X" (a)) (trace "X" (b)) (trace "X" (c)) (trace "X" (__U03a3_)))))))))
4772 second_nd :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> ND Judg Rule
4773 second_nd unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec lev a b c __U03a3_ =
4774 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_rlecnac (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev)))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((ga_second (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (lev)) (trace "X" (a)) (trace "X" (b)) (trace "X" (c))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev)) (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev)) (trace "X" ((RCanR (trace "X" (__U03a3_)))))))))))))
4776 secondify :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (ND Judg Rule) -> ND Judg Rule
4777 secondify unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec lev a b c __U03a3_ x =
4778 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" (x)) (trace "X" ((trace "X" ((second_nd (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (lev)) (trace "X" (a)) (trace "X" (b)) (trace "X" (c)) (trace "X" (__U03a3_)))))))))
4780 ga_unkappa :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4781 ga_unkappa unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec l a b __U03a3_ x =
4782 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((trace "X" ((ga_first (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (l)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a)) (trace "X" (x))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((trace "X" ((postcompose (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (l)) (trace "X" ((trace "X" ((ga_uncancell (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (l)) (trace "X" (x)))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((trace "X" ((precompose (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (__U03a3_)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" (b)) (trace "X" (l))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l)) (trace "X" ((RExch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_)))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))) (trace "X" (l))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))) (trace "X" (l))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (b))))))))))))))) (trace "X" (l)) (trace "X" ((RExch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" (l))))))))))))))))))))))
4784 flatten_arrangement' :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskTyVar -> HaskLevel -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Arrange LeveledHaskType) -> ND Judg Rule
4785 flatten_arrangement' unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec lev ant1 ant2 r =
4786 (trace "X" (case (trace "X" (r)) of {
4787 RId a -> (trace "X" ((trace "X" (ga_id (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))))));
4788 RCanL a -> (trace "X" ((trace "X" (ga_uncancell (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))))));
4789 RCanR a -> (trace "X" ((trace "X" (ga_uncancelr (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))))));
4791 (trace "X" ((trace "X" (ga_cancell (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([])))
4792 (trace "X" ((trace "X" ((let {
4793 mapOptionTree0 f t =
4794 (trace "X" (case (trace "X" (t)) of {
4796 (trace "X" (case (trace "X" (o)) of {
4797 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4798 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4799 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
4800 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
4801 (trace "X" ((trace "X" ((let {
4802 dropT0 __U03a3_ tf =
4803 (trace "X" (case (trace "X" (tf)) of {
4804 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4805 Tf_leaf_false x -> (trace "X" (__U03a3_));
4806 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
4807 in dropT0 (trace "X" (a))
4808 (trace "X" ((trace "X" ((let {
4810 (trace "X" (case (trace "X" (t)) of {
4812 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4813 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4814 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4815 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
4816 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (a)))))))))))))))))))));
4818 (trace "X" ((trace "X" (ga_cancelr (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([])))
4819 (trace "X" ((trace "X" ((let {
4820 mapOptionTree0 f t =
4821 (trace "X" (case (trace "X" (t)) of {
4823 (trace "X" (case (trace "X" (o)) of {
4824 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4825 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4826 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
4827 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
4828 (trace "X" ((trace "X" ((let {
4829 dropT0 __U03a3_ tf =
4830 (trace "X" (case (trace "X" (tf)) of {
4831 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4832 Tf_leaf_false x -> (trace "X" (__U03a3_));
4833 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
4834 in dropT0 (trace "X" (a))
4835 (trace "X" ((trace "X" ((let {
4837 (trace "X" (case (trace "X" (t)) of {
4839 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4840 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4841 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4842 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
4843 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (a)))))))))))))))))))));
4845 (trace "X" ((trace "X" (ga_assoc (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([])))
4846 (trace "X" ((trace "X" ((let {
4847 mapOptionTree0 f t =
4848 (trace "X" (case (trace "X" (t)) of {
4850 (trace "X" (case (trace "X" (o)) of {
4851 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4852 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4853 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
4854 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
4855 (trace "X" ((trace "X" ((let {
4856 dropT0 __U03a3_ tf =
4857 (trace "X" (case (trace "X" (tf)) of {
4858 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4859 Tf_leaf_false x -> (trace "X" (__U03a3_));
4860 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
4861 in dropT0 (trace "X" (a))
4862 (trace "X" ((trace "X" ((let {
4864 (trace "X" (case (trace "X" (t)) of {
4866 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4867 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4868 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4869 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
4870 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (a)))))))))))))))))
4871 (trace "X" ((trace "X" ((let {
4872 mapOptionTree0 f t =
4873 (trace "X" (case (trace "X" (t)) of {
4875 (trace "X" (case (trace "X" (o)) of {
4876 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4877 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4878 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
4879 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
4880 (trace "X" ((trace "X" ((let {
4881 dropT0 __U03a3_ tf =
4882 (trace "X" (case (trace "X" (tf)) of {
4883 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4884 Tf_leaf_false x -> (trace "X" (__U03a3_));
4885 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
4886 in dropT0 (trace "X" (b))
4887 (trace "X" ((trace "X" ((let {
4889 (trace "X" (case (trace "X" (t)) of {
4891 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4892 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4893 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4894 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
4895 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (b)))))))))))))))))
4896 (trace "X" ((trace "X" ((let {
4897 mapOptionTree0 f t =
4898 (trace "X" (case (trace "X" (t)) of {
4900 (trace "X" (case (trace "X" (o)) of {
4901 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4902 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4903 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
4904 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
4905 (trace "X" ((trace "X" ((let {
4906 dropT0 __U03a3_ tf =
4907 (trace "X" (case (trace "X" (tf)) of {
4908 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4909 Tf_leaf_false x -> (trace "X" (__U03a3_));
4910 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
4911 in dropT0 (trace "X" (c))
4912 (trace "X" ((trace "X" ((let {
4914 (trace "X" (case (trace "X" (t)) of {
4916 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4917 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4918 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4919 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
4920 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c)))))))))))))))))))));
4922 (trace "X" ((trace "X" (ga_unassoc (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([])))
4923 (trace "X" ((trace "X" ((let {
4924 mapOptionTree0 f t =
4925 (trace "X" (case (trace "X" (t)) of {
4927 (trace "X" (case (trace "X" (o)) of {
4928 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4929 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4930 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
4931 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
4932 (trace "X" ((trace "X" ((let {
4933 dropT0 __U03a3_ tf =
4934 (trace "X" (case (trace "X" (tf)) of {
4935 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4936 Tf_leaf_false x -> (trace "X" (__U03a3_));
4937 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
4938 in dropT0 (trace "X" (a))
4939 (trace "X" ((trace "X" ((let {
4941 (trace "X" (case (trace "X" (t)) of {
4943 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4944 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4945 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4946 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
4947 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (a)))))))))))))))))
4948 (trace "X" ((trace "X" ((let {
4949 mapOptionTree0 f t =
4950 (trace "X" (case (trace "X" (t)) of {
4952 (trace "X" (case (trace "X" (o)) of {
4953 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4954 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4955 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
4956 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
4957 (trace "X" ((trace "X" ((let {
4958 dropT0 __U03a3_ tf =
4959 (trace "X" (case (trace "X" (tf)) of {
4960 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4961 Tf_leaf_false x -> (trace "X" (__U03a3_));
4962 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
4963 in dropT0 (trace "X" (b))
4964 (trace "X" ((trace "X" ((let {
4966 (trace "X" (case (trace "X" (t)) of {
4968 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4969 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4970 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4971 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
4972 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (b)))))))))))))))))
4973 (trace "X" ((trace "X" ((let {
4974 mapOptionTree0 f t =
4975 (trace "X" (case (trace "X" (t)) of {
4977 (trace "X" (case (trace "X" (o)) of {
4978 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4979 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4980 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
4981 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
4982 (trace "X" ((trace "X" ((let {
4983 dropT0 __U03a3_ tf =
4984 (trace "X" (case (trace "X" (tf)) of {
4985 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4986 Tf_leaf_false x -> (trace "X" (__U03a3_));
4987 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
4988 in dropT0 (trace "X" (c))
4989 (trace "X" ((trace "X" ((let {
4991 (trace "X" (case (trace "X" (t)) of {
4993 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4994 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4995 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4996 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
4997 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c)))))))))))))))))))));
4999 (trace "X" ((trace "X" (ga_swap (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([])))
5000 (trace "X" ((trace "X" ((let {
5001 mapOptionTree0 f t =
5002 (trace "X" (case (trace "X" (t)) of {
5004 (trace "X" (case (trace "X" (o)) of {
5005 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5006 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5007 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5008 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5009 (trace "X" ((trace "X" ((let {
5010 dropT0 __U03a3_ tf =
5011 (trace "X" (case (trace "X" (tf)) of {
5012 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5013 Tf_leaf_false x -> (trace "X" (__U03a3_));
5014 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5015 in dropT0 (trace "X" (a))
5016 (trace "X" ((trace "X" ((let {
5018 (trace "X" (case (trace "X" (t)) of {
5020 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5021 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5022 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5023 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5024 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (a)))))))))))))))))
5025 (trace "X" ((trace "X" ((let {
5026 mapOptionTree0 f t =
5027 (trace "X" (case (trace "X" (t)) of {
5029 (trace "X" (case (trace "X" (o)) of {
5030 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5031 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5032 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5033 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5034 (trace "X" ((trace "X" ((let {
5035 dropT0 __U03a3_ tf =
5036 (trace "X" (case (trace "X" (tf)) of {
5037 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5038 Tf_leaf_false x -> (trace "X" (__U03a3_));
5039 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5040 in dropT0 (trace "X" (b))
5041 (trace "X" ((trace "X" ((let {
5043 (trace "X" (case (trace "X" (t)) of {
5045 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5046 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5047 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5048 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5049 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (b)))))))))))))))))))));
5050 RWeak a -> (trace "X" ((trace "X" (ga_drop (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))))));
5051 RCont a -> (trace "X" ((trace "X" (ga_copy (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))))));
5052 RLeft a b c r' -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (b)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ ->
5053 (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch
5054 (trace "X" ((trace "X" ((let {
5055 mapOptionTree0 f t =
5056 (trace "X" (case (trace "X" (t)) of {
5058 (trace "X" (case (trace "X" (o)) of {
5059 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5060 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5061 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5062 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5063 (trace "X" ((trace "X" ((let {
5064 dropT0 __U03a3_ tf =
5065 (trace "X" (case (trace "X" (tf)) of {
5066 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5067 Tf_leaf_false x -> (trace "X" (__U03a3_));
5068 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5069 in dropT0 (trace "X" (c))
5070 (trace "X" ((trace "X" ((let {
5072 (trace "X" (case (trace "X" (t)) of {
5074 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5075 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5076 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5077 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5078 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (b))))))))))))))) (trace "X" ((T_Branch
5079 (trace "X" ((trace "X" ((let {
5080 mapOptionTree0 f t =
5081 (trace "X" (case (trace "X" (t)) of {
5083 (trace "X" (case (trace "X" (o)) of {
5084 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5085 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5086 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5087 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5088 (trace "X" ((trace "X" ((let {
5089 dropT0 __U03a3_ tf =
5090 (trace "X" (case (trace "X" (tf)) of {
5091 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5092 Tf_leaf_false x -> (trace "X" (__U03a3_));
5093 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5094 in dropT0 (trace "X" (c))
5095 (trace "X" ((trace "X" ((let {
5097 (trace "X" (case (trace "X" (t)) of {
5099 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5100 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5101 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5102 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5103 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((flatten_arrangement' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (lev)) (trace "X" (a)) (trace "X" (b)) (trace "X" (r')))))))
5104 (trace "X" ((trace "X" ((boost (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (b)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))))))))) (trace "X" ((\_ ->
5105 (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch
5106 (trace "X" ((trace "X" ((let {
5107 mapOptionTree0 f t =
5108 (trace "X" (case (trace "X" (t)) of {
5110 (trace "X" (case (trace "X" (o)) of {
5111 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5112 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5113 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5114 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5115 (trace "X" ((trace "X" ((let {
5116 dropT0 __U03a3_ tf =
5117 (trace "X" (case (trace "X" (tf)) of {
5118 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5119 Tf_leaf_false x -> (trace "X" (__U03a3_));
5120 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5121 in dropT0 (trace "X" (c))
5122 (trace "X" ((trace "X" ((let {
5124 (trace "X" (case (trace "X" (t)) of {
5126 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5127 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5128 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5129 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5130 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (b))))))))))))))) (trace "X" ((T_Branch
5131 (trace "X" ((trace "X" ((let {
5132 mapOptionTree0 f t =
5133 (trace "X" (case (trace "X" (t)) of {
5135 (trace "X" (case (trace "X" (o)) of {
5136 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5137 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5138 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5139 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5140 (trace "X" ((trace "X" ((let {
5141 dropT0 __U03a3_ tf =
5142 (trace "X" (case (trace "X" (tf)) of {
5143 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5144 Tf_leaf_false x -> (trace "X" (__U03a3_));
5145 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5146 in dropT0 (trace "X" (c))
5147 (trace "X" ((trace "X" ((let {
5149 (trace "X" (case (trace "X" (t)) of {
5151 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5152 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5153 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5154 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5155 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a)))))))))))))))))))))) (trace "X" (([])))
5156 (trace "X" ((trace "X" ((ga_second (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (b)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))
5157 (trace "X" ((trace "X" ((let {
5158 mapOptionTree0 f t =
5159 (trace "X" (case (trace "X" (t)) of {
5161 (trace "X" (case (trace "X" (o)) of {
5162 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5163 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5164 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5165 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5166 (trace "X" ((trace "X" ((let {
5167 dropT0 __U03a3_ tf =
5168 (trace "X" (case (trace "X" (tf)) of {
5169 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5170 Tf_leaf_false x -> (trace "X" (__U03a3_));
5171 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5172 in dropT0 (trace "X" (c))
5173 (trace "X" ((trace "X" ((let {
5175 (trace "X" (case (trace "X" (t)) of {
5177 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5178 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5179 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5180 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5181 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c)))))))))))))))))))))))))))));
5182 RRight a b c r' -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (b)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ ->
5183 (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (b))))))))))))
5184 (trace "X" ((trace "X" ((let {
5185 mapOptionTree0 f t =
5186 (trace "X" (case (trace "X" (t)) of {
5188 (trace "X" (case (trace "X" (o)) of {
5189 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5190 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5191 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5192 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5193 (trace "X" ((trace "X" ((let {
5194 dropT0 __U03a3_ tf =
5195 (trace "X" (case (trace "X" (tf)) of {
5196 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5197 Tf_leaf_false x -> (trace "X" (__U03a3_));
5198 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5199 in dropT0 (trace "X" (c))
5200 (trace "X" ((trace "X" ((let {
5202 (trace "X" (case (trace "X" (t)) of {
5204 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5205 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5206 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5207 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5208 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c)))))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))
5209 (trace "X" ((trace "X" ((let {
5210 mapOptionTree0 f t =
5211 (trace "X" (case (trace "X" (t)) of {
5213 (trace "X" (case (trace "X" (o)) of {
5214 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5215 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5216 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5217 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5218 (trace "X" ((trace "X" ((let {
5219 dropT0 __U03a3_ tf =
5220 (trace "X" (case (trace "X" (tf)) of {
5221 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5222 Tf_leaf_false x -> (trace "X" (__U03a3_));
5223 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5224 in dropT0 (trace "X" (c))
5225 (trace "X" ((trace "X" ((let {
5227 (trace "X" (case (trace "X" (t)) of {
5229 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5230 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5231 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5232 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5233 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((flatten_arrangement' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (lev)) (trace "X" (a)) (trace "X" (b)) (trace "X" (r')))))))
5234 (trace "X" ((trace "X" ((boost (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (b)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))))))))) (trace "X" ((\_ ->
5235 (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (b))))))))))))
5236 (trace "X" ((trace "X" ((let {
5237 mapOptionTree0 f t =
5238 (trace "X" (case (trace "X" (t)) of {
5240 (trace "X" (case (trace "X" (o)) of {
5241 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5242 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5243 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5244 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5245 (trace "X" ((trace "X" ((let {
5246 dropT0 __U03a3_ tf =
5247 (trace "X" (case (trace "X" (tf)) of {
5248 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5249 Tf_leaf_false x -> (trace "X" (__U03a3_));
5250 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5251 in dropT0 (trace "X" (c))
5252 (trace "X" ((trace "X" ((let {
5254 (trace "X" (case (trace "X" (t)) of {
5256 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5257 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5258 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5259 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5260 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c)))))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))
5261 (trace "X" ((trace "X" ((let {
5262 mapOptionTree0 f t =
5263 (trace "X" (case (trace "X" (t)) of {
5265 (trace "X" (case (trace "X" (o)) of {
5266 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5267 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5268 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5269 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5270 (trace "X" ((trace "X" ((let {
5271 dropT0 __U03a3_ tf =
5272 (trace "X" (case (trace "X" (tf)) of {
5273 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5274 Tf_leaf_false x -> (trace "X" (__U03a3_));
5275 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5276 in dropT0 (trace "X" (c))
5277 (trace "X" ((trace "X" ((let {
5279 (trace "X" (case (trace "X" (t)) of {
5281 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5282 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5283 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5284 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5285 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c))))))))))))))))))))))))))) (trace "X" (([])))
5286 (trace "X" ((trace "X" ((ga_first (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (b)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a))))))))))))
5287 (trace "X" ((trace "X" ((let {
5288 mapOptionTree0 f t =
5289 (trace "X" (case (trace "X" (t)) of {
5291 (trace "X" (case (trace "X" (o)) of {
5292 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5293 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5294 T_Branch l r0 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r0)))))))))}))}
5295 in mapOptionTree0 (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))))))))))
5296 (trace "X" ((trace "X" ((let {
5297 dropT0 __U03a3_ tf =
5298 (trace "X" (case (trace "X" (tf)) of {
5299 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5300 Tf_leaf_false x -> (trace "X" (__U03a3_));
5301 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5302 in dropT0 (trace "X" (c))
5303 (trace "X" ((trace "X" ((let {
5305 (trace "X" (case (trace "X" (t)) of {
5307 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5308 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5309 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5310 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5311 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (x))))))))))))))))))) (trace "X" (c)))))))))))))))))))))))))))));
5312 RComp c b a r1 r2 -> (trace "X" (let {a' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (a)))))))))))} in (trace "X" (let {b' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (b)))))))))))} in (trace "X" (let {c' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (c)))))))))))} in (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((flatten_arrangement' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (lev)) (trace "X" (b)) (trace "X" (a)) (trace "X" (r2))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((flatten_arrangement' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (lev)) (trace "X" (c)) (trace "X" (b)) (trace "X" (r1))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((ga_comp (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" (a')) (trace "X" (b')) (trace "X" (c'))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([]))) (trace "X" ((RExch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (b')) (trace "X" (c'))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([]))) (trace "X" ((RCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([]))) (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (b'))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (a')) (trace "X" (c'))))))))))))))) (trace "X" (([]))) (trace "X" ((RCanL (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))))}))
5314 flatten_arrangement :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskLevel -> HaskTyVar -> HaskLevel -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Arrange LeveledHaskType) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
5315 flatten_arrangement unitTy prodTy gaTy gar __U0393_0 __U0394_0 n ec lev ant1 ant2 r succ =
5316 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (ant1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (ant1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (ant2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (ant1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (ant2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (ant2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (ant1)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (ant1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (ant2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (ant1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (ant1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (ant2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (ant1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" (([])))
5317 (trace "X" ((trace "X" ((let {
5318 flatten ant3 ant4 r0 =
5319 (trace "X" (case (trace "X" (r0)) of {
5320 RId a -> (trace "X" (RId (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (a))))))))))))));
5321 RCanL a -> (trace "X" (RCanL
5322 (trace "X" ((trace "X" ((let {
5323 mapOptionTree0 f t =
5324 (trace "X" (case (trace "X" (t)) of {
5326 (trace "X" (case (trace "X" (o)) of {
5327 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5328 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5329 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5330 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5331 (trace "X" ((trace "X" ((let {
5332 dropT0 __U03a3_ tf =
5333 (trace "X" (case (trace "X" (tf)) of {
5334 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5335 Tf_leaf_false x -> (trace "X" (__U03a3_));
5336 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5337 in dropT0 (trace "X" (a))
5338 (trace "X" ((trace "X" ((let {
5340 (trace "X" (case (trace "X" (t)) of {
5342 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5343 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5344 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5345 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5346 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (a)))))))))))))))))));
5347 RCanR a -> (trace "X" (RCanR
5348 (trace "X" ((trace "X" ((let {
5349 mapOptionTree0 f t =
5350 (trace "X" (case (trace "X" (t)) of {
5352 (trace "X" (case (trace "X" (o)) of {
5353 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5354 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5355 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5356 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5357 (trace "X" ((trace "X" ((let {
5358 dropT0 __U03a3_ tf =
5359 (trace "X" (case (trace "X" (tf)) of {
5360 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5361 Tf_leaf_false x -> (trace "X" (__U03a3_));
5362 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5363 in dropT0 (trace "X" (a))
5364 (trace "X" ((trace "X" ((let {
5366 (trace "X" (case (trace "X" (t)) of {
5368 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5369 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5370 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5371 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5372 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (a)))))))))))))))))));
5373 RuCanL a -> (trace "X" (RuCanL (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (a))))))))))))));
5374 RuCanR a -> (trace "X" (RuCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (a))))))))))))));
5375 RAssoc a b c -> (trace "X" (RAssoc
5376 (trace "X" ((trace "X" ((let {
5377 mapOptionTree0 f t =
5378 (trace "X" (case (trace "X" (t)) of {
5380 (trace "X" (case (trace "X" (o)) of {
5381 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5382 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5383 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5384 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5385 (trace "X" ((trace "X" ((let {
5386 dropT0 __U03a3_ tf =
5387 (trace "X" (case (trace "X" (tf)) of {
5388 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5389 Tf_leaf_false x -> (trace "X" (__U03a3_));
5390 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5391 in dropT0 (trace "X" (a))
5392 (trace "X" ((trace "X" ((let {
5394 (trace "X" (case (trace "X" (t)) of {
5396 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5397 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5398 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5399 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5400 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (a)))))))))))))))))
5401 (trace "X" ((trace "X" ((let {
5402 mapOptionTree0 f t =
5403 (trace "X" (case (trace "X" (t)) of {
5405 (trace "X" (case (trace "X" (o)) of {
5406 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5407 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5408 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5409 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5410 (trace "X" ((trace "X" ((let {
5411 dropT0 __U03a3_ tf =
5412 (trace "X" (case (trace "X" (tf)) of {
5413 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5414 Tf_leaf_false x -> (trace "X" (__U03a3_));
5415 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5416 in dropT0 (trace "X" (b))
5417 (trace "X" ((trace "X" ((let {
5419 (trace "X" (case (trace "X" (t)) of {
5421 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5422 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5423 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5424 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5425 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (b)))))))))))))))))
5426 (trace "X" ((trace "X" ((let {
5427 mapOptionTree0 f t =
5428 (trace "X" (case (trace "X" (t)) of {
5430 (trace "X" (case (trace "X" (o)) of {
5431 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5432 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5433 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5434 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5435 (trace "X" ((trace "X" ((let {
5436 dropT0 __U03a3_ tf =
5437 (trace "X" (case (trace "X" (tf)) of {
5438 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5439 Tf_leaf_false x -> (trace "X" (__U03a3_));
5440 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5441 in dropT0 (trace "X" (c))
5442 (trace "X" ((trace "X" ((let {
5444 (trace "X" (case (trace "X" (t)) of {
5446 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5447 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5448 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5449 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5450 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (c)))))))))))))))))));
5451 RCossa a b c -> (trace "X" (RCossa
5452 (trace "X" ((trace "X" ((let {
5453 mapOptionTree0 f t =
5454 (trace "X" (case (trace "X" (t)) of {
5456 (trace "X" (case (trace "X" (o)) of {
5457 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5458 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5459 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5460 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5461 (trace "X" ((trace "X" ((let {
5462 dropT0 __U03a3_ tf =
5463 (trace "X" (case (trace "X" (tf)) of {
5464 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5465 Tf_leaf_false x -> (trace "X" (__U03a3_));
5466 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5467 in dropT0 (trace "X" (a))
5468 (trace "X" ((trace "X" ((let {
5470 (trace "X" (case (trace "X" (t)) of {
5472 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5473 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5474 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5475 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5476 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (a)))))))))))))))))
5477 (trace "X" ((trace "X" ((let {
5478 mapOptionTree0 f t =
5479 (trace "X" (case (trace "X" (t)) of {
5481 (trace "X" (case (trace "X" (o)) of {
5482 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5483 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5484 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5485 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5486 (trace "X" ((trace "X" ((let {
5487 dropT0 __U03a3_ tf =
5488 (trace "X" (case (trace "X" (tf)) of {
5489 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5490 Tf_leaf_false x -> (trace "X" (__U03a3_));
5491 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5492 in dropT0 (trace "X" (b))
5493 (trace "X" ((trace "X" ((let {
5495 (trace "X" (case (trace "X" (t)) of {
5497 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5498 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5499 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5500 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5501 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (b)))))))))))))))))
5502 (trace "X" ((trace "X" ((let {
5503 mapOptionTree0 f t =
5504 (trace "X" (case (trace "X" (t)) of {
5506 (trace "X" (case (trace "X" (o)) of {
5507 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5508 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5509 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5510 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5511 (trace "X" ((trace "X" ((let {
5512 dropT0 __U03a3_ tf =
5513 (trace "X" (case (trace "X" (tf)) of {
5514 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5515 Tf_leaf_false x -> (trace "X" (__U03a3_));
5516 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5517 in dropT0 (trace "X" (c))
5518 (trace "X" ((trace "X" ((let {
5520 (trace "X" (case (trace "X" (t)) of {
5522 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5523 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5524 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5525 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5526 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (c)))))))))))))))))));
5527 RExch a b -> (trace "X" (RExch
5528 (trace "X" ((trace "X" ((let {
5529 mapOptionTree0 f t =
5530 (trace "X" (case (trace "X" (t)) of {
5532 (trace "X" (case (trace "X" (o)) of {
5533 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5534 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5535 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5536 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5537 (trace "X" ((trace "X" ((let {
5538 dropT0 __U03a3_ tf =
5539 (trace "X" (case (trace "X" (tf)) of {
5540 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5541 Tf_leaf_false x -> (trace "X" (__U03a3_));
5542 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5543 in dropT0 (trace "X" (a))
5544 (trace "X" ((trace "X" ((let {
5546 (trace "X" (case (trace "X" (t)) of {
5548 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5549 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5550 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5551 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5552 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (a)))))))))))))))))
5553 (trace "X" ((trace "X" ((let {
5554 mapOptionTree0 f t =
5555 (trace "X" (case (trace "X" (t)) of {
5557 (trace "X" (case (trace "X" (o)) of {
5558 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5559 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5560 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5561 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5562 (trace "X" ((trace "X" ((let {
5563 dropT0 __U03a3_ tf =
5564 (trace "X" (case (trace "X" (tf)) of {
5565 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5566 Tf_leaf_false x -> (trace "X" (__U03a3_));
5567 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5568 in dropT0 (trace "X" (b))
5569 (trace "X" ((trace "X" ((let {
5571 (trace "X" (case (trace "X" (t)) of {
5573 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5574 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5575 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5576 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5577 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (b)))))))))))))))))));
5578 RWeak a -> (trace "X" (RWeak (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (a))))))))))))));
5579 RCont a -> (trace "X" (RCont
5580 (trace "X" ((trace "X" ((let {
5581 mapOptionTree0 f t =
5582 (trace "X" (case (trace "X" (t)) of {
5584 (trace "X" (case (trace "X" (o)) of {
5585 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5586 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5587 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5588 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5589 (trace "X" ((trace "X" ((let {
5590 dropT0 __U03a3_ tf =
5591 (trace "X" (case (trace "X" (tf)) of {
5592 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5593 Tf_leaf_false x -> (trace "X" (__U03a3_));
5594 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5595 in dropT0 (trace "X" (a))
5596 (trace "X" ((trace "X" ((let {
5598 (trace "X" (case (trace "X" (t)) of {
5600 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5601 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5602 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5603 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5604 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (a)))))))))))))))))));
5605 RLeft a b c r' -> (trace "X" (RLeft
5606 (trace "X" ((trace "X" ((let {
5607 mapOptionTree0 f t =
5608 (trace "X" (case (trace "X" (t)) of {
5610 (trace "X" (case (trace "X" (o)) of {
5611 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5612 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5613 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5614 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5615 (trace "X" ((trace "X" ((let {
5616 dropT0 __U03a3_ tf =
5617 (trace "X" (case (trace "X" (tf)) of {
5618 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5619 Tf_leaf_false x -> (trace "X" (__U03a3_));
5620 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5621 in dropT0 (trace "X" (a))
5622 (trace "X" ((trace "X" ((let {
5624 (trace "X" (case (trace "X" (t)) of {
5626 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5627 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5628 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5629 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5630 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (a)))))))))))))))))
5631 (trace "X" ((trace "X" ((let {
5632 mapOptionTree0 f t =
5633 (trace "X" (case (trace "X" (t)) of {
5635 (trace "X" (case (trace "X" (o)) of {
5636 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5637 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5638 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5639 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5640 (trace "X" ((trace "X" ((let {
5641 dropT0 __U03a3_ tf =
5642 (trace "X" (case (trace "X" (tf)) of {
5643 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5644 Tf_leaf_false x -> (trace "X" (__U03a3_));
5645 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5646 in dropT0 (trace "X" (b))
5647 (trace "X" ((trace "X" ((let {
5649 (trace "X" (case (trace "X" (t)) of {
5651 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5652 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5653 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5654 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5655 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (b)))))))))))))))))
5656 (trace "X" ((trace "X" ((let {
5657 mapOptionTree0 f t =
5658 (trace "X" (case (trace "X" (t)) of {
5660 (trace "X" (case (trace "X" (o)) of {
5661 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5662 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5663 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5664 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5665 (trace "X" ((trace "X" ((let {
5666 dropT0 __U03a3_ tf =
5667 (trace "X" (case (trace "X" (tf)) of {
5668 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5669 Tf_leaf_false x -> (trace "X" (__U03a3_));
5670 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5671 in dropT0 (trace "X" (c))
5672 (trace "X" ((trace "X" ((let {
5674 (trace "X" (case (trace "X" (t)) of {
5676 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5677 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5678 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5679 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5680 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (c))))))))))))))))) (trace "X" ((trace "X" ((flatten (trace "X" (a)) (trace "X" (b)) (trace "X" (r')))))))));
5681 RRight a b c r' -> (trace "X" (RRight
5682 (trace "X" ((trace "X" ((let {
5683 mapOptionTree0 f t =
5684 (trace "X" (case (trace "X" (t)) of {
5686 (trace "X" (case (trace "X" (o)) of {
5687 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5688 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5689 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5690 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5691 (trace "X" ((trace "X" ((let {
5692 dropT0 __U03a3_ tf =
5693 (trace "X" (case (trace "X" (tf)) of {
5694 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5695 Tf_leaf_false x -> (trace "X" (__U03a3_));
5696 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5697 in dropT0 (trace "X" (a))
5698 (trace "X" ((trace "X" ((let {
5700 (trace "X" (case (trace "X" (t)) of {
5702 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5703 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5704 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5705 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5706 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (a)))))))))))))))))
5707 (trace "X" ((trace "X" ((let {
5708 mapOptionTree0 f t =
5709 (trace "X" (case (trace "X" (t)) of {
5711 (trace "X" (case (trace "X" (o)) of {
5712 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5713 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5714 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5715 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5716 (trace "X" ((trace "X" ((let {
5717 dropT0 __U03a3_ tf =
5718 (trace "X" (case (trace "X" (tf)) of {
5719 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5720 Tf_leaf_false x -> (trace "X" (__U03a3_));
5721 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5722 in dropT0 (trace "X" (b))
5723 (trace "X" ((trace "X" ((let {
5725 (trace "X" (case (trace "X" (t)) of {
5727 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5728 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5729 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5730 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5731 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (b)))))))))))))))))
5732 (trace "X" ((trace "X" ((let {
5733 mapOptionTree0 f t =
5734 (trace "X" (case (trace "X" (t)) of {
5736 (trace "X" (case (trace "X" (o)) of {
5737 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5738 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5739 T_Branch l r1 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r1)))))))))}))}
5740 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5741 (trace "X" ((trace "X" ((let {
5742 dropT0 __U03a3_ tf =
5743 (trace "X" (case (trace "X" (tf)) of {
5744 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5745 Tf_leaf_false x -> (trace "X" (__U03a3_));
5746 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5747 in dropT0 (trace "X" (c))
5748 (trace "X" ((trace "X" ((let {
5750 (trace "X" (case (trace "X" (t)) of {
5752 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5753 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5754 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5755 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5756 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (c))))))))))))))))) (trace "X" ((trace "X" ((flatten (trace "X" (a)) (trace "X" (b)) (trace "X" (r')))))))));
5757 RComp a b c r1 r2 -> (trace "X" (RComp
5758 (trace "X" ((trace "X" ((let {
5759 mapOptionTree0 f t =
5760 (trace "X" (case (trace "X" (t)) of {
5762 (trace "X" (case (trace "X" (o)) of {
5763 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5764 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5765 T_Branch l r3 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r3)))))))))}))}
5766 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5767 (trace "X" ((trace "X" ((let {
5768 dropT0 __U03a3_ tf =
5769 (trace "X" (case (trace "X" (tf)) of {
5770 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5771 Tf_leaf_false x -> (trace "X" (__U03a3_));
5772 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5773 in dropT0 (trace "X" (a))
5774 (trace "X" ((trace "X" ((let {
5776 (trace "X" (case (trace "X" (t)) of {
5778 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5779 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5780 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5781 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5782 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (a)))))))))))))))))
5783 (trace "X" ((trace "X" ((let {
5784 mapOptionTree0 f t =
5785 (trace "X" (case (trace "X" (t)) of {
5787 (trace "X" (case (trace "X" (o)) of {
5788 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5789 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5790 T_Branch l r3 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r3)))))))))}))}
5791 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5792 (trace "X" ((trace "X" ((let {
5793 dropT0 __U03a3_ tf =
5794 (trace "X" (case (trace "X" (tf)) of {
5795 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5796 Tf_leaf_false x -> (trace "X" (__U03a3_));
5797 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5798 in dropT0 (trace "X" (b))
5799 (trace "X" ((trace "X" ((let {
5801 (trace "X" (case (trace "X" (t)) of {
5803 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5804 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5805 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5806 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5807 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (b)))))))))))))))))
5808 (trace "X" ((trace "X" ((let {
5809 mapOptionTree0 f t =
5810 (trace "X" (case (trace "X" (t)) of {
5812 (trace "X" (case (trace "X" (o)) of {
5813 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5814 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5815 T_Branch l r3 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r3)))))))))}))}
5816 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5817 (trace "X" ((trace "X" ((let {
5818 dropT0 __U03a3_ tf =
5819 (trace "X" (case (trace "X" (tf)) of {
5820 Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5821 Tf_leaf_false x -> (trace "X" (__U03a3_));
5822 Tf_branch b1 b2 tb1 tb2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((dropT0 (trace "X" (b1)) (trace "X" (tb1))))))) (trace "X" ((trace "X" ((dropT0 (trace "X" (b2)) (trace "X" (tb2)))))))))}))}
5823 in dropT0 (trace "X" (c))
5824 (trace "X" ((trace "X" ((let {
5826 (trace "X" (case (trace "X" (t)) of {
5828 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5829 Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5830 Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5831 T_Branch b1 b2 -> (trace "X" (Tf_branch (trace "X" (b1)) (trace "X" (b2)) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b1))))))) (trace "X" ((trace "X" ((mkFlags0 (trace "X" (f)) (trace "X" (b2)))))))))}))}
5832 in mkFlags0 (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (c))))))))))))))))) (trace "X" ((trace "X" ((flatten (trace "X" (a)) (trace "X" (b)) (trace "X" (r1))))))) (trace "X" ((trace "X" ((flatten (trace "X" (b)) (trace "X" (c)) (trace "X" (r2)))))))))}))}
5833 in flatten (trace "X" (ant1)) (trace "X" (ant2)) (trace "X" (r))))))))))))) (trace "X" ((trace "X" ((boost (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (n)) (trace "X" (ant2)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (ant1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ)))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (ant2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ)))))))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((postcompose (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (ant2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev))))) (trace "X" (ant1)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((flatten_arrangement' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (lev)) (trace "X" (ant1)) (trace "X" (ant2)) (trace "X" (r)))))))))))))))))))
5835 flatten_arrangement'' :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe HaskType)) -> HaskLevel -> (Arrange LeveledHaskType) -> ND Judg Rule
5836 flatten_arrangement'' unitTy prodTy gaTy gar __U0393_0 __U0394_0 ant1 ant2 succ l r =
5837 (trace "X" (case (trace "X" (l)) of {
5838 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (ant1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (ant2))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (ant1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (ant2))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x))))))))) (trace "X" (succ))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((arrange_rect (trace "X" ((\a -> (trace "X" (RId (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (a)))))))))))) (trace "X" ((\a -> (trace "X" (RCanL (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (a)))))))))))) (trace "X" ((\a -> (trace "X" (RCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (a)))))))))))) (trace "X" ((\a -> (trace "X" (RuCanL (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (a)))))))))))) (trace "X" ((\a -> (trace "X" (RuCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (a)))))))))))) (trace "X" ((\a b c -> (trace "X" (RAssoc (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (a))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (b))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (c)))))))))))) (trace "X" ((\a b c -> (trace "X" (RCossa (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (a))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (b))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (c)))))))))))) (trace "X" ((\a b -> (trace "X" (RExch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (a))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (b)))))))))))) (trace "X" ((\a -> (trace "X" (RWeak (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (a)))))))))))) (trace "X" ((\a -> (trace "X" (RCont (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (a)))))))))))) (trace "X" ((\h c x r0 iHr -> (trace "X" (RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (h))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (c))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (x))))))) (trace "X" (iHr))))))) (trace "X" ((\h c x r0 iHr -> (trace "X" (RRight (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (h))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (c))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (x))))))) (trace "X" (iHr))))))) (trace "X" ((\a b c r1 iHr1 r2 iHr2 -> (trace "X" (RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (a))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (b))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (c))))))) (trace "X" (iHr1)) (trace "X" (iHr2))))))) (trace "X" (ant1)) (trace "X" (ant2)) (trace "X" (r))))))))))));
5839 (:) h l0 -> (trace "X" ((trace "X" (flatten_arrangement (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (((:) (trace "X" (h)) (trace "X" (l0))))) (trace "X" (h)) (trace "X" (l0)) (trace "X" (ant1)) (trace "X" (ant2)) (trace "X" (r)) (trace "X" (succ))))))}))
5841 ga_join :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> HaskType -> (ND Judg Rule) -> (ND Judg Rule) -> ND Judg Rule
5842 ga_join unitTy prodTy gaTy gar __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ a b ec pfa pfb =
5843 (trace "X" (let {pfb0 = (trace "X" ((trace "X" (secondify (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (([]))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (b)) (trace "X" (a)) (trace "X" (__U03a3___U2082_)) (trace "X" (pfb))))))} in (trace "X" (let {pfa0 = (trace "X" ((trace "X" (firstify (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (([]))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2081_)) (trace "X" (pfa))))))} in (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (pfa0)) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((ga_uncancelr (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (([]))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))) (trace "X" ((trace "X" ((postcompose_ (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" (([]))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (pfb0)) (trace "X" ((trace "X" ((precompose (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" (([]))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([]))) (trace "X" ((RExch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_)))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))) (trace "X" (([])))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))) (trace "X" (([])))))))))))))))
5845 arrange_brak :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskTyVar -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskType -> ND Judg Rule
5846 arrange_brak unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec succ t =
5847 (trace "X" (let {q = (trace "X" ((trace "X" (arrange' (trace "X" (succ)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))} in
5848 (trace "X" (let {y = (trace "X" ((trace "X" (arrangeMap (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ))))))))))))))) (trace "X" (succ)) (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q))))))} in
5849 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkDropFlags (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkDropFlags (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch
5850 (trace "X" ((trace "X" ((let {
5851 mapOptionTree0 f t0 =
5852 (trace "X" (case (trace "X" (t0)) of {
5854 (trace "X" (case (trace "X" (o)) of {
5855 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5856 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5857 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5858 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))
5859 (trace "X" ((trace "X" ((let {
5860 mapOptionTree0 f t0 =
5861 (trace "X" (case (trace "X" (t0)) of {
5863 (trace "X" (case (trace "X" (o)) of {
5864 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5865 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5866 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5867 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkDropFlags (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkDropFlags (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch
5868 (trace "X" ((trace "X" ((let {
5869 mapOptionTree0 f t0 =
5870 (trace "X" (case (trace "X" (t0)) of {
5872 (trace "X" (case (trace "X" (o)) of {
5873 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5874 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5875 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5876 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))
5877 (trace "X" ((trace "X" ((let {
5878 mapOptionTree0 f t0 =
5879 (trace "X" (case (trace "X" (t0)) of {
5881 (trace "X" (case (trace "X" (o)) of {
5882 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5883 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5884 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5885 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkDropFlags (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkDropFlags (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
5886 (trace "X" ((trace "X" ((let {
5887 mapOptionTree0 f t0 =
5888 (trace "X" (case (trace "X" (t0)) of {
5890 (trace "X" (case (trace "X" (o)) of {
5891 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5892 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5893 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5894 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))
5895 (trace "X" ((trace "X" ((let {
5896 mapOptionTree0 f t0 =
5897 (trace "X" (case (trace "X" (t0)) of {
5899 (trace "X" (case (trace "X" (o)) of {
5900 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5901 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5902 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5903 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch
5904 (trace "X" ((trace "X" ((let {
5905 mapOptionTree0 f t0 =
5906 (trace "X" (case (trace "X" (t0)) of {
5908 (trace "X" (case (trace "X" (o)) of {
5909 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5910 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5911 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5912 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))
5913 (trace "X" ((trace "X" ((let {
5914 mapOptionTree0 f t0 =
5915 (trace "X" (case (trace "X" (t0)) of {
5917 (trace "X" (case (trace "X" (o)) of {
5918 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5919 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5920 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5921 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkDropFlags (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
5922 (trace "X" ((trace "X" ((let {
5923 mapOptionTree0 f t0 =
5924 (trace "X" (case (trace "X" (t0)) of {
5926 (trace "X" (case (trace "X" (o)) of {
5927 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5928 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5929 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5930 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))
5931 (trace "X" ((trace "X" ((let {
5932 mapOptionTree0 f t0 =
5933 (trace "X" (case (trace "X" (t0)) of {
5935 (trace "X" (case (trace "X" (o)) of {
5936 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5937 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5938 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5939 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))))))))))))
5940 (trace "X" ((trace "X" ((tree_rect (trace "X" ((\a ->
5941 (trace "X" (case (trace "X" (a)) of {
5943 (trace "X" (case (trace "X" (l)) of {
5944 MkLeveledHaskType t' lev' ->
5945 (trace "X" (case (trace "X" (lev')) of {
5946 ([]) -> (trace "X" ((trace "X" (ga_id (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))));
5948 (trace "X" (let {q0 = (trace "X" ((trace "X" (eqd_dec (trace "X" ((trace "X" ((haskLevelEqDecidable (trace "X" (__U0393_0))))))) (trace "X" (((:) (trace "X" (ec')) (trace "X" (lev'0))))) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))} in
5949 (trace "X" (case (trace "X" (q0)) of {
5950 Prelude.True -> (trace "X" ((trace "X" (eq_rect (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (([]))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" (([]))) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (t')))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ ite -> (trace "X" ((trace "X" (gaTy (trace "X" (__)) (trace "X" ((trace "X" ((v2t (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (ite))))))) (trace "X" ((trace "X" ((ga_mk_tree (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (ite))))))) (trace "X" ((trace "X" ((ga_mk_tree (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ ite0 -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((t' (trace "X" (__)) (trace "X" (ite0)))))))))))))))))))) (trace "X" (ite)))))))))))))) (trace "X" (([]))))))))))) (trace "X" (ec')) (trace "X" (__))))))))) (trace "X" (lev'0)) (trace "X" (__))))))) (trace "X" (lev'0))))))))) (trace "X" (ec')) (trace "X" (__))))));
5951 Prelude.False -> (trace "X" ((trace "X" (ga_id (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))}))))}))}));
5952 Prelude.Nothing -> (trace "X" ((trace "X" (ga_id (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))}))))) (trace "X" ((\succ1 iHsucc1 succ2 iHsucc2 ->
5953 (trace "X" ((trace "X" (ga_join (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
5954 (trace "X" ((trace "X" ((let {
5955 mapOptionTree0 f t0 =
5956 (trace "X" (case (trace "X" (t0)) of {
5958 (trace "X" (case (trace "X" (o)) of {
5959 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5960 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5961 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5962 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ1)))))))))))))))))
5963 (trace "X" ((trace "X" ((let {
5964 mapOptionTree0 f t0 =
5965 (trace "X" (case (trace "X" (t0)) of {
5967 (trace "X" (case (trace "X" (o)) of {
5968 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5969 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5970 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5971 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ2))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ1)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ1))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ2)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.True)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ2))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (iHsucc1)) (trace "X" (iHsucc2))))))))) (trace "X" (succ)))))))
5972 (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))
5973 (trace "X" ((trace "X" ((let {
5974 mapOptionTree0 f t0 =
5975 (trace "X" (case (trace "X" (t0)) of {
5977 (trace "X" (case (trace "X" (o)) of {
5978 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5979 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5980 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5981 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
5982 (trace "X" ((trace "X" ((let {
5983 mapOptionTree0 f t0 =
5984 (trace "X" (case (trace "X" (t0)) of {
5986 (trace "X" (case (trace "X" (o)) of {
5987 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5988 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5989 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5990 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))
5991 (trace "X" ((trace "X" ((let {
5992 mapOptionTree0 f t0 =
5993 (trace "X" (case (trace "X" (t0)) of {
5995 (trace "X" (case (trace "X" (o)) of {
5996 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5997 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5998 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
5999 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch
6000 (trace "X" ((trace "X" ((let {
6001 mapOptionTree0 f t0 =
6002 (trace "X" (case (trace "X" (t0)) of {
6004 (trace "X" (case (trace "X" (o)) of {
6005 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6006 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6007 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6008 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))
6009 (trace "X" ((trace "X" ((let {
6010 mapOptionTree0 f t0 =
6011 (trace "X" (case (trace "X" (t0)) of {
6013 (trace "X" (case (trace "X" (o)) of {
6014 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6015 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6016 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6017 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
6018 (trace "X" ((trace "X" ((let {
6019 mapOptionTree0 f t0 =
6020 (trace "X" (case (trace "X" (t0)) of {
6022 (trace "X" (case (trace "X" (o)) of {
6023 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6024 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6025 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6026 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))
6027 (trace "X" ((trace "X" ((let {
6028 mapOptionTree0 f t0 =
6029 (trace "X" (case (trace "X" (t0)) of {
6031 (trace "X" (case (trace "X" (o)) of {
6032 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6033 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6034 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6035 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (t)) (trace "X" (([]))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch
6036 (trace "X" ((trace "X" ((let {
6037 mapOptionTree0 f t0 =
6038 (trace "X" (case (trace "X" (t0)) of {
6040 (trace "X" (case (trace "X" (o)) of {
6041 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6042 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6043 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6044 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))
6045 (trace "X" ((trace "X" ((let {
6046 mapOptionTree0 f t0 =
6047 (trace "X" (case (trace "X" (t0)) of {
6049 (trace "X" (case (trace "X" (o)) of {
6050 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6051 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6052 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6053 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch
6054 (trace "X" ((trace "X" ((let {
6055 mapOptionTree0 f t0 =
6056 (trace "X" (case (trace "X" (t0)) of {
6058 (trace "X" (case (trace "X" (o)) of {
6059 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6060 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6061 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6062 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))
6063 (trace "X" ((trace "X" ((let {
6064 mapOptionTree0 f t0 =
6065 (trace "X" (case (trace "X" (t0)) of {
6067 (trace "X" (case (trace "X" (o)) of {
6068 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6069 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6070 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6071 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))) (trace "X" ((RExch
6072 (trace "X" ((trace "X" ((let {
6073 mapOptionTree0 f t0 =
6074 (trace "X" (case (trace "X" (t0)) of {
6076 (trace "X" (case (trace "X" (o)) of {
6077 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6078 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6079 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6080 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))))))))
6081 (trace "X" ((trace "X" ((let {
6082 mapOptionTree0 f t0 =
6083 (trace "X" (case (trace "X" (t0)) of {
6085 (trace "X" (case (trace "X" (o)) of {
6086 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6087 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6088 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6089 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ))))))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))) (trace "X" (y))))))))))))))
6091 arrange_empty_tree :: (Tree a2) -> (Tree (Prelude.Maybe a1)) -> Arrange a1
6092 arrange_empty_tree q t =
6093 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a t0 _ -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((RId (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" (t0))))))))) (trace "X" ((\q1 iHq1 q2 iHq2 t0 _ ->
6094 (trace "X" (case (trace "X" (t0)) of {
6095 T_Leaf o -> (trace "X" (false_rect));
6096 T_Branch t1 t2 -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q1))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q2))))))) (trace "X" ((let {x1 = (trace "X" ((trace "X" (iHq1 (trace "X" (t1)) (trace "X" (__))))))} in (trace "X" (let {x2 = (trace "X" ((trace "X" (iHq2 (trace "X" (t2)) (trace "X" (__))))))} in (trace "X" (RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q1))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q2)))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q2)))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((RRight (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q1))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q2))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" (t1)) (trace "X" (x1)) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q1))))))))))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q2)))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q2))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((RCanL (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q2)))))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" (t2)) (trace "X" (x2)) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x -> (trace "X" (Prelude.Nothing))))) (trace "X" (q2)))))))))))))))))))))) (trace "X" (t2))))))))) (trace "X" (t1)) (trace "X" (__))))))}))))) (trace "X" (q)) (trace "X" (t)) (trace "X" (__))))))
6098 decide_tree_empty :: (Tree (Prelude.Maybe a1)) -> Prelude.Either (SigT (Tree ()) ()) ()
6099 decide_tree_empty t =
6100 (trace "X" (case (trace "X" (t)) of {
6102 (trace "X" (case (trace "X" (x)) of {
6103 Prelude.Just t0 -> (trace "X" (Prelude.Right (trace "X" (()))));
6104 Prelude.Nothing -> (trace "X" (Prelude.Left (trace "X" ((ExistT (trace "X" ((T_Leaf (trace "X" (()))))) (trace "X" (__)))))))}));
6106 (trace "X" (let {b1' = (trace "X" ((trace "X" (decide_tree_empty (trace "X" (b1))))))} in
6107 (trace "X" (let {b2' = (trace "X" ((trace "X" (decide_tree_empty (trace "X" (b2))))))} in
6108 (trace "X" (case (trace "X" (b1')) of {
6110 (trace "X" (case (trace "X" (b2')) of {
6112 (trace "X" (case (trace "X" (s)) of {
6113 ExistT x _ -> (trace "X" (case (trace "X" (s0)) of {
6114 ExistT x0 _ -> (trace "X" ((trace "X" (eq_rec_r (trace "X" ((trace "X" ((mapTree (trace "X" ((\x1 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x0))))))) (trace "X" ((trace "X" ((eq_rec_r (trace "X" ((trace "X" ((mapTree (trace "X" ((\x1 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x))))))) (trace "X" ((Prelude.Left (trace "X" ((ExistT (trace "X" ((T_Branch (trace "X" (x)) (trace "X" (x0))))) (trace "X" (__)))))))) (trace "X" (b1))))))) (trace "X" (b2))))))}))}));
6115 Prelude.Right u -> (trace "X" (Prelude.Right (trace "X" (u))))}));
6116 Prelude.Right u -> (trace "X" (Prelude.Right (trace "X" (u))))}))))))}))
6118 arrange_esc :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> CoercionEnv -> HaskTyVar -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskType -> ND Judg Rule
6119 arrange_esc unitTy prodTy gaTy __U0393_0 __U0394_0 ec succ t =
6120 (trace "X" (let {q = (trace "X" ((trace "X" (arrange (trace "X" (succ)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))} in
6121 (trace "X" (let {q' = (trace "X" ((trace "X" (drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))} in
6122 (trace "X" (let {q0 = (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))))))))))))) (trace "X" (succ)))))))))))) (trace "X" (q)) (trace "X" (q'))))))} in
6123 (trace "X" (let {y = (trace "X" ((trace "X" (arrangeMap (trace "X" (succ)) (trace "X" ((T_Branch (trace "X" (q')) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ))))))))))))))) (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q0))))))} in
6124 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" (q')) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q')))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" (q')) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" (q')) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))) (trace "X" (y))))))))
6125 (trace "X" ((let {q1 = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x))))))))))))))))))) (trace "X" (succ))))))))))))))))} in
6126 (trace "X" (let {s = (trace "X" ((trace "X" (decide_tree_empty (trace "X" (q1))))))} in
6127 (trace "X" (case (trace "X" (s)) of {
6128 Prelude.Left s0 -> (trace "X" (case (trace "X" (s0)) of {
6129 ExistT x _ -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x0 -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x0))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q')))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x0 -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x0))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x0 -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x0))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x0 -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x0))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((Nd_rlecnac (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x0 -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x0))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x0 -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x0))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x0 -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x0))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x0 -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x0))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x0 -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x0))))))))))))))))))) (trace "X" (succ)))))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((dropT (trace "X" (succ)) (trace "X" ((trace "X" ((mkFlags (trace "X" ((trace "X" ((liftBoolFunc (trace "X" (Prelude.False)) (trace "X" ((\x0 -> (trace "X" ((trace "X" (bnot (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (x0))))))))))))))))))) (trace "X" (succ))))))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((trace "X" ((arrange_empty_tree (trace "X" (x)) (trace "X" (q1)))))))))) (trace "X" ((RCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((RVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (t)) (trace "X" (([]))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))) (trace "X" ((RComp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([]))))))))))))))) (trace "X" ((RLeft (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((RWeak (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (t)) (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q')))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q')))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([]))) (trace "X" ((RExch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x0)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (q'))))))))))))))))))}));
6130 Prelude.Right u -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))})))))))))))))))))
6132 tree_of_nothing :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> HaskTyVar -> (Tree (Prelude.Maybe HaskType)) -> Arrange LeveledHaskType
6133 tree_of_nothing unitTy prodTy gaTy __U0393_0 ec t =
6134 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a ->
6135 (trace "X" (case (trace "X" (a)) of {
6136 Prelude.Just h -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((RId (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))))))))))))))));
6137 Prelude.Nothing -> (trace "X" (RId (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))}))))) (trace "X" ((\t1 iHt1 t2 iHt2 -> (trace "X" (RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((T_Branch (trace "X" (t1)) (trace "X" (t2)))))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((RComp (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((T_Branch (trace "X" (t1)) (trace "X" (t2)))))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" (t2)))))))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((RRight
6138 (trace "X" ((trace "X" ((let {
6139 mapOptionTree0 f t0 =
6140 (trace "X" (case (trace "X" (t0)) of {
6142 (trace "X" (case (trace "X" (o)) of {
6143 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6144 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6145 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6146 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" (t1))))))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" (t2))))))))))))))))) (trace "X" (iHt1))))) (trace "X" ((RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" (t2))))))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (iHt2)))))))) (trace "X" ((RCanL (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" (t))))))
6148 tree_of_nothing' :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> HaskTyVar -> (Tree (Prelude.Maybe HaskType)) -> Arrange LeveledHaskType
6149 tree_of_nothing' unitTy prodTy gaTy __U0393_0 ec t =
6150 (trace "X" ((trace "X" (tree_rect (trace "X" ((\a ->
6151 (trace "X" (case (trace "X" (a)) of {
6152 Prelude.Just h -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((RId (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))))))))))))))));
6153 Prelude.Nothing -> (trace "X" (RId (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))}))))) (trace "X" ((\t1 iHt1 t2 iHt2 -> (trace "X" (RComp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((T_Branch (trace "X" (t1)) (trace "X" (t2)))))))))))))))))))) (trace "X" ((RuCanL (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" (t1))))))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((T_Branch (trace "X" (t1)) (trace "X" (t2)))))))))))))))))))) (trace "X" ((RRight (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" (t1))))))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (iHt1))))) (trace "X" ((RLeft (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))
6154 (trace "X" ((trace "X" ((let {
6155 mapOptionTree0 f t0 =
6156 (trace "X" (case (trace "X" (t0)) of {
6158 (trace "X" (case (trace "X" (o)) of {
6159 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6160 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6161 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6162 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" (t2)))))))))))))))))
6163 (trace "X" ((trace "X" ((let {
6164 mapOptionTree0 f t0 =
6165 (trace "X" (case (trace "X" (t0)) of {
6167 (trace "X" (case (trace "X" (o)) of {
6168 Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
6169 Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
6170 T_Branch l r -> (trace "X" (T_Branch (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (l))))))) (trace "X" ((trace "X" ((mapOptionTree0 (trace "X" (f)) (trace "X" (r)))))))))}))}
6171 in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" (t1))))))))))))))))) (trace "X" (iHt2))))))))))))) (trace "X" (t))))))
6173 flatten_proof :: WeakExprVar0 -> WeakExprVar0 -> WeakExprVar0 -> (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> (ND Judg SRule) -> ND Judg Rule
6174 flatten_proof hetmet_flatten hetmet_unflatten hetmet_id unitTy prodTy gaTy gar h c x =
6175 (trace "X" ((trace "X" (nd_map' (trace "X" ((trace "X" ((flatten_judgment (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy))))))) (trace "X" ((\h0 c0 x0 ->
6176 (trace "X" (case (trace "X" (x0)) of {
6178 (trace "X" (case (trace "X" (r)) of {
6179 RArrange __U0393_0 __U0394_0 a b x1 l d -> (trace "X" ((trace "X" (flatten_arrangement'' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" (b)) (trace "X" (x1)) (trace "X" (l)) (trace "X" (d))))));
6180 RBrak __U0393_0 __U0394_0 t ec succ lev -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('z')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('B')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('\'')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
6181 REsc __U0393_0 __U0394_0 t ec succ lev -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('z')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('\'')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
6182 RNote __U0393_0 __U0394_0 __U03a3_ __U03c4_ l n ->
6183 (trace "X" (case (trace "X" (l)) of {
6184 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RNote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_))))))))) (trace "X" (([]))) (trace "X" (n)))))));
6185 (:) h2 l0 -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (h2)) (trace "X" (l0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (h2))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (h2)) (trace "X" (l0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (h2)) (trace "X" (l0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (h2))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (h2)) (trace "X" (l0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RNote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (h2)) (trace "X" (l0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (h2))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (h2)) (trace "X" (l0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_)))))))))))))))))))))) (trace "X" (([]))) (trace "X" (n)))))))}));
6186 RLit __U0393_0 __U0394_0 l l0 ->
6187 (trace "X" (case (trace "X" (l0)) of {
6188 ([]) -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RLit (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (([]))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))))))));
6189 (:) h2 l1 -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))) (trace "X" ((trace "X" ((ga_lit (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (h2))))))))) (trace "X" (([]))) (trace "X" (l))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))))))))))))))}));
6190 RVar __U0393_0 __U0394_0 __U03c3_ lev ->
6191 (trace "X" (case (trace "X" (lev)) of {
6192 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (([]))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c3_))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (([]))))))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (([])))))))))))))))))) (trace "X" (([]))))))));
6193 (:) h2 lev0 -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h2)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((ga_id (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (h2))))))))) (trace "X" (([]))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3_)))))))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (h2)) (trace "X" (lev0))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h2)) (trace "X" (lev0)))))))))))))))))))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (h2)) (trace "X" (lev0))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (((:) (trace "X" (h2)) (trace "X" (lev0)))))))))))))))))))))))}));
6194 RGlobal __U0393_0 __U0394_0 __U03c3_ l wev ->
6195 (trace "X" (case (trace "X" (__U03c3_)) of {
6197 (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (coreVarEqDecidable)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" ((trace "X" ((glob_wv (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (l))))))))))))))) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (hetmet_flatten))))))))))))))} in
6198 (trace "X" (case (trace "X" (s)) of {
6199 Prelude.True -> (trace "X" (let {t = (trace "X" (\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev)))))))))))))))} in (trace "X" (let {q = (trace "X" (\x1 -> (trace "X" (RGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (([]))) (trace "X" ((trace "X" ((mkGlobal (trace "X" (__U0393_0)) (trace "X" (t)) (trace "X" (hetmet_id))))))) (trace "X" (x1))))))} in (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((q (trace "X" (INil)))))))))))));
6201 (trace "X" (let {s0 = (trace "X" ((trace "X" (eqd_dec (trace "X" (coreVarEqDecidable)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" ((trace "X" ((glob_wv (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (l))))))))))))))) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (hetmet_unflatten))))))))))))))} in
6202 (trace "X" (case (trace "X" (s0)) of {
6203 Prelude.True -> (trace "X" (let {t = (trace "X" (\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev)))))))))))))))} in (trace "X" (let {q = (trace "X" (\x1 -> (trace "X" (RGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (([]))) (trace "X" ((trace "X" ((mkGlobal (trace "X" (__U0393_0)) (trace "X" (t)) (trace "X" (hetmet_id))))))) (trace "X" (x1))))))} in (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t)))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((q (trace "X" (INil)))))))))))));
6204 Prelude.False -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev)))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))) (trace "X" ((RGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (([]))) (trace "X" (l)) (trace "X" (wev))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev)))))))))))))))))))))))}))))}))));
6205 (:) ec lev -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('G')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
6206 RLam __U0393_0 __U0394_0 __U03a3_ tx te lev ->
6207 (trace "X" (case (trace "X" (lev)) of {
6208 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (([])))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (te))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RLam (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (([]))))))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (([])))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (te))))))))) (trace "X" (([]))))))));
6209 (:) ec lev0 -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (te)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (te)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (te)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (te)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (te)))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_))))))))))))))))))))) (trace "X" ((trace "X" ((boost (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (te)))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((ga_curry (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (tx))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (te)))))))))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))))}));
6210 RCast __U0393_0 __U0394_0 __U03a3_ __U03c3_ __U03c4_ lev ->
6211 (trace "X" (case (trace "X" (lev)) of {
6212 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RCast (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c4_))))))))) (trace "X" (([]))))))));
6213 (:) ec lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
6214 RJoin __U0393_0 p lri m x1 q l ->
6215 (trace "X" (case (trace "X" (l)) of {
6216 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (lri))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2))))))))) (trace "X" (x1))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (m))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2))))))))) (trace "X" (q))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (lri))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (m)))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2))))))))) (trace "X" (x1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2))))))))) (trace "X" (q)))))))))) (trace "X" (([])))))))))))) (trace "X" ((RJoin (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (lri))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (m))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2))))))))) (trace "X" (x1))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2))))))))) (trace "X" (q))))))) (trace "X" (([]))))))));
6217 (:) h2 l0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('J')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
6218 RApp __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ tx te lev ->
6219 (trace "X" (case (trace "X" (lev)) of {
6220 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2081_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ ite -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((tx (trace "X" (__)) (trace "X" (ite))))))))))))))) (trace "X" ((trace "X" ((flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (ite))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2082_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (tx))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2081_))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2082_)))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (te))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RApp (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2081_))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2082_))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (tx))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (te))))))))) (trace "X" (([]))))))));
6221 (:) ec lev0 -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2082_))))))))))))))) (trace "X" ((trace "X" ((Prelude.error (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('X')) (trace "X" (((:) (trace "X" ('M')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('y')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2082_)))))))))))))))))))}));
6222 RLet __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03c3___U2081_ __U03c3___U2082_ lev ->
6223 (trace "X" (case (trace "X" (lev)) of {
6224 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2081_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (([]))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2082_)))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2081_))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2082_)))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2081_))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2082_))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (([]))))))));
6225 (:) ec lev0 -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))) (trace "X" ((let {__U03a3___U2081_' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))} in (trace "X" (let {__U03a3___U2082_' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2082_)))))))))))} in (trace "X" (let {__U03a3___U2081_'' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))} in (trace "X" (let {__U03a3___U2082_'' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2082_)))))))))))} in (trace "X" (Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((boost (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_)))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((ga_first (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))))))))) (trace "X" (([]))))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RCanL (trace "X" (__U03a3___U2082_''))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((precompose (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (([])))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RExch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_'')))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" (__U03a3___U2082_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" (__U03a3___U2082_'')) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_')))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))) (trace "X" (([]))))))))))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))))}));
6226 RWhere __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03a3___U2083_ __U03c3___U2081_ __U03c3___U2082_ lev ->
6227 (trace "X" (case (trace "X" (lev)) of {
6228 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2081_))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (([]))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2083_))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2082_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2081_))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2082_))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2083_))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RWhere (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2081_))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2082_))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2083_))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_))))))))) (trace "X" (([]))))))));
6229 (:) ec lev0 -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((let {__U03a3___U2081_' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))} in (trace "X" (let {__U03a3___U2082_' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2082_)))))))))))} in (trace "X" (let {__U03a3___U2083_' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2083_)))))))))))} in (trace "X" (let {__U03a3___U2081_'' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))} in (trace "X" (let {__U03a3___U2082_'' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2082_)))))))))))} in (trace "X" (let {__U03a3___U2083_'' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2083_)))))))))))} in (trace "X" (Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (__U03a3___U2082_')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_)))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_'')) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (__U03a3___U2082_')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))))) (trace "X" ((trace "X" ((first_nd (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" (__U03a3___U2082_')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')) (trace "X" (__U03a3___U2082_'')))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_'')) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))))) (trace "X" ((trace "X" ((second_nd (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_'))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))) (trace "X" (__U03a3___U2081_')) (trace "X" (__U03a3___U2082_'')))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_'')) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" (__U03a3___U2083_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" (__U03a3___U2083_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" (__U03a3___U2083_''))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RLeft (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3___U2083_''))))) (trace "X" (__U03a3___U2083_'')) (trace "X" (__U03a3___U2081_'')) (trace "X" ((RCanL (trace "X" (__U03a3___U2083_'')))))))))))))) (trace "X" ((trace "X" ((precompose' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (__U03a3___U2081_'')) (trace "X" (__U03a3___U2083_'')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_))))))))))))))) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))))))))) (trace "X" (([])))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2082_'')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_'')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_'')) (trace "X" (__U03a3___U2083_'')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RWhere (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3___U2081_'')) (trace "X" (__U03a3___U2082_'')) (trace "X" (__U03a3___U2083_'')) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2083_'))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_')) (trace "X" ((T_Branch (trace "X" (__U03a3___U2082_')) (trace "X" (__U03a3___U2083_')))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (__U03c3___U2082_)))))))))))))))))))))) (trace "X" (([])))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))))}));
6230 RVoid __U0393_0 __U0394_0 l -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just
6231 (trace "X" ((case (trace "X" (l)) of {
6232 ([]) -> (trace "X" (MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (([])))));
6233 (:) ec lev' -> (trace "X" (MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev'))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev'))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))))))))) (trace "X" (([])))))})))))))))
6234 (trace "X" ((case (trace "X" (l)) of {
6235 ([]) -> (trace "X" (RVoid (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (([])))));
6236 (:) h2 l0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('V')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))})))));
6237 RAppT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ __U03c4_ lev ->
6238 (trace "X" (case (trace "X" (lev)) of {
6239 ([]) -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v))))))))))))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (substT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v)))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c4_)))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (substT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v)))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c4_)))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RAppT (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" (__U03a3_))))))) (trace "X" (__U03ba_)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v)))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c4_))))))))) (trace "X" (([]))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (substT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_)) (trace "X" (__U03c4_))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))))))))))))));
6240 (:) h2 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
6241 RAbsT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ lev ->
6242 (trace "X" (case (trace "X" (lev)) of {
6243 ([]) -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v))))))))))))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0)))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (([]))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((let {a = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0)))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))) (trace "X" (__U03a3_)))))))))))} in (trace "X" (let {q' = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((trace "X" ((weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_)))))))))))} in (trace "X" ((trace "X" (eq_rect_r (trace "X" (q')) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" (q')) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))))))))) (trace "X" (([]))))))))))))))))) (trace "X" (a))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" ((trace "X" ((weakCE (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U0394_0))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((weakLT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))))))))) (trace "X" ((trace "X" ((weakL (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (([]))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RAbsT (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" (__U03ba_)) (trace "X" ((\_ ite v -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)) (trace "X" (v)))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTApp (trace "X" (((:) (trace "X" (__U03ba_)) (trace "X" (__U0393_0))))) (trace "X" (__U03ba_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (weakF (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (KindStar)) (trace "X" (__U03c3_))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (freshHaskTyVar (trace "X" (__U0393_0)) (trace "X" (__U03ba_)))))))))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))))))))))))));
6244 (:) h2 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
6245 RAppCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3___U2081_ __U03c3___U2082_ __U03c3_ lev ->
6246 (trace "X" (case (trace "X" (lev)) of {
6247 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ ite -> (trace "X" (TCoerc (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (ite)))))))))))) (trace "X" ((trace "X" ((flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (ite)))))))))))) (trace "X" ((trace "X" ((flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ ite -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RAppCo (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (__U03a3_))))))) (trace "X" (__U03ba_)) (trace "X" ((\_ env -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env)))))))))))))) (trace "X" ((\_ env -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env)))))))))))))) (trace "X" ((\_ ite -> (trace "X" ((trace "X" (flatten_rawtype (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (KindStar)) (trace "X" ((trace "X" ((__U03c3_ (trace "X" (__)) (trace "X" (ite)))))))))))))) (trace "X" (([]))))))));
6248 (:) h2 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
6249 RAbsCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ __U03c3___U2081_ __U03c3___U2082_ lev ->
6250 (trace "X" (case (trace "X" (lev)) of {
6251 ([]) -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('A')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('X')) (trace "X" (((:) (trace "X" ('M')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
6252 (:) h2 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
6253 RLetRec __U0393_0 __U0394_0 lri x1 y t ->
6254 (trace "X" (case (trace "X" (t)) of {
6255 ([]) -> (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (lri))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (([])))))))) (trace "X" (y))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2))))))))) (trace "X" (y))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (lri))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((let {q = (trace "X" (RLetRec (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (lri))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2))))))))) (trace "X" (y))))))) (trace "X" (([])))))} in (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (([])))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2))))))))) (trace "X" (y)))))))))))) (trace "X" (q)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (([])))))))) (trace "X" (y)))))))))))))))))))));
6256 (:) h2 lev -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('R')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('X')) (trace "X" (((:) (trace "X" ('M')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" (')')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
6257 RCase __U0393_0 __U0394_0 lev tc __U03a3_ avars tbranches alts -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('B')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('G')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('X')) (trace "X" (((:) (trace "X" ('M')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" (')')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
6258 SBrak __U0393_0 __U0394_0 t ec succ lev ->
6259 (trace "X" (case (trace "X" (lev)) of {
6260 ([]) -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))) (trace "X" ((trace "X" ((eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))) (trace "X" ((let {succ_host = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))} in (trace "X" (let {succ_guest = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))} in (trace "X" (let {succ_args = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))} in (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ_host)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (succ_guest)) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (succ_guest)) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ_host)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (succ_guest)) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (succ_guest)) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ_host)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))) (trace "X" ((T_Branch (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (succ_guest)) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RLeft (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (succ_host)) (trace "X" ((trace "X" ((tree_of_nothing (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (succ_guest)) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (succ_guest)) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (succ_guest)) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (succ_guest)) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (succ_guest)) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RCanR (trace "X" (succ_host))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" (succ_guest)) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (succ_guest))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((ga_unkappa (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" (succ_guest)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))) (trace "X" (succ_host)) (trace "X" (succ_args))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (succ_host)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (succ_guest))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RExch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))))) (trace "X" ((trace "X" ((arrange_brak (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (succ)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))));
6261 (:) h1 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('B')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('3')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
6262 SEsc __U0393_0 __U0394_0 t ec succ lev ->
6263 (trace "X" (case (trace "X" (lev)) of {
6265 (trace "X" ((trace "X" (eq_rect_r (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))
6266 (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((T_Branch (trace "X" (succ)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))))))))))))
6267 (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))
6268 (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))
6269 (trace "X" ((trace "X" ((eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((arrange_esc (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ec)) (trace "X" (succ)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))
6270 (trace "X" ((let {q' = (trace "X" ((trace "X" (decide_tree_empty (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))} in
6271 (trace "X" (case (trace "X" (q')) of {
6272 Prelude.Left s -> (trace "X" (case (trace "X" (s)) of {
6273 ExistT x1 _ -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))) (trace "X" ((let {succ_host = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))} in (trace "X" (let {succ_args = (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))} in (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (succ_host))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (succ_host))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (succ_host))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (succ_host))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (succ_host))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (succ_host))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((Nd_llecnac (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (succ_host))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" (succ_host))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((tree_rect (trace "X" ((\a -> (trace "X" ((trace "X" (ga_id (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (a)))))))))))))))))))))) (trace "X" ((\x2 iHx1 x3 iHx2 -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (x2)) (trace "X" (x3)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (x2)) (trace "X" (x3)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((ga_join (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x3)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (iHx1)) (trace "X" (iHx2))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (x2)) (trace "X" (x3)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (x2)) (trace "X" (x3)))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (trace "X" (x2)) (trace "X" (x3)))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RCanL (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))) (trace "X" (x1))))))) (trace "X" ((trace "X" ((boost (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((postcompose (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (succ_args))))) (trace "X" (succ_args))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" (succ_args))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((ga_cancell (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" (succ_args))))))) (trace "X" ((trace "X" ((boost (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (succ_args))))) (trace "X" (succ_args))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" (succ_args))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((postcompose (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (succ_args))))) (trace "X" (succ_args)) (trace "X" (([]))) (trace "X" ((trace "X" ((firstify (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (succ_args)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((tree_rect (trace "X" ((\a -> (trace "X" ((trace "X" (ga_id (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))) (trace "X" ((\x2 iHx1 x3 iHx2 -> (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x3))))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((ga_cancell (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))) (trace "X" ((trace "X" ((boost (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x3))))))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((postcompose (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x3))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (([]))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x3))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((firstify (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (iHx1))))))) (trace "X" ((trace "X" ((boost (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x3))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((postcompose (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x3))))))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((secondify (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" (([]))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x3)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x4 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x4)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x4 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x2)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (iHx2))))))))))))))))))))))))))))))))))) (trace "X" (x1))))))))))))))))))))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RCanL (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RuCanR (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x2 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x2)))))))))))))))) (trace "X" ((trace "X" ((mapTree (trace "X" ((\x2 -> (trace "X" (Prelude.Nothing))))) (trace "X" (x1)))))))))))) (trace "X" (succ_args))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RuCanR (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))}));
6274 Prelude.Right u -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('B')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('G')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('F')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('X')) (trace "X" (((:) (trace "X" ('M')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" (')')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))})))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RCanR (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([])))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (v2t (trace "X" (__U0393_0)) (trace "X" (ec))))))))) (trace "X" ((T_Branch (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))))))))))))))))))))))))))))) (trace "X" (([]))) (trace "X" ((RLeft (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\ht -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (levels_to_tcode (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht))))))))) (trace "X" ((trace "X" ((getlev0 (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))))) (trace "X" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))) (trace "X" ((trace "X" ((tree_of_nothing' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x1 _ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x1)))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" ((T_Branch (trace "X" (succ)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([]))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (t))))))))))))))))))));
6275 (:) h1 lev0 -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" ('0')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('3')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (';')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))}))))) (trace "X" (h)) (trace "X" (c)) (trace "X" (x))))))
6277 skolemize_and_flatten_proof :: WeakExprVar0 -> WeakExprVar0 -> WeakExprVar0 -> (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> (ND Judg Rule) -> ND Judg Rule
6278 skolemize_and_flatten_proof hetmet_flatten hetmet_unflatten hetmet_id unitTy prodTy gaTy gar h c x =
6279 (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_judgment (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" (h)))))))))))) (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_judgment (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" (c)))))))))))) (trace "X" ((trace "X" ((flatten_proof (trace "X" (hetmet_flatten)) (trace "X" (hetmet_unflatten)) (trace "X" (hetmet_id)) (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (gar)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" (h))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (skolemize_judgment)) (trace "X" (c))))))) (trace "X" ((trace "X" ((skolemize_proof (trace "X" (h)) (trace "X" (c)) (trace "X" (x)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 -> (trace "X" ((trace "X" (flatten_judgment (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" ((trace "X" ((skolemize_judgment (trace "X" (x0)))))))))))))) (trace "X" (c)))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x0 -> (trace "X" ((trace "X" (flatten_judgment (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" ((trace "X" ((skolemize_judgment (trace "X" (x0)))))))))))))) (trace "X" (h)))))))))))
6285 __U0394_ :: CoercionEnv
6289 __U03c6_ :: TyVarResolver
6291 (trace "X" (Error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreVarToString)) (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WTypeVar (trace "X" (cv))))))))))))))))))))))
6293 __U03c8_ :: CoVarResolver
6295 (trace "X" (Error (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('!')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6297 __U03be_ :: Var.Var -> LeveledHaskType
6299 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (cv)))))) of {
6301 (trace "X" (case (trace "X" ((trace "X" (weakTypeToTypeOfKind (trace "X" (__U0393_)) (trace "X" (__U03c6_)) (trace "X" ((trace "X" ((weakExprVarToWeakType (trace "X" (wev))))))) (trace "X" (KindStar)))))) of {
6302 Error s -> (trace "X" ((trace "X" (Prelude.error (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreVarToString)) (trace "X" (cv)))))))))))) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))) (trace "X" (s)))))))))));
6303 OK t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))}));
6304 WTypeVar w -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
6305 WCoerVar w -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))
6307 header :: Prelude.String
6309 (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('%')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" ('/')) (trace "X" (((:) (trace "X" ('/')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('.')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('.')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('/')) (trace "X" (((:) (trace "X" ('~')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('/')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('.')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('#')) (trace "X" (((:) (trace "X" ('1')) (trace "X" (((:) (trace "X" ('#')) (trace "X" (((:) (trace "X" ('2')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('B')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('#')) (trace "X" (((:) (trace "X" ('1')) (trace "X" (((:) (trace "X" ('}')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('#')) (trace "X" (((:) (trace "X" ('2')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('[')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('=')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (',')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('=')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (']')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('[')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (',')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (']')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('h')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('P')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('B')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('5')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))
6311 footer :: Prelude.String
6313 (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (eol)) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('m')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))
6315 coreToStringExpr' :: (CoreSyn.Expr Var.Var) -> OrError Prelude.String
6316 coreToStringExpr' ce =
6317 (trace "X" ((trace "X" (addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('S')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreExprToString)) (trace "X" (ce)))))))))))) (trace "X" ((trace "X" ((addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreTypeToString)) (trace "X" ((trace "X" ((CoreUtils.exprType (trace "X" (ce))))))))))))))))) (trace "X" ((trace "X" ((orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (ce))))))) (trace "X" ((\we -> (trace "X" ((trace "X" (addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (weakExprToString)) (trace "X" (we)))))))))))) (trace "X" ((trace "X" ((addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreTypeToString)) (trace "X" ((trace "X" ((CoreUtils.exprType (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (we)))))))))))))))))))))) (trace "X" ((trace "X" ((orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (we))))))) (trace "X" ((\t -> (trace "X" ((trace "X" (addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (weakTypeToString)) (trace "X" (t)))))))))))) (trace "X" ((trace "X" ((orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_)) (trace "X" (__U03c6_)) (trace "X" (t)) (trace "X" (KindStar))))))) (trace "X" ((\__U03c4_ -> (trace "X" ((trace "X" (addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('H')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" ((trace "X" ((typeToStringInstance (trace "X" (__U0393_)) (trace "X" (KindStar))))))) (trace "X" (__U03c4_)))))))))))) (trace "X" ((trace "X" ((orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_)) (trace "X" (__U0394_)) (trace "X" (__U03c6_)) (trace "X" (__U03c8_)) (trace "X" (__U03be_)) (trace "X" ((\x -> (trace "X" (Prelude.False))))) (trace "X" (__U03c4_)) (trace "X" (([]))) (trace "X" (we))))))) (trace "X" ((\e -> (trace "X" (OK (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (eol)) (trace "X" (eol))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('$')) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (latexMathToString)) (trace "X" ((trace "X" ((nd_ml_toLatexMath (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_)) (trace "X" (__U0394_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (coreVarEqDecidable)) (trace "X" (__U0393_)) (trace "X" (__U0394_)) (trace "X" (__U03be_)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (([])))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (([]))))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (([])))))))))))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (coreVarEqDecidable)) (trace "X" (__U0393_)) (trace "X" (__U0394_)) (trace "X" (__U03be_)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (([])))))) (trace "X" (e)))))))))))))))))))))) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('$')) (trace "X" ([]))))))))))))) (trace "X" (eol))))))) (trace "X" (((:) (trace "X" ('\\')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" ('{')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('w')) (trace "X" (((:) (trace "X" ('}')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (eol))))))) (trace "X" (eol))))))) (trace "X" (eol)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6319 coreToStringExpr :: (CoreSyn.Expr Var.Var) -> Prelude.String
6320 coreToStringExpr ce =
6321 (trace "X" (case (trace "X" ((trace "X" (coreToStringExpr' (trace "X" (ce)))))) of {
6322 Error s -> (trace "X" ((trace "X" (Prelude.error (trace "X" (s))))));
6323 OK x -> (trace "X" (x))}))
6325 coreToStringBind :: (CoreSyn.Bind Var.Var) -> Prelude.String
6326 coreToStringBind binds =
6327 (trace "X" (case (trace "X" (binds)) of {
6328 CoreSyn.NonRec c e -> (trace "X" ((trace "X" (coreToStringExpr (trace "X" (e))))));
6329 CoreSyn.Rec lbe -> (trace "X" ((trace "X" (fold_left (trace "X" ((\x y -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (x)) (trace "X" (eol))))))) (trace "X" (eol))))))) (trace "X" (y))))))))) (trace "X" ((trace "X" ((map (trace "X" ((\x -> (trace "X" ((trace "X" (coreToStringExpr (trace "X" ((trace "X" ((snd (trace "X" (x)))))))))))))) (trace "X" (lbe))))))) (trace "X" ([]))))))}))
6331 coqPassCoreToString :: (([]) (CoreSyn.Bind Var.Var)) -> Prelude.String
6332 coqPassCoreToString lbinds =
6333 (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (header)) (trace "X" ((trace "X" ((fold_left (trace "X" ((\x y -> (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (x)) (trace "X" (eol))))))) (trace "X" (eol))))))) (trace "X" (y))))))))) (trace "X" ((trace "X" ((map (trace "X" (coreToStringBind)) (trace "X" (lbinds))))))) (trace "X" ([])))))))))))) (trace "X" (footer))))))
6335 mkWeakTypeVar0 :: Unique.Unique -> Kind -> WeakTypeVar0
6336 mkWeakTypeVar0 u k =
6337 (trace "X" (WeakTypeVar (trace "X" ((trace "X" (((\n k -> Var.mkTyVar n (kindToCoreKind k)) (trace "X" ((trace "X" (((\u s d -> Name.mkSystemName u (OccName.mkOccName (OccName.varNameDepth (nat2int d)) s)) (trace "X" (u)) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('v')) (trace "X" ([])))))))) (trace "X" (O))))))) (trace "X" (k))))))) (trace "X" (k))))
6339 mkWeakCoerVar0 :: Unique.Unique -> Kind -> WeakType -> WeakType -> WeakCoerVar0
6340 mkWeakCoerVar0 u k t1 t2 =
6341 (trace "X" (WeakCoerVar (trace "X" ((trace "X" (((\n t1 t2 -> Var.mkCoVar n (Coercion.mkCoKind t1 t2)) (trace "X" ((trace "X" (((\u s d -> Name.mkSystemName u (OccName.mkOccName (OccName.varNameDepth (nat2int d)) s)) (trace "X" (u)) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('v')) (trace "X" ([])))))))) (trace "X" (O))))))) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t1))))))) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t2)))))))))))) (trace "X" (t1)) (trace "X" (t2))))
6343 mkWeakExprVar0 :: Unique.Unique -> WeakType -> WeakExprVar0
6344 mkWeakExprVar0 u t =
6345 (trace "X" (WeakExprVar (trace "X" ((trace "X" ((Id.mkLocalId (trace "X" ((trace "X" (((\u s d -> Name.mkSystemName u (OccName.mkOccName (OccName.varNameDepth (nat2int d)) s)) (trace "X" (u)) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('v')) (trace "X" ([])))))))) (trace "X" (O))))))) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t)))))))))))) (trace "X" (t))))
6347 larger :: (([]) Nat) -> SigT Nat ()
6349 (trace "X" ((trace "X" (list_rec (trace "X" ((ExistT (trace "X" (O)) (trace "X" (__))))) (trace "X" ((\a ln0 iHln -> (trace "X" (case (trace "X" (iHln)) of {
6350 ExistT n _ -> (trace "X" (ExistT (trace "X" ((trace "X" ((plus (trace "X" ((S (trace "X" (n))))) (trace "X" (a))))))) (trace "X" (__))))}))))) (trace "X" (ln))))))
6352 freshNat :: FreshMonad Nat
6354 (trace "X" (Build_FreshMonad (trace "X" ((Build_Monad (trace "X" ((\_ v -> (trace "X" (unsafeCoerce (trace "X" ((\n -> (trace "X" ((,) (trace "X" (n)) (trace "X" (v)))))))))))) (trace "X" ((\_ _ x x0 -> (trace "X" (unsafeCoerce (trace "X" ((\h -> (trace "X" (let {q = (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x)) (trace "X" (h))))))} in (trace "X" (case (trace "X" (q)) of {
6355 (,) n' v -> (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x0)) (trace "X" (v)) (trace "X" (n'))))))}))))))))))))))) (trace "X" ((\tl -> (trace "X" (unsafeCoerce (trace "X" ((\h -> (trace "X" ((,) (trace "X" ((S (trace "X" (h))))) (trace "X" ((let {q = (trace "X" ((trace "X" (larger (trace "X" (tl))))))} in (trace "X" (case (trace "X" (q)) of {
6356 ExistT n' _ -> (trace "X" (ExistT (trace "X" (n')) (trace "X" (__))))})))))))))))))))))
6358 coreVarToWeakExprVarOrError :: Var.Var -> WeakExprVar0
6359 coreVarToWeakExprVarOrError cv =
6360 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (cv)))))) of {
6361 WExprVar wv -> (trace "X" (wv));
6362 _ -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('M')) (trace "X" (((:) (trace "X" ('P')) (trace "X" (((:) (trace "X" ('O')) (trace "X" (((:) (trace "X" ('S')) (trace "X" (((:) (trace "X" ('S')) (trace "X" (((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('B')) (trace "X" (((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('E')) (trace "X" ([]))))))))))))))))))))))))))))))))))))}))
6364 curry :: TypeEnv -> CoercionEnv -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskLevel -> ND Judg Rule
6365 curry __U0393_0 __U0394_0 a s __U03a3_ lev =
6366 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (a)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (a)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_rlecnac (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_prod (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (a)))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev)))))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (a)))))))) (trace "X" (lev))))))))))) (trace "X" ((RVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" (lev)))))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (a)))))))) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((RApp (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" (a)) (trace "X" (s)) (trace "X" (lev))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev)) (trace "X" ((RExch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" (__U03a3_)))))))))))))
6368 fToC1 :: TypeEnv -> CoercionEnv -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> HaskLevel -> (ND Judg Rule) -> ND Judg Rule
6369 fToC1 __U0393_0 __U0394_0 a s lev pf =
6370 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" (pf)) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((curry (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" (s)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (lev))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev)) (trace "X" ((RCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev)))))))))))))))))))))))))
6372 fToC2 :: TypeEnv -> CoercionEnv -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> HaskLevel -> (ND Judg Rule) -> ND Judg Rule
6373 fToC2 __U0393_0 __U0394_0 a1 a2 s lev pf =
6374 (trace "X" (Nd_comp (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a1 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env))))))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a2)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" (pf)) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a1 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env))))))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a2)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((curry (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a1)) (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (lev))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a2)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev)) (trace "X" ((RCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev)))))))))))))))))))) (trace "X" ((Nd_comp (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((a2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a2)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a2)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((curry (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a2)) (trace "X" (s)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" (lev))))))) (trace "X" ((Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a2)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a2)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a2)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a2)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (s)))))))) (trace "X" (lev)) (trace "X" ((RExch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a2)) (trace "X" (lev)))))))))))))))))))))))))))))))
6376 ga_unit :: TyCon.TyCon -> (RawHaskType a1) -> RawHaskType a1
6377 ga_unit hetmet_PGArrow_unit_TyCon ec =
6378 (trace "X" (TyFunApp (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (((:) (trace "X" (eCKind)) (trace "X" (([])))))) (trace "X" (KindStar)) (trace "X" ((TyFunApp_cons (trace "X" (eCKind)) (trace "X" (([]))) (trace "X" (ec)) (trace "X" (TyFunApp_nil)))))))
6380 ga_prod :: TyCon.TyCon -> (RawHaskType a1) -> (RawHaskType a1) -> (RawHaskType a1) -> RawHaskType a1
6381 ga_prod hetmet_PGArrow_tensor_TyCon ec a b =
6382 (trace "X" (TyFunApp (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (((:) (trace "X" (eCKind)) (trace "X" (((:) (trace "X" (KindStar)) (trace "X" (((:) (trace "X" (KindStar)) (trace "X" (([])))))))))))) (trace "X" (KindStar)) (trace "X" ((TyFunApp_cons (trace "X" (eCKind)) (trace "X" (((:) (trace "X" (KindStar)) (trace "X" (((:) (trace "X" (KindStar)) (trace "X" (([]))))))))) (trace "X" (ec)) (trace "X" ((TyFunApp_cons (trace "X" (KindStar)) (trace "X" (((:) (trace "X" (KindStar)) (trace "X" (([])))))) (trace "X" (a)) (trace "X" ((TyFunApp_cons (trace "X" (KindStar)) (trace "X" (([]))) (trace "X" (b)) (trace "X" (TyFunApp_nil)))))))))))))
6384 ga_type :: TyCon.TyCon -> (RawHaskType a1) -> (RawHaskType a1) -> (RawHaskType a1) -> RawHaskType a1
6385 ga_type hetmet_PGArrowTyCon a b c =
6386 (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar)))))))) (trace "X" (eCKind)) (trace "X" ((TyFunApp (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (([]))) (trace "X" ((KindArrow (trace "X" (eCKind)) (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))))))))) (trace "X" (TyFunApp_nil))))) (trace "X" (a))))) (trace "X" (b))))) (trace "X" (c))))
6388 ga_type' :: TyCon.TyCon -> TypeEnv -> HaskType -> HaskType -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
6389 ga_type' hetmet_PGArrowTyCon __U0393_0 a b c ite =
6390 (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar)))))))) (trace "X" (eCKind)) (trace "X" ((TyFunApp (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (([]))) (trace "X" ((KindArrow (trace "X" (eCKind)) (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))))))))) (trace "X" (TyFunApp_nil))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (a)) (trace "X" (__)) (trace "X" (ite)))))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (b)) (trace "X" (__)) (trace "X" (ite)))))))))) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (c)) (trace "X" (__)) (trace "X" (ite)))))))))
6392 mkGlob2' :: TypeEnv -> Kind -> Kind -> (HaskType -> HaskType -> HaskType) -> (IList Kind HaskType) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
6393 mkGlob2' __U0393_0 __U03ba___U2081_ __U03ba___U2082_ f x x0 =
6395 x1 = (trace "X" (\_ ->
6396 (trace "X" (case (trace "X" (x)) of {
6397 INil -> (trace "X" (false_rect));
6399 (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2081_)) (trace "X" ((\_ ->
6400 (trace "X" ((trace "X" (eq_rect (trace "X" (((:) (trace "X" (__U03ba___U2082_)) (trace "X" (([])))))) (trace "X" ((\x3 x4 ->
6401 (trace "X" (case (trace "X" (x4)) of {
6402 INil -> (trace "X" (false_rect));
6403 ICons i0 is0 x5 x6 -> (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2082_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (([]))) (trace "X" ((\x7 x8 -> (trace "X" ((trace "X" (f (trace "X" (x3)) (trace "X" (x7))))))))) (trace "X" (is0))))))))) (trace "X" (i0)) (trace "X" (__)) (trace "X" (x5)) (trace "X" (x6))))))}))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x1)) (trace "X" (x2))))))}))))}
6405 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x1)) (trace "X" (__)) (trace "X" (__)) (trace "X" (x0))))))))
6407 mkGlob2 :: TypeEnv -> CoercionEnv -> HaskLevel -> Kind -> Kind -> Var.Var -> (HaskType -> HaskType -> HaskType) -> HaskType -> HaskType -> ND Judg Rule
6408 mkGlob2 __U0393_0 __U0394_0 l __U03ba___U2081_ __U03ba___U2082_ cv f x y =
6409 (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x)) (trace "X" (y))))))))))))) (trace "X" (l))))))))))) (trace "X" ((RGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" ((Build_Global (trace "X" ((trace "X" ((coreVarToWeakExprVarOrError (trace "X" (cv))))))) (trace "X" (((:) (trace "X" (__U03ba___U2081_)) (trace "X" (((:) (trace "X" (__U03ba___U2082_)) (trace "X" (([]))))))))) (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (mkGlob2' (trace "X" (__U0393_0)) (trace "X" (__U03ba___U2081_)) (trace "X" (__U03ba___U2082_)) (trace "X" (f)) (trace "X" (x0)))))))))))) (trace "X" ((ICons (trace "X" (__U03ba___U2081_)) (trace "X" (((:) (trace "X" (__U03ba___U2082_)) (trace "X" (([])))))) (trace "X" (x)) (trace "X" ((ICons (trace "X" (__U03ba___U2082_)) (trace "X" (([]))) (trace "X" (y)) (trace "X" (INil)))))))))))))
6411 mkGlob3' :: TypeEnv -> Kind -> Kind -> Kind -> (HaskType -> HaskType -> HaskType -> HaskType) -> (IList Kind HaskType) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
6412 mkGlob3' __U0393_0 __U03ba___U2081_ __U03ba___U2082_ __U03ba___U2083_ f x x0 =
6414 x1 = (trace "X" (\_ ->
6415 (trace "X" (case (trace "X" (x)) of {
6416 INil -> (trace "X" (false_rect));
6418 (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2081_)) (trace "X" ((\_ ->
6419 (trace "X" ((trace "X" (eq_rect (trace "X" (((:) (trace "X" (__U03ba___U2082_)) (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (([]))))))))) (trace "X" ((\x3 x4 ->
6420 (trace "X" (case (trace "X" (x4)) of {
6421 INil -> (trace "X" (false_rect));
6422 ICons i0 is0 x5 x6 ->
6423 (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2082_)) (trace "X" ((\_ ->
6424 (trace "X" ((trace "X" (eq_rect (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (([])))))) (trace "X" ((\x7 x8 ->
6425 (trace "X" (case (trace "X" (x8)) of {
6426 INil -> (trace "X" (false_rect));
6427 ICons i1 is1 x9 x10 -> (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2083_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (([]))) (trace "X" ((\x11 x12 -> (trace "X" ((trace "X" (f (trace "X" (x3)) (trace "X" (x7)) (trace "X" (x11))))))))) (trace "X" (is1))))))))) (trace "X" (i1)) (trace "X" (__)) (trace "X" (x9)) (trace "X" (x10))))))}))))) (trace "X" (is0))))))))) (trace "X" (i0)) (trace "X" (__)) (trace "X" (x5)) (trace "X" (x6))))))}))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x1)) (trace "X" (x2))))))}))))}
6429 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x1)) (trace "X" (__)) (trace "X" (__)) (trace "X" (x0))))))))
6431 mkGlob3 :: TypeEnv -> CoercionEnv -> HaskLevel -> Kind -> Kind -> Kind -> Var.Var -> (HaskType -> HaskType -> HaskType -> HaskType) -> HaskType -> HaskType -> HaskType -> ND Judg Rule
6432 mkGlob3 __U0393_0 __U0394_0 l __U03ba___U2081_ __U03ba___U2082_ __U03ba___U2083_ cv f x y z =
6433 (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x)) (trace "X" (y)) (trace "X" (z))))))))))))) (trace "X" (l))))))))))) (trace "X" ((RGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" ((Build_Global (trace "X" ((trace "X" ((coreVarToWeakExprVarOrError (trace "X" (cv))))))) (trace "X" (((:) (trace "X" (__U03ba___U2081_)) (trace "X" (((:) (trace "X" (__U03ba___U2082_)) (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (([])))))))))))) (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (mkGlob3' (trace "X" (__U0393_0)) (trace "X" (__U03ba___U2081_)) (trace "X" (__U03ba___U2082_)) (trace "X" (__U03ba___U2083_)) (trace "X" (f)) (trace "X" (x0)))))))))))) (trace "X" ((ICons (trace "X" (__U03ba___U2081_)) (trace "X" (((:) (trace "X" (__U03ba___U2082_)) (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (([]))))))))) (trace "X" (x)) (trace "X" ((ICons (trace "X" (__U03ba___U2082_)) (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (([])))))) (trace "X" (y)) (trace "X" ((ICons (trace "X" (__U03ba___U2083_)) (trace "X" (([]))) (trace "X" (z)) (trace "X" (INil))))))))))))))))
6435 mkGlob4' :: TypeEnv -> Kind -> Kind -> Kind -> Kind -> (HaskType -> HaskType -> HaskType -> HaskType -> HaskType) -> (IList Kind HaskType) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
6436 mkGlob4' __U0393_0 __U03ba___U2081_ __U03ba___U2082_ __U03ba___U2083_ __U03ba___U2084_ f x x0 =
6438 x1 = (trace "X" (\_ ->
6439 (trace "X" (case (trace "X" (x)) of {
6440 INil -> (trace "X" (false_rect));
6442 (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2081_)) (trace "X" ((\_ ->
6443 (trace "X" ((trace "X" (eq_rect (trace "X" (((:) (trace "X" (__U03ba___U2082_)) (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (((:) (trace "X" (__U03ba___U2084_)) (trace "X" (([])))))))))))) (trace "X" ((\x3 x4 ->
6444 (trace "X" (case (trace "X" (x4)) of {
6445 INil -> (trace "X" (false_rect));
6446 ICons i0 is0 x5 x6 ->
6447 (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2082_)) (trace "X" ((\_ ->
6448 (trace "X" ((trace "X" (eq_rect (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (((:) (trace "X" (__U03ba___U2084_)) (trace "X" (([]))))))))) (trace "X" ((\x7 x8 ->
6449 (trace "X" (case (trace "X" (x8)) of {
6450 INil -> (trace "X" (false_rect));
6451 ICons i1 is1 x9 x10 ->
6452 (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2083_)) (trace "X" ((\_ ->
6453 (trace "X" ((trace "X" (eq_rect (trace "X" (((:) (trace "X" (__U03ba___U2084_)) (trace "X" (([])))))) (trace "X" ((\x11 x12 ->
6454 (trace "X" (case (trace "X" (x12)) of {
6455 INil -> (trace "X" (false_rect));
6456 ICons i2 is2 x13 x14 -> (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2084_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" (([]))) (trace "X" ((\x15 x16 -> (trace "X" ((trace "X" (f (trace "X" (x3)) (trace "X" (x7)) (trace "X" (x11)) (trace "X" (x15))))))))) (trace "X" (is2))))))))) (trace "X" (i2)) (trace "X" (__)) (trace "X" (x13)) (trace "X" (x14))))))}))))) (trace "X" (is1))))))))) (trace "X" (i1)) (trace "X" (__)) (trace "X" (x9)) (trace "X" (x10))))))}))))) (trace "X" (is0))))))))) (trace "X" (i0)) (trace "X" (__)) (trace "X" (x5)) (trace "X" (x6))))))}))))) (trace "X" (is))))))))) (trace "X" (i)) (trace "X" (__)) (trace "X" (x1)) (trace "X" (x2))))))}))))}
6458 (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x1)) (trace "X" (__)) (trace "X" (__)) (trace "X" (x0))))))))
6460 mkGlob4 :: TypeEnv -> CoercionEnv -> HaskLevel -> Kind -> Kind -> Kind -> Kind -> Var.Var -> (HaskType -> HaskType -> HaskType -> HaskType -> HaskType) -> HaskType -> HaskType -> HaskType -> HaskType -> ND Judg Rule
6461 mkGlob4 __U0393_0 __U0394_0 l __U03ba___U2081_ __U03ba___U2082_ __U03ba___U2083_ __U03ba___U2084_ cv f x y z q =
6462 (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x)) (trace "X" (y)) (trace "X" (z)) (trace "X" (q))))))))))))) (trace "X" (l))))))))))) (trace "X" ((RGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" ((Build_Global (trace "X" ((trace "X" ((coreVarToWeakExprVarOrError (trace "X" (cv))))))) (trace "X" (((:) (trace "X" (__U03ba___U2081_)) (trace "X" (((:) (trace "X" (__U03ba___U2082_)) (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (((:) (trace "X" (__U03ba___U2084_)) (trace "X" (([]))))))))))))))) (trace "X" ((\x0 _ -> (trace "X" ((trace "X" (mkGlob4' (trace "X" (__U0393_0)) (trace "X" (__U03ba___U2081_)) (trace "X" (__U03ba___U2082_)) (trace "X" (__U03ba___U2083_)) (trace "X" (__U03ba___U2084_)) (trace "X" (f)) (trace "X" (x0)))))))))))) (trace "X" ((ICons (trace "X" (__U03ba___U2081_)) (trace "X" (((:) (trace "X" (__U03ba___U2082_)) (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (((:) (trace "X" (__U03ba___U2084_)) (trace "X" (([])))))))))))) (trace "X" (x)) (trace "X" ((ICons (trace "X" (__U03ba___U2082_)) (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (((:) (trace "X" (__U03ba___U2084_)) (trace "X" (([]))))))))) (trace "X" (y)) (trace "X" ((ICons (trace "X" (__U03ba___U2083_)) (trace "X" (((:) (trace "X" (__U03ba___U2084_)) (trace "X" (([])))))) (trace "X" (z)) (trace "X" ((ICons (trace "X" (__U03ba___U2084_)) (trace "X" (([]))) (trace "X" (q)) (trace "X" (INil)))))))))))))))))))
6464 gat :: TyCon.TyCon -> TyCon.TyCon -> TypeEnv -> HaskType -> (Tree (Prelude.Maybe HaskType)) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
6465 gat hetmet_PGArrow_unit_TyCon hetmet_PGArrow_tensor_TyCon __U0393_0 ec x x0 =
6466 (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x)) (trace "X" (x0))))))
6468 my_ga :: TyCon.TyCon -> TyCon.TyCon -> TyCon.TyCon -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Garrow
6469 my_ga hetmet_PGArrowTyCon hetmet_PGArrow_unit_TyCon hetmet_PGArrow_tensor_TyCon hetmet_pga_id hetmet_pga_comp hetmet_pga_first hetmet_pga_second hetmet_pga_cancell hetmet_pga_cancelr hetmet_pga_uncancell hetmet_pga_uncancelr hetmet_pga_assoc hetmet_pga_unassoc hetmet_pga_copy hetmet_pga_drop hetmet_pga_swap =
6470 (trace "X" (Build_garrow (trace "X" ((\__U0393_0 __U0394_0 ec l a -> (trace "X" ((trace "X" (mkGlob2 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_id)) (trace "X" ((\ec0 a0 _ -> (trace "X" ((trace "X" (ga_type' (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" (a0)) (trace "X" (a0))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a -> (trace "X" ((trace "X" (mkGlob2 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_cancelr)) (trace "X" ((\ec0 a0 _ -> (trace "X" ((trace "X" (ga_type' (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))) (trace "X" (a0))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a -> (trace "X" ((trace "X" (mkGlob2 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_cancell)) (trace "X" ((\ec0 a0 _ -> (trace "X" ((trace "X" (ga_type' (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a)))))))))))) (trace "X" (a0))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a -> (trace "X" ((trace "X" (mkGlob2 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_uncancelr)) (trace "X" ((\ec0 a0 _ -> (trace "X" ((trace "X" (ga_type' (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" (a0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))))))))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a -> (trace "X" ((trace "X" (mkGlob2 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_uncancell)) (trace "X" ((\ec0 a0 _ -> (trace "X" ((trace "X" (ga_type' (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" (a0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))))))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a b c -> (trace "X" ((trace "X" (mkGlob4 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_assoc)) (trace "X" ((\ec0 a0 b0 c0 _ -> (trace "X" ((trace "X" (ga_type' (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" (c)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))))))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (b))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (c)))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a b c -> (trace "X" ((trace "X" (mkGlob4 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_unassoc)) (trace "X" ((\ec0 a0 b0 c0 _ -> (trace "X" ((trace "X" (ga_type' (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" (c))))))))))))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (b))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (c)))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a b -> (trace "X" ((trace "X" (mkGlob3 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_swap)) (trace "X" ((\ec0 a0 b0 _ -> (trace "X" ((trace "X" (ga_type' (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (a))))))))))))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (b)))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a -> (trace "X" ((trace "X" (mkGlob2 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_drop)) (trace "X" ((\ec0 a0 _ -> (trace "X" ((trace "X" (ga_type' (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" (a))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a -> (trace "X" ((trace "X" (mkGlob2 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_copy)) (trace "X" ((\ec0 a0 _ -> (trace "X" ((trace "X" (ga_type' (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" (a))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk_tree (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (a))))))))))))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a b x -> (trace "X" ((trace "X" (fToC1 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (x)))))))))))) (trace "X" (l)) (trace "X" ((trace "X" ((mkGlob4 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_first)) (trace "X" ((\ec0 a0 b0 c _ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" (a)) (trace "X" (b)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (x))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (x))))) (trace "X" (env)))))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (b))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x))))))))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a b x -> (trace "X" ((trace "X" (fToC1 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" ((T_Branch (trace "X" (x)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (x)) (trace "X" (b)))))))))))) (trace "X" (l)) (trace "X" ((trace "X" ((mkGlob4 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_second)) (trace "X" ((\ec0 a0 b0 c _ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" (a)) (trace "X" (b)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" ((T_Branch (trace "X" (x)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (x)) (trace "X" (b))))) (trace "X" (env)))))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (b))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (x))))))))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([]))))))))))))))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a b c -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('c')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('y')) (trace "X" ([]))))))))))))))))))))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a b c -> (trace "X" ((trace "X" (fToC2 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (b)) (trace "X" (c))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a)) (trace "X" (c))))))))) (trace "X" (l)) (trace "X" ((trace "X" ((mkGlob4 (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (l)) (trace "X" (eCKind)) (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" (hetmet_pga_comp)) (trace "X" ((\ec0 a0 b0 c0 _ env -> (trace "X" (TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" (a)) (trace "X" (b)) (trace "X" (env)))))))))) (trace "X" ((TApp (trace "X" (KindStar)) (trace "X" (KindStar)) (trace "X" ((TApp (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar))))) (trace "X" (KindStar)) (trace "X" (TArrow)) (trace "X" ((trace "X" ((ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" (b)) (trace "X" (c)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((ga_mk (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_0)) (trace "X" (ec0)) (trace "X" (a)) (trace "X" (c)) (trace "X" (env))))))))))))))) (trace "X" (ec)) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (a))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (b))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (gat (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (__U0393_0)) (trace "X" (ec)) (trace "X" (c))))))))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a b c -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('l')) (trace "X" (((:) (trace "X" ('y')) (trace "X" ([]))))))))))))))))))))))))))))))))) (trace "X" ((\__U0393_0 __U0394_0 ec l a -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('_')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('a')) (trace "X" ([])))))))))))))))))))))))))))))))))))
6472 hetmet_brak' :: Var.Var -> WeakExprVar0
6473 hetmet_brak' hetmet_brak =
6474 (trace "X" ((trace "X" (coreVarToWeakExprVarOrError (trace "X" (hetmet_brak))))))
6476 hetmet_esc' :: Var.Var -> WeakExprVar0
6477 hetmet_esc' hetmet_esc =
6478 (trace "X" ((trace "X" (coreVarToWeakExprVarOrError (trace "X" (hetmet_esc))))))
6480 hetmet_flatten' :: Var.Var -> WeakExprVar0
6481 hetmet_flatten' hetmet_flatten =
6482 (trace "X" ((trace "X" (coreVarToWeakExprVarOrError (trace "X" (hetmet_flatten))))))
6484 hetmet_unflatten' :: Var.Var -> WeakExprVar0
6485 hetmet_unflatten' hetmet_unflatten =
6486 (trace "X" ((trace "X" (coreVarToWeakExprVarOrError (trace "X" (hetmet_unflatten))))))
6488 hetmet_flattened_id' :: Var.Var -> WeakExprVar0
6489 hetmet_flattened_id' hetmet_flattened_id =
6490 (trace "X" ((trace "X" (coreVarToWeakExprVarOrError (trace "X" (hetmet_flattened_id))))))
6492 coreToCoreExpr' :: Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> UniqSupply.UniqSupply -> TyCon.TyCon -> TyCon.TyCon -> TyCon.TyCon -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> (CoreSyn.Expr Var.Var) -> OrError (CoreSyn.Expr Var.Var)
6493 coreToCoreExpr' hetmet_brak hetmet_esc hetmet_flatten hetmet_unflatten hetmet_flattened_id uniqueSupply hetmet_PGArrowTyCon hetmet_PGArrow_unit_TyCon hetmet_PGArrow_tensor_TyCon hetmet_pga_id hetmet_pga_comp hetmet_pga_first hetmet_pga_second hetmet_pga_cancell hetmet_pga_cancelr hetmet_pga_uncancell hetmet_pga_uncancelr hetmet_pga_assoc hetmet_pga_unassoc hetmet_pga_copy hetmet_pga_drop hetmet_pga_swap cex =
6494 (trace "X" ((trace "X" (addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('S')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreExprToString)) (trace "X" (cex)))))))))))) (trace "X" ((trace "X" ((addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreTypeToString)) (trace "X" ((trace "X" ((CoreUtils.exprType (trace "X" (cex))))))))))))))))) (trace "X" ((trace "X" ((orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (cex))))))) (trace "X" ((\we -> (trace "X" ((trace "X" (addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (weakExprToString)) (trace "X" (we)))))))))))) (trace "X" ((trace "X" ((addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('f')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('E')) (trace "X" (((:) (trace "X" ('x')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (coreTypeToString)) (trace "X" ((trace "X" ((CoreUtils.exprType (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (we)))))))))))))))))))))) (trace "X" ((trace "X" ((orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (we))))))) (trace "X" ((\t -> (trace "X" ((trace "X" (addErrorMessage (trace "X" ((trace "X" ((concatenate (trace "X" (concatenableString)) (trace "X" (((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('T')) (trace "X" (((:) (trace "X" ('y')) (trace "X" (((:) (trace "X" ('p')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" (':')) (trace "X" (((:) (trace "X" (' ')) (trace "X" ([])))))))))))))))))))))))))))))))) (trace "X" ((trace "X" ((toString (trace "X" (weakTypeToString)) (trace "X" (t)))))))))))) (trace "X" ((trace "X" ((orErrorBind (trace "X" ((trace "X" ((weakTypeToTypeOfKind (trace "X" (__U0393_)) (trace "X" (__U03c6_)) (trace "X" (t)) (trace "X" (KindStar))))))) (trace "X" ((\__U03c4_ -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakExprToStrongExpr (trace "X" (__U0393_)) (trace "X" (__U0394_)) (trace "X" (__U03c6_)) (trace "X" (__U03c8_)) (trace "X" (__U03be_)) (trace "X" ((\x -> (trace "X" (Prelude.True))))) (trace "X" (__U03c4_)) (trace "X" (([]))) (trace "X" (we))))))) (trace "X" ((\e -> (trace "X" ((trace "X" (addErrorMessage (trace "X" (((:) (trace "X" ('H')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('s')) (trace "X" (((:) (trace "X" ('k')) (trace "X" (((:) (trace "X" ('S')) (trace "X" (((:) (trace "X" ('t')) (trace "X" (((:) (trace "X" ('r')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('g')) (trace "X" (((:) (trace "X" ('.')) (trace "X" (((:) (trace "X" ('.')) (trace "X" (((:) (trace "X" ('.')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))) (trace "X" ((let {haskProof = (trace "X" ((trace "X" (skolemize_and_flatten_proof (trace "X" ((trace "X" ((hetmet_flatten' (trace "X" (hetmet_flatten))))))) (trace "X" ((trace "X" ((hetmet_unflatten' (trace "X" (hetmet_unflatten))))))) (trace "X" ((trace "X" ((hetmet_flattened_id' (trace "X" (hetmet_flattened_id))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" ((trace "X" ((my_ga (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (hetmet_pga_id)) (trace "X" (hetmet_pga_comp)) (trace "X" (hetmet_pga_first)) (trace "X" (hetmet_pga_second)) (trace "X" (hetmet_pga_cancell)) (trace "X" (hetmet_pga_cancelr)) (trace "X" (hetmet_pga_uncancell)) (trace "X" (hetmet_pga_uncancelr)) (trace "X" (hetmet_pga_assoc)) (trace "X" (hetmet_pga_unassoc)) (trace "X" (hetmet_pga_copy)) (trace "X" (hetmet_pga_drop)) (trace "X" (hetmet_pga_swap))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_)) (trace "X" (__U0394_)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (coreVarEqDecidable)) (trace "X" (__U0393_)) (trace "X" (__U0394_)) (trace "X" (__U03be_)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (([])))))) (trace "X" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (([]))))))))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (([])))))))))))))))))))) (trace "X" ((trace "X" ((expr2proof (trace "X" (coreVarEqDecidable)) (trace "X" (__U0393_)) (trace "X" (__U0394_)) (trace "X" (__U03be_)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (([])))))) (trace "X" (e)))))))))))} in (trace "X" ((trace "X" (orErrorBind (trace "X" ((OK (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (proof2expr)) (trace "X" (eqDecidableNat)) (trace "X" (freshNat)) (trace "X" (__U0393_)) (trace "X" (__U0394_)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_)) (trace "X" (KindStar)) (trace "X" (__U03c4_))))))))) (trace "X" (([])))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_)) (trace "X" ((trace "X" ((expr2antecedent (trace "X" (coreVarEqDecidable)) (trace "X" (__U0393_)) (trace "X" (__U0394_)) (trace "X" (__U03be_)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (([])))))) (trace "X" (e))))))))))))))))) (trace "X" ((\x -> (trace "X" ((trace "X" (Prelude.error (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('b')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('d')) (trace "X" (((:) (trace "X" (' ')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('q')) (trace "X" (((:) (trace "X" ('u')) (trace "X" (((:) (trace "X" ('e')) (trace "X" ([]))))))))))))))))))))))))))))))))))))))))))))))))))) (trace "X" (natToStringInstance)) (trace "X" (haskProof)) (trace "X" (O)))))))))) (trace "X" ((\e' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((snd (trace "X" (e'))))))) (trace "X" ((\e'' -> (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((strongExprToWeakExpr (trace "X" ((trace "X" ((hetmet_brak' (trace "X" (hetmet_brak))))))) (trace "X" ((trace "X" ((hetmet_esc' (trace "X" (hetmet_esc))))))) (trace "X" (mkWeakTypeVar0)) (trace "X" (mkWeakCoerVar0)) (trace "X" (mkWeakExprVar0)) (trace "X" (eqDecidableNat)) (trace "X" (natToStringInstance)) (trace "X" (uniqueSupply)) (trace "X" (__U0393_)) (trace "X" (__U0394_)) (trace "X" ((trace "X" ((projT1 (trace "X" (e''))))))) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (flatten_type (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_unit (trace "X" (hetmet_PGArrow_unit_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_prod (trace "X" (hetmet_PGArrow_tensor_TyCon))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_type (trace "X" (hetmet_PGArrowTyCon))))))))) (trace "X" (__U0393_)) (trace "X" (KindStar)) (trace "X" (__U03c4_))))))))) (trace "X" (([])))))) (trace "X" ((trace "X" ((projT2 (trace "X" (e''))))))) (trace "X" (INil))))))) (trace "X" ((\q -> (trace "X" (OK (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (q))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6496 coreToCoreExpr :: Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> UniqSupply.UniqSupply -> TyCon.TyCon -> TyCon.TyCon -> TyCon.TyCon -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> (CoreSyn.Expr Var.Var) -> CoreSyn.Expr Var.Var
6497 coreToCoreExpr hetmet_brak hetmet_esc hetmet_flatten hetmet_unflatten hetmet_flattened_id uniqueSupply hetmet_PGArrowTyCon hetmet_PGArrow_unit_TyCon hetmet_PGArrow_tensor_TyCon hetmet_pga_id hetmet_pga_comp hetmet_pga_first hetmet_pga_second hetmet_pga_cancell hetmet_pga_cancelr hetmet_pga_uncancell hetmet_pga_uncancelr hetmet_pga_assoc hetmet_pga_unassoc hetmet_pga_copy hetmet_pga_drop hetmet_pga_swap ce =
6498 (trace "X" (case (trace "X" ((trace "X" (coreToCoreExpr' (trace "X" (hetmet_brak)) (trace "X" (hetmet_esc)) (trace "X" (hetmet_flatten)) (trace "X" (hetmet_unflatten)) (trace "X" (hetmet_flattened_id)) (trace "X" (uniqueSupply)) (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (hetmet_pga_id)) (trace "X" (hetmet_pga_comp)) (trace "X" (hetmet_pga_first)) (trace "X" (hetmet_pga_second)) (trace "X" (hetmet_pga_cancell)) (trace "X" (hetmet_pga_cancelr)) (trace "X" (hetmet_pga_uncancell)) (trace "X" (hetmet_pga_uncancelr)) (trace "X" (hetmet_pga_assoc)) (trace "X" (hetmet_pga_unassoc)) (trace "X" (hetmet_pga_copy)) (trace "X" (hetmet_pga_drop)) (trace "X" (hetmet_pga_swap)) (trace "X" (ce)))))) of {
6499 Error s -> (trace "X" ((trace "X" (Prelude.error (trace "X" (s))))));
6500 OK x -> (trace "X" (x))}))
6502 coreToCoreBind :: Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> UniqSupply.UniqSupply -> TyCon.TyCon -> TyCon.TyCon -> TyCon.TyCon -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> (CoreSyn.Bind Var.Var) -> CoreSyn.Bind Var.Var
6503 coreToCoreBind hetmet_brak hetmet_esc hetmet_flatten hetmet_unflatten hetmet_flattened_id uniqueSupply hetmet_PGArrowTyCon hetmet_PGArrow_unit_TyCon hetmet_PGArrow_tensor_TyCon hetmet_pga_id hetmet_pga_comp hetmet_pga_first hetmet_pga_second hetmet_pga_cancell hetmet_pga_cancelr hetmet_pga_uncancell hetmet_pga_uncancelr hetmet_pga_assoc hetmet_pga_unassoc hetmet_pga_copy hetmet_pga_drop hetmet_pga_swap binds =
6504 (trace "X" (case (trace "X" (binds)) of {
6505 CoreSyn.NonRec v e -> (trace "X" (let {e' = (trace "X" ((trace "X" (coreToCoreExpr (trace "X" (hetmet_brak)) (trace "X" (hetmet_esc)) (trace "X" (hetmet_flatten)) (trace "X" (hetmet_unflatten)) (trace "X" (hetmet_flattened_id)) (trace "X" (uniqueSupply)) (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (hetmet_pga_id)) (trace "X" (hetmet_pga_comp)) (trace "X" (hetmet_pga_first)) (trace "X" (hetmet_pga_second)) (trace "X" (hetmet_pga_cancell)) (trace "X" (hetmet_pga_cancelr)) (trace "X" (hetmet_pga_uncancell)) (trace "X" (hetmet_pga_uncancelr)) (trace "X" (hetmet_pga_assoc)) (trace "X" (hetmet_pga_unassoc)) (trace "X" (hetmet_pga_copy)) (trace "X" (hetmet_pga_drop)) (trace "X" (hetmet_pga_swap)) (trace "X" (e))))))} in (trace "X" (CoreSyn.NonRec (trace "X" ((trace "X" ((Var.setVarType (trace "X" (v)) (trace "X" ((trace "X" ((CoreUtils.exprType (trace "X" (e')))))))))))) (trace "X" (e'))))));
6506 CoreSyn.Rec lbe -> (trace "X" (CoreSyn.Rec (trace "X" ((trace "X" ((map (trace "X" ((\ve -> (trace "X" (case (trace "X" (ve)) of {
6507 (,) v e -> (trace "X" ((,) (trace "X" (v)) (trace "X" ((trace "X" ((coreToCoreExpr (trace "X" (hetmet_brak)) (trace "X" (hetmet_esc)) (trace "X" (hetmet_flatten)) (trace "X" (hetmet_unflatten)) (trace "X" (hetmet_flattened_id)) (trace "X" (uniqueSupply)) (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (hetmet_pga_id)) (trace "X" (hetmet_pga_comp)) (trace "X" (hetmet_pga_first)) (trace "X" (hetmet_pga_second)) (trace "X" (hetmet_pga_cancell)) (trace "X" (hetmet_pga_cancelr)) (trace "X" (hetmet_pga_uncancell)) (trace "X" (hetmet_pga_uncancelr)) (trace "X" (hetmet_pga_assoc)) (trace "X" (hetmet_pga_unassoc)) (trace "X" (hetmet_pga_copy)) (trace "X" (hetmet_pga_drop)) (trace "X" (hetmet_pga_swap)) (trace "X" (e)))))))))}))))) (trace "X" (lbe)))))))))}))
6509 coqPassCoreToCore' :: Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> UniqSupply.UniqSupply -> TyCon.TyCon -> TyCon.TyCon -> TyCon.TyCon -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> (([]) (CoreSyn.Bind Var.Var)) -> ([]) (CoreSyn.Bind Var.Var)
6510 coqPassCoreToCore' hetmet_brak hetmet_esc hetmet_flatten hetmet_unflatten hetmet_flattened_id uniqueSupply hetmet_PGArrowTyCon hetmet_PGArrow_unit_TyCon hetmet_PGArrow_tensor_TyCon hetmet_pga_id hetmet_pga_comp hetmet_pga_first hetmet_pga_second hetmet_pga_cancell hetmet_pga_cancelr hetmet_pga_uncancell hetmet_pga_uncancelr hetmet_pga_assoc hetmet_pga_unassoc hetmet_pga_copy hetmet_pga_drop hetmet_pga_swap lbinds =
6511 (trace "X" ((trace "X" (map (trace "X" ((trace "X" ((coreToCoreBind (trace "X" (hetmet_brak)) (trace "X" (hetmet_esc)) (trace "X" (hetmet_flatten)) (trace "X" (hetmet_unflatten)) (trace "X" (hetmet_flattened_id)) (trace "X" (uniqueSupply)) (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (hetmet_pga_id)) (trace "X" (hetmet_pga_comp)) (trace "X" (hetmet_pga_first)) (trace "X" (hetmet_pga_second)) (trace "X" (hetmet_pga_cancell)) (trace "X" (hetmet_pga_cancelr)) (trace "X" (hetmet_pga_uncancell)) (trace "X" (hetmet_pga_uncancelr)) (trace "X" (hetmet_pga_assoc)) (trace "X" (hetmet_pga_unassoc)) (trace "X" (hetmet_pga_copy)) (trace "X" (hetmet_pga_drop)) (trace "X" (hetmet_pga_swap))))))) (trace "X" (lbinds))))))
6513 coqPassCoreToCore :: Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> UniqSupply.UniqSupply -> (([]) (CoreSyn.Bind Var.Var)) -> TyCon.TyCon -> TyCon.TyCon -> TyCon.TyCon -> TyCon.TyCon -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> Var.Var -> ([]) (CoreSyn.Bind Var.Var)
6514 coqPassCoreToCore hetmet_brak hetmet_esc hetmet_flatten hetmet_unflatten hetmet_flattened_id uniqueSupply lbinds hetmet_PGArrowTyCon hetmet_PGArrow_unit_TyCon hetmet_PGArrow_tensor_TyCon hetmet_PGArrow_exponent_TyCon hetmet_pga_id hetmet_pga_comp hetmet_pga_first hetmet_pga_second hetmet_pga_cancell hetmet_pga_cancelr hetmet_pga_uncancell hetmet_pga_uncancelr hetmet_pga_assoc hetmet_pga_unassoc hetmet_pga_copy hetmet_pga_drop hetmet_pga_swap hetmet_pga_applyl hetmet_pga_applyr hetmet_pga_curryl hetmet_pga_curryr =
6515 (trace "X" ((trace "X" (coqPassCoreToCore' (trace "X" (hetmet_brak)) (trace "X" (hetmet_esc)) (trace "X" (hetmet_flatten)) (trace "X" (hetmet_unflatten)) (trace "X" (hetmet_flattened_id)) (trace "X" (uniqueSupply)) (trace "X" (hetmet_PGArrowTyCon)) (trace "X" (hetmet_PGArrow_unit_TyCon)) (trace "X" (hetmet_PGArrow_tensor_TyCon)) (trace "X" (hetmet_pga_id)) (trace "X" (hetmet_pga_comp)) (trace "X" (hetmet_pga_first)) (trace "X" (hetmet_pga_second)) (trace "X" (hetmet_pga_cancell)) (trace "X" (hetmet_pga_cancelr)) (trace "X" (hetmet_pga_uncancell)) (trace "X" (hetmet_pga_uncancelr)) (trace "X" (hetmet_pga_assoc)) (trace "X" (hetmet_pga_unassoc)) (trace "X" (hetmet_pga_copy)) (trace "X" (hetmet_pga_drop)) (trace "X" (hetmet_pga_swap)) (trace "X" (lbinds))))))