f5fecae4c89a152ef5b495a40a6fec47705bc35d
[coq-hetmet.git] / build / CoqPass.hs
1 {-# OPTIONS_GHC -fno-warn-unused-matches -fno-warn-unused-binds -fno-warn-unused-imports #-}
2 module CoqPass ( coqPassCoreToString, coqPassCoreToCore )
3 where
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
12 import qualified Name
13 import qualified Literal
14 import qualified Type
15 import qualified TypeRep
16 import qualified DataCon
17 import qualified TyCon
18 import qualified Coercion
19 import qualified Var
20 import qualified Id
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
36
37 getTyConTyVars :: TyCon.TyCon -> [Var.TyVar]
38 getTyConTyVars tc =
39   if TyCon.isFunTyCon tc
40   then []
41   else if TyCon.isPrimTyCon tc
42        then []
43        else TyCon.tyConTyVars tc
44
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
49
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
52
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))))))
60 coreVarToWeakVar _                 =
61    Prelude.error "Var.Var that is neither an expression variable, type variable, nor coercion variable!"
62
63 errOrFail :: OrError t -> t
64 errOrFail (OK x)    = x
65 errOrFail (Error s) = Prelude.error s
66
67 rawTyFunKind :: TyCon.TyCon -> ( [Kind] , Kind )
68 rawTyFunKind tc = ((Prelude.map coreKindToKind (Prelude.take (TyCon.tyConArity tc) argk))
69                   ,
70                    coreKindToKind (Coercion.mkArrowKinds (Prelude.drop (TyCon.tyConArity tc) argk) retk))
71                    where (argk,retk) = Coercion.splitKindFunTys (TyCon.tyConKind tc)
72
73 tyConOrTyFun :: TyCon.TyCon -> Prelude.Either TyCon.TyCon TyCon.TyCon
74 tyConOrTyFun n =
75    if n == TysPrim.statePrimTyCon     -- special-purpose hack treat State# as a type family since it has kind *->* but no tyvars
76    then Prelude.Right n
77    else if TyCon.isFamInstTyCon n
78         then Prelude.Right n
79         else if TyCon.isSynTyCon n
80              then Prelude.Right n
81              else Prelude.Left n
82
83 nat2int :: Nat -> Prelude.Int
84 nat2int O     = 0
85 nat2int (S x) = 1 + (nat2int x)
86
87 natToString :: Nat -> Prelude.String
88 natToString n = show (nat2int n)
89
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)
96
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 "
102                                                                                (kindToString k))
103 coreKindToKind :: TypeRep.Kind -> Kind
104 coreKindToKind k =
105   case Coercion.splitKindFunTy_maybe k of
106       Prelude.Just (k1,k2) -> KindArrow (coreKindToKind k1) (coreKindToKind k2)
107       Prelude.Nothing -> 
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
113 --
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.
116 --
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
121 --
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))
128
129 coreViewDeep :: Type.Type -> Type.Type
130 coreViewDeep t =
131     case t of
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'
143
144 coreCoercionToWeakCoercion :: Type.Type -> WeakCoercion
145 coreCoercionToWeakCoercion c =
146  WCoUnsafe (errOrFail (coreTypeToWeakType t1)) (errOrFail (coreTypeToWeakType t2))
147    where
148     (t1,t2) = Coercion.coercionKind c
149 {-
150 -- REMEMBER: cotycon applications may be oversaturated
151  case c of
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) ->
158             case (ctcd,t) of
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))
173 -}
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)
177
178 {-
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)
190 -}
191
192 {-# NOINLINE trace #-}
193 trace :: Prelude.String -> a -> a
194 trace msg x = x
195
196 --trace = Debug.Trace.trace
197 --trace msg x = x
198 --trace msg x = System.IO.Unsafe.unsafePerformIO $ Prelude.return x
199 --trace s x = 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)
204
205
206 {-  -- used for extracting strings WITHOUT the patch for Coq
207 bin2ascii =
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))
211 -}
212
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" -}
218
219
220
221 #ifdef __GLASGOW_HASKELL__
222 unsafeCoerce = GHC.Base.unsafeCoerce#
223 #else
224 -- HUGS
225 unsafeCoerce = IOExts.unsafeCoerce
226 #endif
227
228 __ = Prelude.error "Logical or arity value used"
229
230 false_rect :: a1
231 false_rect =
232   (trace "X" (Prelude.error "absurd case"))
233
234 eq_rect :: a1 -> a2 -> a1 -> a2
235 eq_rect x f y =
236   (trace "X" (f))
237
238 eq_rec :: a1 -> a2 -> a1 -> a2
239 eq_rec x f y =
240   (trace "X" ((trace "X" (eq_rect (trace "X" (x)) (trace "X" (f)) (trace "X" (y))))))
241
242 eq_rec_r :: a1 -> a2 -> a1 -> a2
243 eq_rec_r x h y =
244   (trace "X" ((trace "X" (eq_rec (trace "X" (x)) (trace "X" (h)) (trace "X" (y))))))
245
246 eq_rect_r :: a1 -> a2 -> a1 -> a2
247 eq_rect_r x h y =
248   (trace "X" ((trace "X" (eq_rect (trace "X" (x)) (trace "X" (h)) (trace "X" (y))))))
249
250 data Nat =
251    O
252  | S Nat
253
254 nat_rect :: a1 -> (Nat -> a1 -> a1) -> Nat -> a1
255 nat_rect f f0 n =
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)))))))))))}))
259
260 nat_rec :: a1 -> (Nat -> a1 -> a1) -> Nat -> a1
261 nat_rec =
262   (trace "X" (nat_rect))
263
264 fst :: ((,) a1 a2) -> a1
265 fst p =
266   (trace "X" (case (trace "X" (p)) of {
267                (,) x y -> (trace "X" (x))}))
268
269 snd :: ((,) a1 a2) -> a2
270 snd p =
271   (trace "X" (case (trace "X" (p)) of {
272                (,) x y -> (trace "X" (y))}))
273
274 list_rect :: a2 -> (a1 -> (([]) a1) -> a2 -> a2) -> (([]) a1) -> a2
275 list_rect f f0 l =
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)))))))))))}))
279
280 list_rec :: a2 -> (a1 -> (([]) a1) -> a2 -> a2) -> (([]) a1) -> a2
281 list_rec =
282   (trace "X" (list_rect))
283
284 length :: (([]) a1) -> Nat
285 length l =
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')))))))))}))
289
290 app :: (([]) a1) -> (([]) a1) -> ([]) a1
291 app l m =
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)))))))))}))
295
296 type Sig a =
297   a
298   -- singleton inductive, whose constructor was exist
299   
300 data SigT a p =
301    ExistT a p
302
303 projT1 :: (SigT a1 a2) -> a1
304 projT1 x =
305   (trace "X" (case (trace "X" (x)) of {
306                ExistT a p -> (trace "X" (a))}))
307
308 projT2 :: (SigT a1 a2) -> a2
309 projT2 x =
310   (trace "X" (case (trace "X" (x)) of {
311                ExistT x0 h -> (trace "X" (h))}))
312
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" (__))))))}))
318
319 sumbool_rec :: (() -> a1) -> (() -> a1) -> Prelude.Bool -> a1
320 sumbool_rec =
321   (trace "X" (sumbool_rect))
322
323 plus :: Nat -> Nat -> Nat
324 plus n m =
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)))))))))}))
328
329 eq_nat_dec :: Nat -> Nat -> Prelude.Bool
330 eq_nat_dec n =
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))))))
338
339 map :: (a1 -> a2) -> (([]) a1) -> ([]) a2
340 map f l =
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)))))))))}))
344
345 fold_left :: (a1 -> a2 -> a1) -> (([]) a2) -> a1 -> a1
346 fold_left f l a0 =
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)))))))))))}))
350
351 fold_right :: (a2 -> a1 -> a1) -> a1 -> (([]) a2) -> a1
352 fold_right f a0 l =
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)))))))))))}))
356
357 append :: Prelude.String -> Prelude.String -> Prelude.String
358 append s1 s2 =
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)))))))))}))
362
363 type EqDecider t = t -> t -> Prelude.Bool
364
365 type EqDecidable t =
366   t -> t -> Prelude.Bool
367   -- singleton inductive, whose constructor was Build_EqDecidable
368   
369 eqd_dec :: (EqDecidable a1) -> a1 -> a1 -> Prelude.Bool
370 eqd_dec eqDecidable =
371   (trace "X" (eqDecidable))
372
373 eqDecidableOption :: (EqDecidable a1) -> EqDecidable (Prelude.Maybe a1)
374 eqDecidableOption eQDT v1 v2 =
375   (trace "X" (case (trace "X" (v1)) of {
376                Prelude.Just t ->
377                 (trace "X" (case (trace "X" (v2)) of {
378                              Prelude.Just t0 ->
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))}));
384                Prelude.Nothing ->
385                 (trace "X" (case (trace "X" (v2)) of {
386                              Prelude.Just t -> (trace "X" (Prelude.False));
387                              Prelude.Nothing -> (trace "X" (Prelude.True))}))}))
388
389 type ToString t =
390   t -> Prelude.String
391   -- singleton inductive, whose constructor was Build_ToString
392   
393 toString :: (ToString a1) -> a1 -> Prelude.String
394 toString toString0 =
395   (trace "X" (toString0))
396
397 type Concatenable t =
398   t -> t -> t
399   -- singleton inductive, whose constructor was Build_Concatenable
400   
401 concatenate :: (Concatenable a1) -> a1 -> a1 -> a1
402 concatenate concatenable =
403   (trace "X" (concatenable))
404
405 concatenableString :: Concatenable Prelude.String
406 concatenableString =
407   (trace "X" (append))
408
409 data Tree a =
410    T_Leaf a
411  | T_Branch (Tree a) (Tree a)
412
413 tree_rect :: (a1 -> a2) -> ((Tree a1) -> a2 -> (Tree a1) -> a2 -> a2) -> (Tree a1) -> a2
414 tree_rect f f0 t =
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)))))))))))}))
418
419 mapTree :: (a1 -> a2) -> (Tree a1) -> Tree a2
420 mapTree f t =
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)))))))))}))
424
425 mapOptionTree :: (a1 -> a2) -> (Tree (Prelude.Maybe a1)) -> Tree (Prelude.Maybe a2)
426 mapOptionTree f t =
427   (trace "X" (case (trace "X" (t)) of {
428                T_Leaf o ->
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)))))))))}))
433
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 {
437                T_Leaf o ->
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)))))))))}))
442
443 reduceTree :: a1 -> (a1 -> a1 -> a1) -> (Tree (Prelude.Maybe a1)) -> a1
444 reduceTree unit0 merge tt =
445   (trace "X" (case (trace "X" (tt)) of {
446                T_Leaf o ->
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)))))))))))}))
451
452 leaves :: (Tree (Prelude.Maybe a1)) -> ([]) a1
453 leaves t =
454   (trace "X" (case (trace "X" (t)) of {
455                T_Leaf l ->
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)))))))))))}))
460
461 unleaves :: (([]) a1) -> Tree (Prelude.Maybe a1)
462 unleaves l =
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)))))))))}))
466
467 unleaves' :: (([]) a1) -> Tree (Prelude.Maybe a1)
468 unleaves' l =
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))))))))))}))
472
473 filter :: (([]) (Prelude.Maybe a1)) -> ([]) a1
474 filter l =
475   (trace "X" (case (trace "X" (l)) of {
476                ([]) -> (trace "X" (([])));
477                (:) o b ->
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))))))}))}))
481
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));
487                                          Prelude.False ->
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))))))
492
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 {
497                                          Prelude.True ->
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))))))
503
504 list_eq_dec :: (([]) a1) -> (([]) a1) -> (a1 -> a1 -> Prelude.Bool) -> Prelude.Bool
505 list_eq_dec l1 =
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));
512                                          (:) b l4 ->
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 {
515                                                                    Prelude.True ->
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))))))
522
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)))))))))))
526
527 data TreeFlags t =
528    Tf_leaf_true t
529  | Tf_leaf_false t
530  | Tf_branch (Tree t) (Tree t) (TreeFlags t) (TreeFlags t)
531
532 mkFlags :: (a1 -> Prelude.Bool) -> (Tree a1) -> TreeFlags a1
533 mkFlags f t =
534   (trace "X" (case (trace "X" (t)) of {
535                T_Leaf x ->
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)))))))))}))
540
541 dropT :: (Tree (Prelude.Maybe a1)) -> (TreeFlags (Prelude.Maybe a1)) -> Tree (Prelude.Maybe a1)
542 dropT __U03a3_ tf =
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)))))))))}))
547
548 liftBoolFunc :: Prelude.Bool -> (a1 -> Prelude.Bool) -> (Prelude.Maybe a1) -> Prelude.Bool
549 liftBoolFunc b f t =
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))}))
553
554 tree_eq_dec :: (Tree a1) -> (Tree a1) -> (a1 -> a1 -> Prelude.Bool) -> Prelude.Bool
555 tree_eq_dec l1 =
556   (trace "X" ((trace "X" (tree_rect (trace "X" ((\a l2 dec ->
557                             (trace "X" (case (trace "X" (l2)) of {
558                                          T_Leaf t ->
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 {
569                                                                    Prelude.True ->
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))))))}))));
574                                                                    Prelude.False ->
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))))))
579
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)))))))))))
583
584 data Vec a =
585    Vec_nil
586  | Vec_cons Nat a (Vec a)
587
588 vec2list :: Nat -> (Vec a1) -> ([]) a1
589 vec2list n v =
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)))))))))}))
593
594 vec_zip :: Nat -> (Vec a1) -> (Vec a2) -> Vec ((,) a1 a2)
595 vec_zip n va vb =
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));
599                                          Vec_cons n1 x x0 ->
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))))))
604
605 vec_map :: Nat -> (a1 -> a2) -> (Vec a1) -> Vec a2
606 vec_map n f v =
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))))))
611
612 list2vec :: (([]) a1) -> Vec a1
613 list2vec l =
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 {
616                                                       length0 l1 =
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))))))
621
622 vec_chop' :: (([]) a1) -> (([]) a1) -> (Vec a2) -> Vec a2
623 vec_chop' l1 l2 v =
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))))))
629
630 data IList i f =
631    INil
632  | ICons i (([]) i) f (IList i f)
633
634 ilist_head :: a1 -> (([]) a1) -> (IList a1 a2) -> a2
635 ilist_head x y il =
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))))))}))
639
640 ilist_tail :: a1 -> (([]) a1) -> (IList a1 a2) -> IList a1 a2
641 ilist_tail x y il =
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))))))}))
645
646 ilmap :: (([]) a1) -> (a1 -> a2 -> a3) -> (IList a1 a2) -> IList a1 a3
647 ilmap il f =
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))))))
652
653 ilist_chop :: (([]) a1) -> (([]) a1) -> (IList a1 a2) -> IList a1 a2
654 ilist_chop l1 l2 v =
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))))))
663
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))))))
671
672 ilist_to_list :: (([]) a1) -> (IList a1 a2) -> ([]) a2
673 ilist_to_list l il =
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)))))))))}))
677
678 data ITree i f =
679    INone
680  | ILeaf i f
681  | IBranch (Tree (Prelude.Maybe i)) (Tree (Prelude.Maybe i)) (ITree i f) (ITree i f)
682
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)))))))))))}))
689
690 itmap :: (Tree (Prelude.Maybe a1)) -> (a1 -> a2 -> a3) -> (ITree a1 a2) -> ITree a1 a3
691 itmap il f =
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))))))
709
710 bnot :: Prelude.Bool -> Prelude.Bool
711 bnot b =
712   (trace "X" (case (trace "X" (b)) of {
713                Prelude.True -> (trace "X" (Prelude.False));
714                Prelude.False -> (trace "X" (Prelude.True))}))
715
716 eol :: Prelude.String
717 eol = '\n':[]
718
719 data Monad t =
720    Build_Monad (() -> () -> t) (() -> () -> t -> (() -> t) -> t)
721
722 returnM :: (Monad a1) -> a2 -> a1
723 returnM monad x =
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))))))}))
726
727 bindM :: (Monad a1) -> a1 -> (a2 -> a1) -> a1
728 bindM monad x x0 =
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))))))}))
731
732 data OrError t =
733    Error Prelude.String
734  | OK t
735
736 orErrorBind :: (OrError a1) -> (a1 -> OrError a2) -> OrError a2
737 orErrorBind oe f =
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))))))}))
741
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))))))}))
747
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))))))
751
752 eqDecidableNat :: EqDecidable Nat
753 eqDecidableNat v1 v2 =
754   (trace "X" ((trace "X" (eq_nat_dec (trace "X" (v1)) (trace "X" (v2))))))
755
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)))))))))}))))))
763
764 split_list :: (([]) a1) -> Nat -> OrError ((,) (([]) a1) (([]) a1))
765 split_list l n =
766   (trace "X" (case (trace "X" (n)) of {
767                O -> (trace "X" (OK (trace "X" (((,) (trace "X" (([]))) (trace "X" (l)))))));
768                S n' ->
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)))))))})))))))))}))}))
773
774 type UniqM t =
775   UniqSupply.UniqSupply -> OrError ((,) UniqSupply.UniqSupply t)
776   -- singleton inductive, whose constructor was uniqM
777   
778 uniqMonad :: Monad (UniqM ())
779 uniqMonad =
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'))))))}))})))))))
785
786 getU :: UniqM Unique.Unique
787 getU us =
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))))))))))))}))
790
791 data FreshMonad t =
792    Build_FreshMonad (Monad ()) ((([]) t) -> ())
793
794 type FMT t x = ()
795
796 fMT_Monad :: (FreshMonad a1) -> Monad (FMT a1 ())
797 fMT_Monad f =
798   (trace "X" (case (trace "X" (f)) of {
799                Build_FreshMonad fMT_Monad0 fMT_fresh0 -> (trace "X" (fMT_Monad0))}))
800
801 fMT_fresh :: (FreshMonad a1) -> (([]) a1) -> FMT a1 (SigT a1 ())
802 fMT_fresh f =
803   (trace "X" (case (trace "X" (f)) of {
804                Build_FreshMonad fMT_Monad0 fMT_fresh0 -> (trace "X" (fMT_fresh0))}))
805
806 mapM :: (Monad a1) -> (([]) a1) -> a1
807 mapM mon ml =
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')))))))))))))))))))))))}))
811
812 treeM :: (Monad a2) -> (Tree (Prelude.Maybe a2)) -> a2
813 treeM mT t =
814   (trace "X" (case (trace "X" (t)) of {
815                T_Leaf o ->
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')))))))))))))))))))))))}))
820
821 type Latex =
822   Prelude.String
823   -- singleton inductive, whose constructor was rawLatex
824   
825 type LatexMath =
826   Prelude.String
827   -- singleton inductive, whose constructor was rawLatexMath
828   
829 type ToLatex t =
830   t -> Latex
831   -- singleton inductive, whose constructor was Build_ToLatex
832   
833 toLatex :: (ToLatex a1) -> a1 -> Latex
834 toLatex toLatex0 =
835   (trace "X" (toLatex0))
836
837 latexToString :: ToString Latex
838 latexToString x =
839   (trace "X" (x))
840
841 type ToLatexMath t =
842   t -> LatexMath
843   -- singleton inductive, whose constructor was Build_ToLatexMath
844   
845 toLatexMath :: (ToLatexMath a1) -> a1 -> LatexMath
846 toLatexMath toLatexMath0 =
847   (trace "X" (toLatexMath0))
848
849 concatenableLatexMath :: Concatenable LatexMath
850 concatenableLatexMath l1 l2 =
851   (trace "X" ((trace "X" (concatenate (trace "X" (concatenableString)) (trace "X" (l1)) (trace "X" (l2))))))
852
853 latexMathToString :: ToString LatexMath
854 latexMathToString x =
855   (trace "X" (x))
856
857 toLatexMathLatex :: ToLatexMath Latex
858 toLatexMathLatex l =
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" ([])))))))))
860
861 stringToLatex :: ToLatex Prelude.String
862 stringToLatex x =
863   (trace "X" ((trace "X" (sanitizeForLatex (trace "X" (x))))))
864
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)))))))))))
868
869 latexMathToLatexMath :: ToLatexMath LatexMath
870 latexMathToLatexMath x =
871   (trace "X" (x))
872
873 treeToLatexMath :: (ToLatexMath a1) -> (Tree (Prelude.Maybe a1)) -> LatexMath
874 treeToLatexMath toLatexV t =
875   (trace "X" (case (trace "X" (t)) of {
876                T_Leaf o ->
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" ([])))))))))))))))))))))))))))}))
881
882 data ND judgment rule =
883    Nd_id0
884  | Nd_id1 judgment
885  | Nd_weak1 judgment
886  | Nd_copy (Tree (Prelude.Maybe judgment))
887  | Nd_prod (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (ND judgment rule) (ND judgment rule)
888  | Nd_comp (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (ND judgment rule) (ND judgment rule)
889  | Nd_cancell (Tree (Prelude.Maybe judgment))
890  | Nd_cancelr (Tree (Prelude.Maybe judgment))
891  | Nd_llecnac (Tree (Prelude.Maybe judgment))
892  | Nd_rlecnac (Tree (Prelude.Maybe judgment))
893  | Nd_assoc (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment))
894  | Nd_cossa (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment))
895  | Nd_rule (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) rule
896
897 nD_rect :: a3 -> (a1 -> a3) -> (a1 -> a3) -> ((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
898 nD_rect f f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 hypotheses conclusions n =
899   (trace "X" (case (trace "X" (n)) of {
900                Nd_id0 -> (trace "X" (f));
901                Nd_id1 h -> (trace "X" ((trace "X" (f0 (trace "X" (h))))));
902                Nd_weak1 h -> (trace "X" ((trace "X" (f1 (trace "X" (h))))));
903                Nd_copy h -> (trace "X" ((trace "X" (f2 (trace "X" (h))))));
904                Nd_prod h1 h2 c1 c2 pf1 pf2 -> (trace "X" ((trace "X" (f3 (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" (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" (h2)) (trace "X" (c2)) (trace "X" (pf2)))))))))));
905                Nd_comp h x c pf1 pf2 -> (trace "X" ((trace "X" (f4 (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" (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" (x)) (trace "X" (c)) (trace "X" (pf2)))))))))));
906                Nd_cancell a -> (trace "X" ((trace "X" (f5 (trace "X" (a))))));
907                Nd_cancelr a -> (trace "X" ((trace "X" (f6 (trace "X" (a))))));
908                Nd_llecnac a -> (trace "X" ((trace "X" (f7 (trace "X" (a))))));
909                Nd_rlecnac a -> (trace "X" ((trace "X" (f8 (trace "X" (a))))));
910                Nd_assoc a b c -> (trace "X" ((trace "X" (f9 (trace "X" (a)) (trace "X" (b)) (trace "X" (c))))));
911                Nd_cossa a b c -> (trace "X" ((trace "X" (f10 (trace "X" (a)) (trace "X" (b)) (trace "X" (c))))));
912                Nd_rule h c r -> (trace "X" ((trace "X" (f11 (trace "X" (h)) (trace "X" (c)) (trace "X" (r))))))}))
913
914 nd_id :: (Tree (Prelude.Maybe a1)) -> ND a1 a2
915 nd_id sl =
916   (trace "X" (case (trace "X" (sl)) of {
917                T_Leaf o ->
918                 (trace "X" (case (trace "X" (o)) of {
919                              Prelude.Just x -> (trace "X" (Nd_id1 (trace "X" (x))));
920                              Prelude.Nothing -> (trace "X" (Nd_id0))}));
921                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)))))))))}))
922
923 nd_weak :: (Tree (Prelude.Maybe a1)) -> ND a1 a2
924 nd_weak sl =
925   (trace "X" (case (trace "X" (sl)) of {
926                T_Leaf o ->
927                 (trace "X" (case (trace "X" (o)) of {
928                              Prelude.Just x -> (trace "X" (Nd_weak1 (trace "X" (x))));
929                              Prelude.Nothing -> (trace "X" (Nd_id0))}));
930                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))))))))))}))
931
932 data SIND judgment rule =
933    Scnd_weak (Tree (Prelude.Maybe judgment))
934  | Scnd_comp (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) judgment (SIND judgment rule) rule
935  | Scnd_branch (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (Tree (Prelude.Maybe judgment)) (SIND judgment rule) (SIND judgment rule)
936
937 mkSIND :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (ND a1 a2) -> (SIND a1 a2) -> SIND a1 a2
938 mkSIND h x c nd =
939   (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" ((\h1 h2 c1 c2 nd1 iHnd1 nd2 iHnd2 k ->
940                             (trace "X" (case (trace "X" (k)) of {
941                                          Scnd_weak c0 -> (trace "X" (false_rect));
942                                          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))))));
943                                          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 ->
944                             (trace "X" (case (trace "X" (k)) of {
945                                          Scnd_weak c0 -> (trace "X" (false_rect));
946                                          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))))));
947                                          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 ->
948                             (trace "X" (case (trace "X" (k)) of {
949                                          Scnd_weak c0 -> (trace "X" (false_rect));
950                                          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))))));
951                                          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 ->
952                             (trace "X" (case (trace "X" (k)) of {
953                                          Scnd_weak c1 -> (trace "X" (false_rect));
954                                          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))))));
955                                          Scnd_branch ht c1 c2 x0 x1 ->
956                                           (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ ->
957                                                                     (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b))))) (trace "X" ((\_ ->
958                                                                                               (trace "X" ((trace "X" (eq_rect (trace "X" (c0)) (trace "X" ((\x2 x3 ->
959                                                                                                                         (trace "X" (case (trace "X" (x2)) of {
960                                                                                                                                      Scnd_weak c3 -> (trace "X" (false_rect));
961                                                                                                                                      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))))));
962                                                                                                                                      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 ->
963                             (trace "X" (case (trace "X" (k)) of {
964                                          Scnd_weak c1 -> (trace "X" (false_rect));
965                                          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))))));
966                                          Scnd_branch ht c1 c2 x0 x1 ->
967                                           (trace "X" ((trace "X" (eq_rect (trace "X" (h)) (trace "X" ((\_ ->
968                                                                     (trace "X" ((trace "X" (eq_rect (trace "X" (a)) (trace "X" ((\_ ->
969                                                                                               (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c0))))) (trace "X" ((\x2 x3 ->
970                                                                                                                         (trace "X" (case (trace "X" (x3)) of {
971                                                                                                                                      Scnd_weak c3 -> (trace "X" (false_rect));
972                                                                                                                                      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))))));
973                                                                                                                                      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 ->
974                             (trace "X" (case (trace "X" (c0)) of {
975                                          T_Leaf o ->
976                                           (trace "X" (case (trace "X" (o)) of {
977                                                        Prelude.Just j -> (trace "X" (Scnd_comp (trace "X" (h)) (trace "X" (h0)) (trace "X" (j)) (trace "X" (k)) (trace "X" (r))));
978                                                        Prelude.Nothing -> (trace "X" (Scnd_weak (trace "X" (h))))}));
979                                          T_Branch c1 c2 -> (trace "X" (Prelude.error "absurd case"))}))))) (trace "X" (x)) (trace "X" (c)) (trace "X" (nd))))))
980
981 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
982 nd_map' f r h c pf =
983   (trace "X" (case (trace "X" (pf)) of {
984                Nd_id0 -> (trace "X" (Nd_id0));
985                Nd_id1 h0 -> (trace "X" (Nd_id1 (trace "X" ((trace "X" ((f (trace "X" (h0)))))))));
986                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)))))))))))))))));
987                Nd_copy h0 -> (trace "X" (Nd_copy (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (h0)))))))));
988                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)))))))));
989                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)))))))));
990                Nd_cancell a -> (trace "X" (Nd_cancell (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))));
991                Nd_cancelr a -> (trace "X" (Nd_cancelr (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))));
992                Nd_llecnac a -> (trace "X" (Nd_llecnac (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))));
993                Nd_rlecnac a -> (trace "X" (Nd_rlecnac (trace "X" ((trace "X" ((mapOptionTree (trace "X" (f)) (trace "X" (a)))))))));
994                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)))))))));
995                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)))))))));
996                Nd_rule h0 c0 rule -> (trace "X" ((trace "X" (r (trace "X" (h0)) (trace "X" (c0)) (trace "X" (rule))))))}))
997
998 eolL :: LatexMath
999 eolL =
1000   (trace "X" (eol))
1001
1002 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
1003 sIND_toLatexMath judgmentToLatexMath ruleToLatexMath hideRule h c pns =
1004   (trace "X" (case (trace "X" (pns)) of {
1005                Scnd_weak c0 -> (trace "X" ([]));
1006                Scnd_comp ht ct c0 pns0 rule ->
1007                 (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 {
1008                              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))))));
1009                              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))))))}));
1010                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)))))))))))}))
1011
1012 natToStringInstance :: ToString Nat
1013 natToStringInstance =
1014   (trace "X" (natToString))
1015
1016 data Kind =
1017    KindStar
1018  | KindArrow Kind Kind
1019  | KindUnliftedType
1020  | KindUnboxedTuple
1021  | KindArgType
1022  | KindOpenType
1023
1024 kind_rect :: a1 -> (Kind -> a1 -> Kind -> a1 -> a1) -> a1 -> a1 -> a1 -> a1 -> Kind -> a1
1025 kind_rect f f0 f1 f2 f3 f4 k =
1026   (trace "X" (case (trace "X" (k)) of {
1027                KindStar -> (trace "X" (f));
1028                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)))))))))));
1029                KindUnliftedType -> (trace "X" (f1));
1030                KindUnboxedTuple -> (trace "X" (f2));
1031                KindArgType -> (trace "X" (f3));
1032                KindOpenType -> (trace "X" (f4))}))
1033
1034 kind_rec :: a1 -> (Kind -> a1 -> Kind -> a1 -> a1) -> a1 -> a1 -> a1 -> a1 -> Kind -> a1
1035 kind_rec =
1036   (trace "X" (kind_rect))
1037
1038 kindToString :: Kind -> Prelude.String
1039 kindToString k =
1040   (trace "X" (case (trace "X" (k)) of {
1041                KindStar -> (trace "X" ((:) (trace "X" ('*')) (trace "X" ([]))));
1042                KindArrow k1 k2 ->
1043                 (trace "X" (case (trace "X" (k1)) of {
1044                              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)))))))))));
1045                              _ -> (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)))))))))))}));
1046                KindUnliftedType -> (trace "X" ((:) (trace "X" ('#')) (trace "X" ([]))));
1047                KindUnboxedTuple -> (trace "X" ((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('#')) (trace "X" (((:) (trace "X" (')')) (trace "X" ([]))))))))));
1048                KindArgType -> (trace "X" ((:) (trace "X" ('?')) (trace "X" (((:) (trace "X" ('?')) (trace "X" ([])))))));
1049                KindOpenType -> (trace "X" ((:) (trace "X" ('?')) (trace "X" ([]))))}))
1050
1051 kindToString0 :: ToString Kind
1052 kindToString0 =
1053   (trace "X" (kindToString))
1054
1055 eCKind :: Kind
1056 eCKind =
1057   (trace "X" (KindArrow (trace "X" (KindStar)) (trace "X" ((KindArrow (trace "X" (KindStar)) (trace "X" (KindStar)))))))
1058
1059 kindToLatexMath :: Kind -> LatexMath
1060 kindToLatexMath k =
1061   (trace "X" (case (trace "X" (k)) of {
1062                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" ([]))))))))))))))));
1063                KindArrow k1 k2 ->
1064                 (trace "X" (case (trace "X" (k1)) of {
1065                              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)))))))))));
1066                              _ -> (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)))))))))))}));
1067                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" ([])))))))))))))))))))))))))))))))))))))))))));
1068                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" ([])))))))))))))))))))))))))))))))))))))))))))))))));
1069                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" ([])))))))))))))))))))))))))))))))))))))))))));
1070                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" ([]))))))))))))))))))))))))))))))))))))))))}))
1071
1072 kindEqDecidable :: EqDecidable Kind
1073 kindEqDecidable v1 =
1074   (trace "X" ((trace "X" (kind_rec (trace "X" ((\v2 ->
1075                             (trace "X" (case (trace "X" (v2)) of {
1076                                          KindStar -> (trace "X" (Prelude.True));
1077                                          _ -> (trace "X" (Prelude.False))}))))) (trace "X" ((\v1_1 iHv1_1 v1_2 iHv1_2 v2 ->
1078                             (trace "X" (case (trace "X" (v2)) of {
1079                                          KindArrow v2_1 v2_2 ->
1080                                           (trace "X" (let {s = (trace "X" ((trace "X" (iHv1_1 (trace "X" (v2_1))))))} in
1081                                                       (trace "X" (case (trace "X" (s)) of {
1082                                                                    Prelude.True ->
1083                                                                     (trace "X" (let {s0 = (trace "X" ((trace "X" (iHv1_2 (trace "X" (v2_2))))))} in
1084                                                                                 (trace "X" (case (trace "X" (s0)) of {
1085                                                                                              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))))));
1086                                                                                              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))))))}))));
1087                                                                    Prelude.False ->
1088                                                                     (trace "X" (let {s0 = (trace "X" ((trace "X" (iHv1_2 (trace "X" (v2_2))))))} in
1089                                                                                 (trace "X" (case (trace "X" (s0)) of {
1090                                                                                              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))))));
1091                                                                                              Prelude.False -> (trace "X" (Prelude.False))}))))}))));
1092                                          _ -> (trace "X" (Prelude.False))}))))) (trace "X" ((\v2 ->
1093                             (trace "X" (case (trace "X" (v2)) of {
1094                                          KindUnliftedType -> (trace "X" (Prelude.True));
1095                                          _ -> (trace "X" (Prelude.False))}))))) (trace "X" ((\v2 ->
1096                             (trace "X" (case (trace "X" (v2)) of {
1097                                          KindUnboxedTuple -> (trace "X" (Prelude.True));
1098                                          _ -> (trace "X" (Prelude.False))}))))) (trace "X" ((\v2 ->
1099                             (trace "X" (case (trace "X" (v2)) of {
1100                                          KindArgType -> (trace "X" (Prelude.True));
1101                                          _ -> (trace "X" (Prelude.False))}))))) (trace "X" ((\v2 ->
1102                             (trace "X" (case (trace "X" (v2)) of {
1103                                          KindOpenType -> (trace "X" (Prelude.True));
1104                                          _ -> (trace "X" (Prelude.False))}))))) (trace "X" (v1))))))
1105
1106 tyConToString :: ToString TyCon.TyCon
1107 tyConToString =
1108   (trace "X" (outputableToString))
1109
1110 tyFunToString :: ToString TyCon.TyCon
1111 tyFunToString =
1112   (trace "X" (outputableToString))
1113
1114 arrowTyCon :: TyCon.TyCon
1115 arrowTyCon = Type.funTyCon
1116
1117 haskLiteralToString :: ToString Literal.Literal
1118 haskLiteralToString =
1119   (trace "X" (outputableToString))
1120
1121 haskLiteralToTyCon :: Literal.Literal -> TyCon.TyCon
1122 haskLiteralToTyCon lit =
1123   (trace "X" (case (trace "X" (lit)) of {
1124                Literal.MachChar h -> (trace "X" (TysPrim.charPrimTyCon));
1125                Literal.MachInt h -> (trace "X" (TysPrim.intPrimTyCon));
1126                Literal.MachInt64 h -> (trace "X" (TysPrim.int64PrimTyCon));
1127                Literal.MachWord h -> (trace "X" (TysPrim.wordPrimTyCon));
1128                Literal.MachWord64 h -> (trace "X" (TysPrim.word64PrimTyCon));
1129                Literal.MachFloat h -> (trace "X" (TysPrim.floatPrimTyCon));
1130                Literal.MachDouble h -> (trace "X" (TysPrim.doublePrimTyCon));
1131                _ -> (trace "X" (TysPrim.addrPrimTyCon))}))
1132
1133 coreVarEqDecidable :: EqDecidable Var.Var
1134 coreVarEqDecidable =
1135   (trace "X" ((==)))
1136
1137 coreVarToString :: ToString Var.Var
1138 coreVarToString =
1139   (trace "X" (outputableToString))
1140
1141 tyConEqDecidable :: EqDecidable TyCon.TyCon
1142 tyConEqDecidable =
1143   (trace "X" ((==)))
1144
1145 tyFunEqDecidable :: EqDecidable TyCon.TyCon
1146 tyFunEqDecidable =
1147   (trace "X" ((==)))
1148
1149 coreTypeToString :: ToString TypeRep.Type
1150 coreTypeToString =
1151   (trace "X" ((outputableToString . coreViewDeep)))
1152
1153 coreDataConToString :: ToString DataCon.DataCon
1154 coreDataConToString =
1155   (trace "X" (outputableToString))
1156
1157 coreExprToString :: ToString (CoreSyn.Expr Var.Var)
1158 coreExprToString =
1159   (trace "X" (outputableToString))
1160
1161 data WeakTypeVar0 =
1162    WeakTypeVar Var.Var Kind
1163
1164 data WeakType =
1165    WTyVarTy WeakTypeVar0
1166  | WAppTy WeakType WeakType
1167  | WTyFunApp TyCon.TyCon (([]) WeakType)
1168  | WTyCon TyCon.TyCon
1169  | WFunTyCon
1170  | WCodeTy WeakTypeVar0 WeakType
1171  | WCoFunTy WeakType WeakType WeakType
1172  | WForAllTy WeakTypeVar0 WeakType
1173  | WClassP Class.Class (([]) WeakType)
1174  | WIParam (BasicTypes.IPName Name.Name) WeakType
1175
1176 weakTypeVarEqDecidable :: EqDecidable WeakTypeVar0
1177 weakTypeVarEqDecidable v1 v2 =
1178   (trace "X" (case (trace "X" (v1)) of {
1179                WeakTypeVar cv1 k1 ->
1180                 (trace "X" (case (trace "X" (v2)) of {
1181                              WeakTypeVar cv2 k2 ->
1182                               (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (coreVarEqDecidable)) (trace "X" (cv1)) (trace "X" (cv2))))))} in
1183                                           (trace "X" (case (trace "X" (s)) of {
1184                                                        Prelude.True ->
1185                                                         (trace "X" ((trace "X" (eq_rec_r (trace "X" (cv2))
1186                                                                                   (trace "X" ((let {s0 = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (k1)) (trace "X" (k2))))))} in
1187                                                                                                (trace "X" (case (trace "X" (s0)) of {
1188                                                                                                             Prelude.True -> (trace "X" ((trace "X" (eq_rec_r (trace "X" (k2)) (trace "X" (Prelude.True)) (trace "X" (k1))))));
1189                                                                                                             Prelude.False -> (trace "X" (Prelude.False))}))))) (trace "X" (cv1))))));
1190                                                        Prelude.False -> (trace "X" (Prelude.False))}))))}))}))
1191
1192 data WeakCoerVar0 =
1193    WeakCoerVar Var.Var WeakType WeakType
1194
1195 data WeakCoercion =
1196    WCoVar WeakCoerVar0
1197  | WCoType WeakType
1198  | WCoApp WeakCoercion WeakCoercion
1199  | WCoAppT WeakCoercion WeakType
1200  | WCoAll Kind (WeakTypeVar0 -> WeakCoercion)
1201  | WCoSym WeakCoercion
1202  | WCoComp WeakCoercion WeakCoercion
1203  | WCoLeft WeakCoercion
1204  | WCoRight WeakCoercion
1205  | WCoUnsafe WeakType WeakType
1206
1207 weakCoercionTypes :: WeakCoercion -> (,) WeakType WeakType
1208 weakCoercionTypes wc =
1209   (trace "X" (case (trace "X" (wc)) of {
1210                WCoSym c -> (trace "X" (case (trace "X" ((trace "X" (weakCoercionTypes (trace "X" (c)))))) of {
1211                                         (,) t2 t1 -> (trace "X" ((,) (trace "X" (t1)) (trace "X" (t2))))}));
1212                WCoUnsafe t1 t2 -> (trace "X" ((,) (trace "X" (t1)) (trace "X" (t2))));
1213                _ -> (trace "X" ((,) (trace "X" (WFunTyCon)) (trace "X" (WFunTyCon))))}))
1214
1215 weakTypeToString :: ToString WeakType
1216 weakTypeToString =
1217   (trace "X" ((coreTypeToString . weakTypeToCoreType)))
1218
1219 data WeakExprVar0 =
1220    WeakExprVar Var.Var WeakType
1221
1222 data WeakVar =
1223    WExprVar WeakExprVar0
1224  | WTypeVar WeakTypeVar0
1225  | WCoerVar WeakCoerVar0
1226
1227 weakTypeVarToKind :: WeakTypeVar0 -> Kind
1228 weakTypeVarToKind tv =
1229   (trace "X" (case (trace "X" (tv)) of {
1230                WeakTypeVar c k -> (trace "X" (k))}))
1231
1232 weakVarToCoreVar :: WeakVar -> Var.Var
1233 weakVarToCoreVar wv =
1234   (trace "X" (case (trace "X" (wv)) of {
1235                WExprVar w -> (trace "X" (case (trace "X" (w)) of {
1236                                           WeakExprVar v w0 -> (trace "X" (v))}));
1237                WTypeVar w -> (trace "X" (case (trace "X" (w)) of {
1238                                           WeakTypeVar v k -> (trace "X" (v))}));
1239                WCoerVar w -> (trace "X" (case (trace "X" (w)) of {
1240                                           WeakCoerVar v w0 w1 -> (trace "X" (v))}))}))
1241
1242 tyConTyVars :: TyCon.TyCon -> ([]) WeakTypeVar0
1243 tyConTyVars tc =
1244   (trace "X" ((trace "X" (filter
1245                             (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1246                                                       (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (x)))))) of {
1247                                                                    WTypeVar v -> (trace "X" (Prelude.Just (trace "X" (v))));
1248                                                                    _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" ((trace "X" ((getTyConTyVars (trace "X" (tc))))))))))))))))
1249
1250 tyConKind :: TyCon.TyCon -> ([]) Kind
1251 tyConKind tc =
1252   (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))))))))))))))))
1253
1254 tyFunKind :: TyCon.TyCon -> (,) (([]) Kind) Kind
1255 tyFunKind tc =
1256   (trace "X" ((trace "X" (rawTyFunKind (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc)))))))))))
1257
1258 data WeakAltCon =
1259    WeakDataAlt DataCon.DataCon
1260  | WeakLitAlt Literal.Literal
1261  | WeakDEFAULT
1262
1263 data WeakExpr =
1264    WEVar WeakExprVar0
1265  | WELit Literal.Literal
1266  | WELet WeakExprVar0 WeakExpr WeakExpr
1267  | WELetRec (Tree (Prelude.Maybe ((,) WeakExprVar0 WeakExpr))) WeakExpr
1268  | WECast WeakExpr WeakCoercion
1269  | WENote CoreSyn.Note WeakExpr
1270  | WEApp WeakExpr WeakExpr
1271  | WETyApp WeakExpr WeakType
1272  | WECoApp WeakExpr WeakCoercion
1273  | WELam WeakExprVar0 WeakExpr
1274  | WETyLam WeakTypeVar0 WeakExpr
1275  | WECoLam WeakCoerVar0 WeakExpr
1276  | WEBrak WeakExprVar0 WeakTypeVar0 WeakExpr WeakType
1277  | WEEsc WeakExprVar0 WeakTypeVar0 WeakExpr WeakType
1278  | WECSP WeakExprVar0 WeakTypeVar0 WeakExpr WeakType
1279  | WECase WeakExprVar0 WeakExpr WeakType TyCon.TyCon (([]) WeakType) (Tree (Prelude.Maybe ((,) ((,) ((,) ((,) WeakAltCon (([]) WeakTypeVar0)) (([]) WeakCoerVar0)) (([]) WeakExprVar0)) WeakExpr)))
1280
1281 mkTyFunApplication :: TyCon.TyCon -> (([]) WeakType) -> OrError WeakType
1282 mkTyFunApplication tf lwt =
1283   (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 {
1284                                                                                                                                                                                                                                                                         (,) 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))))))))))))})))))))))
1285
1286 coreTypeToWeakType' :: TypeRep.Type -> OrError WeakType
1287 coreTypeToWeakType' ct =
1288   (trace "X" (case (trace "X" (ct)) of {
1289                TypeRep.TyVarTy cv ->
1290                 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (cv)))))) of {
1291                              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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1292                              WTypeVar tv -> (trace "X" (OK (trace "X" ((WTyVarTy (trace "X" (tv)))))));
1293                              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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1294                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')))))))))))))))))))));
1295                TypeRep.TyConApp tc_ lct ->
1296                 (trace "X" (let {
1297                              recurse = (trace "X" ((trace "X" (let {
1298                                                                 rec tl =
1299                                                                   (trace "X" (case (trace "X" (tl)) of {
1300                                                                                ([]) -> (trace "X" (OK (trace "X" (([])))));
1301                                                                                (:) 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')))))))))))))))))))))}))}
1302                                                                in rec (trace "X" (lct))))))}
1303                             in
1304                             (trace "X" (case (trace "X" ((trace "X" (tyConOrTyFun (trace "X" (tc_)))))) of {
1305                                          Prelude.Left tc ->
1306                                           (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (tyConEqDecidable)) (trace "X" (tc)) (trace "X" (TysWiredIn.hetMetCodeTypeTyCon)))))) of {
1307                                                        Prelude.True ->
1308                                                         (trace "X" (case (trace "X" (lct)) of {
1309                                                                      ([]) -> (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))))))))))))));
1310                                                                      (:) c l ->
1311                                                                       (trace "X" (case (trace "X" (c)) of {
1312                                                                                    TypeRep.TyVarTy ec ->
1313                                                                                     (trace "X" (case (trace "X" (l)) of {
1314                                                                                                  ([]) -> (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))))))))))))));
1315                                                                                                  (:) tbody l0 ->
1316                                                                                                   (trace "X" (case (trace "X" (l0)) of {
1317                                                                                                                ([]) ->
1318                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (ec)))))) of {
1319                                                                                                                              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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1320                                                                                                                              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'))))))))))))));
1321                                                                                                                              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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1322                                                                                                                (:) 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))))))))))))))}))}));
1323                                                                                    _ -> (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))))))))))))))}))}));
1324                                                        Prelude.False ->
1325                                                         (trace "X" (let {
1326                                                                      tc' = (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (tyConEqDecidable)) (trace "X" (tc)) (trace "X" (arrowTyCon)))))) of {
1327                                                                                         Prelude.True -> (trace "X" (WFunTyCon));
1328                                                                                         Prelude.False -> (trace "X" (WTyCon (trace "X" (tc))))}))}
1329                                                                     in
1330                                                                     (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'))))))))))))))))))}));
1331                                          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')))))))))))))}))));
1332                TypeRep.FunTy t1 t2 ->
1333                 (trace "X" (case (trace "X" (t1)) of {
1334                              TypeRep.PredTy p ->
1335                               (trace "X" (case (trace "X" (p)) of {
1336                                            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'))))))))))))))))))))))))))));
1337                                            _ -> (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')))))))))))))))))))))}));
1338                              _ -> (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')))))))))))))))))))))}));
1339                TypeRep.ForAllTy cv t ->
1340                 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (cv)))))) of {
1341                              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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1342                              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'))))))))))))));
1343                              WCoerVar w -> (trace "X" (case (trace "X" (w)) of {
1344                                                         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'))))))))))))))}))}));
1345                TypeRep.PredTy p ->
1346                 (trace "X" (case (trace "X" (p)) of {
1347                              TypeRep.ClassP cl lct ->
1348                               (trace "X" ((trace "X" (orErrorBind
1349                                                         (trace "X" ((trace "X" ((let {
1350                                                                                   rec tl =
1351                                                                                     (trace "X" (case (trace "X" (tl)) of {
1352                                                                                                  ([]) -> (trace "X" (OK (trace "X" (([])))));
1353                                                                                                  (:) 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')))))))))))))))))))))}))}
1354                                                                                  in rec (trace "X" (lct))))))) (trace "X" ((\lct' -> (trace "X" (OK (trace "X" ((WClassP (trace "X" (cl)) (trace "X" (lct'))))))))))))));
1355                              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'))))))))))))));
1356                              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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))}))}))
1357
1358 coreTypeToWeakType :: TypeRep.Type -> OrError WeakType
1359 coreTypeToWeakType t =
1360   (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))))))))))))))))
1361
1362 isBrak :: (CoreSyn.Expr Var.Var) -> Prelude.Maybe ((,) ((,) WeakExprVar0 WeakTypeVar0) TypeRep.Type)
1363 isBrak ce =
1364   (trace "X" (case (trace "X" (ce)) of {
1365                CoreSyn.App c c0 ->
1366                 (trace "X" (case (trace "X" (c)) of {
1367                              CoreSyn.App c1 c2 ->
1368                               (trace "X" (case (trace "X" (c1)) of {
1369                                            CoreSyn.Var v ->
1370                                             (trace "X" (case (trace "X" (c2)) of {
1371                                                          CoreSyn.Type c3 ->
1372                                                           (trace "X" (case (trace "X" (c3)) of {
1373                                                                        TypeRep.TyVarTy ec ->
1374                                                                         (trace "X" (case (trace "X" (c0)) of {
1375                                                                                      CoreSyn.Type tbody ->
1376                                                                                       (trace "X" (case (trace "X" ((trace "X" ((==) (trace "X" (PrelNames.hetmet_brak_name)) (trace "X" ((trace "X" ((Var.varName (trace "X" (v))))))))))) of {
1377                                                                                                    Prelude.True ->
1378                                                                                                     (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (ec)))))) of {
1379                                                                                                                  WTypeVar tv ->
1380                                                                                                                   (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1381                                                                                                                                WExprVar v' -> (trace "X" (Prelude.Just (trace "X" (((,) (trace "X" (((,) (trace "X" (v')) (trace "X" (tv))))) (trace "X" (tbody)))))));
1382                                                                                                                                _ -> (trace "X" (Prelude.Nothing))}));
1383                                                                                                                  _ -> (trace "X" (Prelude.Nothing))}));
1384                                                                                                    Prelude.False -> (trace "X" (Prelude.Nothing))}));
1385                                                                                      _ -> (trace "X" (Prelude.Nothing))}));
1386                                                                        _ -> (trace "X" (Prelude.Nothing))}));
1387                                                          _ -> (trace "X" (Prelude.Nothing))}));
1388                                            _ -> (trace "X" (Prelude.Nothing))}));
1389                              _ -> (trace "X" (Prelude.Nothing))}));
1390                _ -> (trace "X" (Prelude.Nothing))}))
1391
1392 isEsc :: (CoreSyn.Expr Var.Var) -> Prelude.Maybe ((,) ((,) WeakExprVar0 WeakTypeVar0) TypeRep.Type)
1393 isEsc ce =
1394   (trace "X" (case (trace "X" (ce)) of {
1395                CoreSyn.App c c0 ->
1396                 (trace "X" (case (trace "X" (c)) of {
1397                              CoreSyn.App c1 c2 ->
1398                               (trace "X" (case (trace "X" (c1)) of {
1399                                            CoreSyn.Var v ->
1400                                             (trace "X" (case (trace "X" (c2)) of {
1401                                                          CoreSyn.Type c3 ->
1402                                                           (trace "X" (case (trace "X" (c3)) of {
1403                                                                        TypeRep.TyVarTy ec ->
1404                                                                         (trace "X" (case (trace "X" (c0)) of {
1405                                                                                      CoreSyn.Type tbody ->
1406                                                                                       (trace "X" (case (trace "X" ((trace "X" ((==) (trace "X" (PrelNames.hetmet_esc_name)) (trace "X" ((trace "X" ((Var.varName (trace "X" (v))))))))))) of {
1407                                                                                                    Prelude.True ->
1408                                                                                                     (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (ec)))))) of {
1409                                                                                                                  WTypeVar tv ->
1410                                                                                                                   (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1411                                                                                                                                WExprVar v' -> (trace "X" (Prelude.Just (trace "X" (((,) (trace "X" (((,) (trace "X" (v')) (trace "X" (tv))))) (trace "X" (tbody)))))));
1412                                                                                                                                _ -> (trace "X" (Prelude.Nothing))}));
1413                                                                                                                  _ -> (trace "X" (Prelude.Nothing))}));
1414                                                                                                    Prelude.False -> (trace "X" (Prelude.Nothing))}));
1415                                                                                      _ -> (trace "X" (Prelude.Nothing))}));
1416                                                                        _ -> (trace "X" (Prelude.Nothing))}));
1417                                                          _ -> (trace "X" (Prelude.Nothing))}));
1418                                            _ -> (trace "X" (Prelude.Nothing))}));
1419                              _ -> (trace "X" (Prelude.Nothing))}));
1420                _ -> (trace "X" (Prelude.Nothing))}))
1421
1422 isCSP :: (CoreSyn.Expr Var.Var) -> Prelude.Maybe ((,) ((,) WeakExprVar0 WeakTypeVar0) TypeRep.Type)
1423 isCSP ce =
1424   (trace "X" (case (trace "X" (ce)) of {
1425                CoreSyn.App c c0 ->
1426                 (trace "X" (case (trace "X" (c)) of {
1427                              CoreSyn.App c1 c2 ->
1428                               (trace "X" (case (trace "X" (c1)) of {
1429                                            CoreSyn.Var v ->
1430                                             (trace "X" (case (trace "X" (c2)) of {
1431                                                          CoreSyn.Type c3 ->
1432                                                           (trace "X" (case (trace "X" (c3)) of {
1433                                                                        TypeRep.TyVarTy ec ->
1434                                                                         (trace "X" (case (trace "X" (c0)) of {
1435                                                                                      CoreSyn.Type tbody ->
1436                                                                                       (trace "X" (case (trace "X" ((trace "X" ((==) (trace "X" (PrelNames.hetmet_csp_name)) (trace "X" ((trace "X" ((Var.varName (trace "X" (v))))))))))) of {
1437                                                                                                    Prelude.True ->
1438                                                                                                     (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (ec)))))) of {
1439                                                                                                                  WTypeVar tv ->
1440                                                                                                                   (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1441                                                                                                                                WExprVar v' -> (trace "X" (Prelude.Just (trace "X" (((,) (trace "X" (((,) (trace "X" (v')) (trace "X" (tv))))) (trace "X" (tbody)))))));
1442                                                                                                                                _ -> (trace "X" (Prelude.Nothing))}));
1443                                                                                                                  _ -> (trace "X" (Prelude.Nothing))}));
1444                                                                                                    Prelude.False -> (trace "X" (Prelude.Nothing))}));
1445                                                                                      _ -> (trace "X" (Prelude.Nothing))}));
1446                                                                        _ -> (trace "X" (Prelude.Nothing))}));
1447                                                          _ -> (trace "X" (Prelude.Nothing))}));
1448                                            _ -> (trace "X" (Prelude.Nothing))}));
1449                              _ -> (trace "X" (Prelude.Nothing))}));
1450                _ -> (trace "X" (Prelude.Nothing))}))
1451
1452 expectTyConApp :: WeakType -> (([]) WeakType) -> OrError ((,) TyCon.TyCon (([]) WeakType))
1453 expectTyConApp wt acc =
1454   (trace "X" (case (trace "X" (wt)) of {
1455                WAppTy t1 t2 -> (trace "X" ((trace "X" (expectTyConApp (trace "X" (t1)) (trace "X" (((:) (trace "X" (t2)) (trace "X" (acc)))))))));
1456                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))))))))))))));
1457                WTyCon tc -> (trace "X" (OK (trace "X" (((,) (trace "X" (tc)) (trace "X" (acc)))))));
1458                _ -> (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))))))))))))))}))
1459
1460 coreExprToWeakExpr :: (CoreSyn.Expr Var.Var) -> OrError WeakExpr
1461 coreExprToWeakExpr ce =
1462   (trace "X" (case (trace "X" (ce)) of {
1463                CoreSyn.Var v ->
1464                 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1465                              WExprVar ev -> (trace "X" (OK (trace "X" ((WEVar (trace "X" (ev)))))));
1466                              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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1467                              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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1468                CoreSyn.Lit lit -> (trace "X" (OK (trace "X" ((WELit (trace "X" (lit)))))));
1469                CoreSyn.App e1 e2 ->
1470                 (trace "X" (case (trace "X" ((trace "X" (isBrak (trace "X" (e1)))))) of {
1471                              Prelude.Just p ->
1472                               (trace "X" (case (trace "X" (p)) of {
1473                                            (,) p0 t -> (trace "X" (case (trace "X" (p0)) of {
1474                                                                     (,) 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')))))))))))))))))))))}))}));
1475                              Prelude.Nothing ->
1476                               (trace "X" (case (trace "X" ((trace "X" (isEsc (trace "X" (e1)))))) of {
1477                                            Prelude.Just p ->
1478                                             (trace "X" (case (trace "X" (p)) of {
1479                                                          (,) p0 t -> (trace "X" (case (trace "X" (p0)) of {
1480                                                                                   (,) 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')))))))))))))))))))))}))}));
1481                                            Prelude.Nothing ->
1482                                             (trace "X" (case (trace "X" ((trace "X" (isCSP (trace "X" (e1)))))) of {
1483                                                          Prelude.Just p ->
1484                                                           (trace "X" (case (trace "X" (p)) of {
1485                                                                        (,) p0 t -> (trace "X" (case (trace "X" (p0)) of {
1486                                                                                                 (,) 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')))))))))))))))))))))}))}));
1487                                                          Prelude.Nothing ->
1488                                                           (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e1))))))) (trace "X" ((\e1' ->
1489                                                                                     (trace "X" (case (trace "X" (e2)) of {
1490                                                                                                  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'))))))))))))));
1491                                                                                                  _ -> (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'))))))))))))))})))))))))}))}))}));
1492                CoreSyn.Lam v e ->
1493                 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1494                              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'))))))))))))));
1495                              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'))))))))))))));
1496                              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'))))))))))))))}));
1497                CoreSyn.Let c e ->
1498                 (trace "X" (case (trace "X" (c)) of {
1499                              CoreSyn.NonRec v ve ->
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" (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')))))))))))))))))))));
1502                                            WTypeVar w ->
1503                                             (trace "X" (case (trace "X" (e)) of {
1504                                                          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" ([]))))))))))))))))))))))))))))))))))))))))))))));
1505                                                          _ -> (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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1506                                            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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1507                              CoreSyn.Rec rb ->
1508                               (trace "X" ((trace "X" (orErrorBind
1509                                                         (trace "X" ((trace "X" ((let {
1510                                                                                   coreExprToWeakExprList cel =
1511                                                                                     (trace "X" (case (trace "X" (cel)) of {
1512                                                                                                  ([]) -> (trace "X" (OK (trace "X" (([])))));
1513                                                                                                  (:) p t ->
1514                                                                                                   (trace "X" (case (trace "X" (p)) of {
1515                                                                                                                (,) v' e' ->
1516                                                                                                                 (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExprList (trace "X" (t))))))) (trace "X" ((\t' ->
1517                                                                                                                                           (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v')))))) of {
1518                                                                                                                                                        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'))))))))))))));
1519                                                                                                                                                        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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1520                                                                                                                                                        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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))})))))))))}))}))}
1521                                                                                  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')))))))))))))))))))))}));
1522                CoreSyn.Case e v tbranches alts ->
1523                 (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (v)))))) of {
1524                              WExprVar ev ->
1525                               (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreTypeToWeakType (trace "X" ((trace "X" ((CoreUtils.exprType (trace "X" (e)))))))))))) (trace "X" ((\te' ->
1526                                                         (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((expectTyConApp (trace "X" (te')) (trace "X" (([])))))))) (trace "X" ((\tca ->
1527                                                                                   (trace "X" (case (trace "X" (tca)) of {
1528                                                                                                (,) tc lt ->
1529                                                                                                 (trace "X" ((trace "X" (orErrorBind
1530                                                                                                                           (trace "X" ((trace "X" ((let {
1531                                                                                                                                                     mkBranches branches =
1532                                                                                                                                                       (trace "X" (case (trace "X" (branches)) of {
1533                                                                                                                                                                    ([]) -> (trace "X" (OK (trace "X" (([])))));
1534                                                                                                                                                                    (:) t rest ->
1535                                                                                                                                                                     (trace "X" (case (trace "X" (t)) of {
1536                                                                                                                                                                                  (,,) alt vars e0 ->
1537                                                                                                                                                                                   (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((mkBranches (trace "X" (rest))))))) (trace "X" ((\rest' ->
1538                                                                                                                                                                                                             (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((coreExprToWeakExpr (trace "X" (e0))))))) (trace "X" ((\e' ->
1539                                                                                                                                                                                                                                       (trace "X" (case (trace "X" (alt)) of {
1540                                                                                                                                                                                                                                                    CoreSyn.DataAlt dc ->
1541                                                                                                                                                                                                                                                     (trace "X" (let {vars0 = (trace "X" ((trace "X" (map (trace "X" (coreVarToWeakVar)) (trace "X" (vars))))))} in
1542                                                                                                                                                                                                                                                                 (trace "X" (OK (trace "X" (((:) (trace "X" (((,) (trace "X" (((,) (trace "X" (((,) (trace "X" (((,) (trace "X" ((WeakDataAlt (trace "X" (dc)))))
1543                                                                                                                                                                                                                                                                 (trace "X" ((trace "X" ((filter
1544                                                                                                                                                                                                                                                                                           (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1545                                                                                                                                                                                                                                                                                                                     (trace "X" (case (trace "X" (x)) of {
1546                                                                                                                                                                                                                                                                                                                                  WTypeVar v0 -> (trace "X" (Prelude.Just (trace "X" (v0))));
1547                                                                                                                                                                                                                                                                                                                                  _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" (vars0)))))))))))))))
1548                                                                                                                                                                                                                                                                 (trace "X" ((trace "X" ((filter
1549                                                                                                                                                                                                                                                                                           (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1550                                                                                                                                                                                                                                                                                                                     (trace "X" (case (trace "X" (x)) of {
1551                                                                                                                                                                                                                                                                                                                                  WCoerVar v0 -> (trace "X" (Prelude.Just (trace "X" (v0))));
1552                                                                                                                                                                                                                                                                                                                                  _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" (vars0)))))))))))))))
1553                                                                                                                                                                                                                                                                 (trace "X" ((trace "X" ((filter
1554                                                                                                                                                                                                                                                                                           (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1555                                                                                                                                                                                                                                                                                                                     (trace "X" (case (trace "X" (x)) of {
1556                                                                                                                                                                                                                                                                                                                                  WExprVar v0 -> (trace "X" (Prelude.Just (trace "X" (v0))));
1557                                                                                                                                                                                                                                                                                                                                  _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" (vars0))))))))))))))) (trace "X" (e'))))) (trace "X" (rest')))))))));
1558                                                                                                                                                                                                                                                    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')))))));
1559                                                                                                                                                                                                                                                    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')))))))}))))))))))))))))}))}))}
1560                                                                                                                                                    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)))))))))))))))))))))))))))))))))}))))))))))))))));
1561                              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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
1562                              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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
1563                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)))))))))))))))))));
1564                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'))))))))))))));
1565                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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))
1566
1567 dataConExTyVars :: DataCon.DataCon -> ([]) WeakTypeVar0
1568 dataConExTyVars cdc =
1569   (trace "X" ((trace "X" (filter
1570                             (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1571                                                       (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (x)))))) of {
1572                                                                    WTypeVar v -> (trace "X" (Prelude.Just (trace "X" (v))));
1573                                                                    _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" ((trace "X" ((DataCon.dataConExTyVars (trace "X" (cdc))))))))))))))))
1574
1575 dataConCoerKinds :: DataCon.DataCon -> ([]) ((,) WeakType WeakType)
1576 dataConCoerKinds cdc =
1577   (trace "X" ((trace "X" (filter
1578                             (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1579                                                       (trace "X" (case (trace "X" (x)) of {
1580                                                                    TypeRep.EqPred t1 t2 ->
1581                                                                     (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 {
1582                                                                                  Error error_message -> (trace "X" (Prelude.Nothing));
1583                                                                                  OK z -> (trace "X" (Prelude.Just (trace "X" (z))))}));
1584                                                                    _ -> (trace "X" (Prelude.Nothing))}))))) (trace "X" ((trace "X" ((DataCon.dataConEqTheta (trace "X" (cdc))))))))))))))))
1585
1586 dataConFieldTypes :: DataCon.DataCon -> ([]) WeakType
1587 dataConFieldTypes cdc =
1588   (trace "X" ((trace "X" (filter
1589                             (trace "X" ((trace "X" ((map (trace "X" ((\x ->
1590                                                       (trace "X" (case (trace "X" ((trace "X" (coreTypeToWeakType (trace "X" (x)))))) of {
1591                                                                    Error error_message -> (trace "X" (Prelude.Nothing));
1592                                                                    OK z -> (trace "X" (Prelude.Just (trace "X" (z))))}))))) (trace "X" ((trace "X" ((DataCon.dataConOrigArgTys (trace "X" (cdc))))))))))))))))
1593
1594 type DataCon =
1595   DataCon.DataCon
1596   -- singleton inductive, whose constructor was mkDataCon
1597   
1598 dataConToCoreDataCon :: TyCon.TyCon -> DataCon -> DataCon.DataCon
1599 dataConToCoreDataCon tc dc =
1600   (trace "X" (dc))
1601
1602 tyConKind' :: TyCon.TyCon -> Kind
1603 tyConKind' tc =
1604   (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)))))))))))
1605
1606 data RawHaskType tV =
1607    TVar Kind tV
1608  | TCon TyCon.TyCon
1609  | TArrow
1610  | TCoerc Kind (RawHaskType tV) (RawHaskType tV) (RawHaskType tV)
1611  | TApp Kind Kind (RawHaskType tV) (RawHaskType tV)
1612  | TAll Kind (tV -> RawHaskType tV)
1613  | TCode (RawHaskType tV) (RawHaskType tV)
1614  | TyFunApp TyCon.TyCon (([]) Kind) Kind (RawHaskTypeList tV)
1615 data RawHaskTypeList tV =
1616    TyFunApp_nil
1617  | TyFunApp_cons Kind (([]) Kind) (RawHaskType tV) (RawHaskTypeList tV)
1618
1619 data RawCoercionKind tV =
1620    MkRawCoercionKind Kind (RawHaskType tV) (RawHaskType tV)
1621
1622 type TypeEnv = ([]) Kind
1623
1624 type InstantiatedTypeEnv tV = IList Kind tV
1625
1626 type HaskCoercionKind = () -> (InstantiatedTypeEnv ()) -> RawCoercionKind ()
1627
1628 type CoercionEnv = ([]) HaskCoercionKind
1629
1630 type InstantiatedCoercionEnv tV cV = Vec cV
1631
1632 type HaskTyVar = () -> (InstantiatedTypeEnv ()) -> ()
1633
1634 type HaskCoVar = () -> () -> (InstantiatedTypeEnv ()) -> (InstantiatedCoercionEnv () ()) -> ()
1635
1636 type HaskLevel = ([]) HaskTyVar
1637
1638 type HaskType = () -> (InstantiatedTypeEnv ()) -> RawHaskType ()
1639
1640 haskTyVarToType :: TypeEnv -> Kind -> HaskTyVar -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1641 haskTyVarToType __U0393_0 __U03ba_ htv ite =
1642   (trace "X" (TVar (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (htv)) (trace "X" (__)) (trace "X" (ite)))))))))
1643
1644 data HaskTypeOfSomeKind0 =
1645    HaskTypeOfSomeKind Kind HaskType
1646
1647 data LeveledHaskType =
1648    MkLeveledHaskType HaskType HaskLevel
1649
1650 freshHaskTyVar :: (([]) Kind) -> Kind -> (InstantiatedTypeEnv a1) -> a1
1651 freshHaskTyVar __U0393_0 __U03ba_ env =
1652   (trace "X" ((trace "X" (ilist_head (trace "X" (__U03ba_)) (trace "X" (__U0393_0)) (trace "X" (env))))))
1653
1654 haskTAll :: TypeEnv -> Kind -> (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1655 haskTAll __U0393_0 __U03ba_ __U03c3_ env =
1656   (trace "X" (TAll (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (__U03c3_)) (trace "X" (__)) (trace "X" (env)))))))))
1657
1658 haskTApp :: TypeEnv -> Kind -> (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) -> HaskTyVar -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1659 haskTApp __U0393_0 __U03ba_ __U03c3_ cv env =
1660   (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)))))))))))
1661
1662 haskBrak :: TypeEnv -> HaskTyVar -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1663 haskBrak __U0393_0 v t env =
1664   (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)))))))))
1665
1666 mkHaskCoercionKind :: TypeEnv -> Kind -> HaskType -> HaskType -> (InstantiatedTypeEnv a1) -> RawCoercionKind a1
1667 mkHaskCoercionKind __U0393_0 __U03ba_ t1 t2 ite =
1668   (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)))))))))
1669
1670 flattenT :: Kind -> (RawHaskType (RawHaskType a1)) -> RawHaskType a1
1671 flattenT =
1672   (trace "X" (let {
1673                flattenT0 __U03ba_ exp =
1674                  (trace "X" (case (trace "X" (exp)) of {
1675                               TVar __U03ba_0 x -> (trace "X" (x));
1676                               TCon tc -> (trace "X" (TCon (trace "X" (tc))));
1677                               TArrow -> (trace "X" (TArrow));
1678                               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)))))))));
1679                               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)))))))));
1680                               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)))))))))))))))))));
1681                               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)))))))));
1682                               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)))))))))}));
1683                flattenTyFunApp lk exp =
1684                  (trace "X" (case (trace "X" (exp)) of {
1685                               TyFunApp_nil -> (trace "X" (TyFunApp_nil));
1686                               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)))))))))}))}
1687               in flattenT0))
1688
1689 substT :: TypeEnv -> Kind -> Kind -> (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1690 substT __U0393_0 __U03ba___U2081_ __U03ba___U2082_ exp v env =
1691   (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))))))))))))))))
1692
1693 unlev :: TypeEnv -> Kind -> LeveledHaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1694 unlev __U0393_0 __U03ba_ lht x =
1695   (trace "X" (case (trace "X" (lht)) of {
1696                MkLeveledHaskType t l -> (trace "X" ((trace "X" (unsafeCoerce (trace "X" (t)) (trace "X" (__)) (trace "X" (x))))))}))
1697
1698 data Global =
1699    Build_Global WeakExprVar0 (([]) Kind) ((IList Kind HaskType) -> HaskType)
1700
1701 glob_wv :: TypeEnv -> Global -> WeakExprVar0
1702 glob_wv __U0393_0 g =
1703   (trace "X" (case (trace "X" (g)) of {
1704                Build_Global glob_wv0 glob_kinds0 glob_tf0 -> (trace "X" (glob_wv0))}))
1705
1706 glob_kinds :: TypeEnv -> Global -> ([]) Kind
1707 glob_kinds __U0393_0 g =
1708   (trace "X" (case (trace "X" (g)) of {
1709                Build_Global glob_wv0 glob_kinds0 glob_tf0 -> (trace "X" (glob_kinds0))}))
1710
1711 glob_tf :: TypeEnv -> Global -> (IList Kind HaskType) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1712 glob_tf __U0393_0 g x x0 =
1713   (trace "X" (case (trace "X" (g)) of {
1714                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))))))}))
1715
1716 take_arg_types :: Kind -> (RawHaskType a1) -> ([]) (RawHaskType a1)
1717 take_arg_types __U03ba_ exp =
1718   (trace "X" (case (trace "X" (exp)) of {
1719                TApp __U03ba___U2081_ __U03ba___U2082_ x y ->
1720                 (trace "X" (let {x0 = (trace "X" ((trace "X" (take_arg_types (trace "X" (__U03ba___U2082_)) (trace "X" (y))))))} in
1721                             (trace "X" (case (trace "X" (__U03ba___U2081_)) of {
1722                                          KindStar ->
1723                                           (trace "X" (case (trace "X" (__U03ba___U2082_)) of {
1724                                                        KindStar ->
1725                                                         (trace "X" (case (trace "X" (x)) of {
1726                                                                      TApp __U03ba___U2081_'' __U03ba___U2082_'' w'' x'' ->
1727                                                                       (trace "X" (case (trace "X" (__U03ba___U2082_'')) of {
1728                                                                                    KindStar ->
1729                                                                                     (trace "X" (case (trace "X" (w'')) of {
1730                                                                                                  TArrow -> (trace "X" ((:) (trace "X" (x'')) (trace "X" (x0))));
1731                                                                                                  _ -> (trace "X" (([])))}));
1732                                                                                    _ -> (trace "X" (([])))}));
1733                                                                      _ -> (trace "X" (([])))}));
1734                                                        _ -> (trace "X" (([])))}));
1735                                          _ -> (trace "X" (([])))}))));
1736                _ -> (trace "X" (([])))}))
1737
1738 count_arg_types :: Kind -> (RawHaskType a1) -> Nat
1739 count_arg_types __U03ba_ exp =
1740   (trace "X" (case (trace "X" (exp)) of {
1741                TApp __U03ba___U2081_ __U03ba___U2082_ x y ->
1742                 (trace "X" (let {x0 = (trace "X" ((trace "X" (count_arg_types (trace "X" (__U03ba___U2082_)) (trace "X" (y))))))} in
1743                             (trace "X" (case (trace "X" (__U03ba___U2081_)) of {
1744                                          KindStar ->
1745                                           (trace "X" (case (trace "X" (__U03ba___U2082_)) of {
1746                                                        KindStar ->
1747                                                         (trace "X" (case (trace "X" (x)) of {
1748                                                                      TApp __U03ba___U2081_'' __U03ba___U2082_'' w'' x'' ->
1749                                                                       (trace "X" (case (trace "X" (__U03ba___U2082_'')) of {
1750                                                                                    KindStar ->
1751                                                                                     (trace "X" (case (trace "X" (w'')) of {
1752                                                                                                  TArrow -> (trace "X" (S (trace "X" (x0))));
1753                                                                                                  _ -> (trace "X" (O))}));
1754                                                                                    _ -> (trace "X" (O))}));
1755                                                                      _ -> (trace "X" (O))}));
1756                                                        _ -> (trace "X" (O))}));
1757                                          _ -> (trace "X" (O))}))));
1758                _ -> (trace "X" (O))}))
1759
1760 ite_unit :: TypeEnv -> InstantiatedTypeEnv ()
1761 ite_unit __U0393_0 =
1762   (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))))))
1763
1764 drop_arg_types :: Kind -> (RawHaskType a1) -> RawHaskType a1
1765 drop_arg_types __U03ba_ exp =
1766   (trace "X" (case (trace "X" (exp)) of {
1767                TCon tc -> (trace "X" (TCon (trace "X" (tc))));
1768                TArrow -> (trace "X" (TArrow));
1769                TApp __U03ba___U2081_ __U03ba___U2082_ x y ->
1770                 (trace "X" (let {
1771                              q = (trace "X" (let {x0 = (trace "X" ((trace "X" (drop_arg_types (trace "X" (__U03ba___U2082_)) (trace "X" (y))))))} in
1772                                              (trace "X" (case (trace "X" (__U03ba___U2081_)) of {
1773                                                           KindStar ->
1774                                                            (trace "X" (case (trace "X" (__U03ba___U2082_)) of {
1775                                                                         KindStar ->
1776                                                                          (trace "X" (case (trace "X" (x)) of {
1777                                                                                       TVar __U03ba_0 y0 -> (trace "X" (Prelude.Nothing));
1778                                                                                       TCon tc -> (trace "X" (Prelude.Nothing));
1779                                                                                       TArrow -> (trace "X" (Prelude.Nothing));
1780                                                                                       TCoerc __U03ba_0 r r0 r1 -> (trace "X" (Prelude.Nothing));
1781                                                                                       TApp __U03ba___U2081_'' __U03ba___U2082_'' w'' x'' ->
1782                                                                                        (trace "X" (case (trace "X" (__U03ba___U2082_'')) of {
1783                                                                                                     KindStar ->
1784                                                                                                      (trace "X" (case (trace "X" (w'')) of {
1785                                                                                                                   TVar __U03ba_0 y0 -> (trace "X" (Prelude.Nothing));
1786                                                                                                                   TCon tc -> (trace "X" (Prelude.Nothing));
1787                                                                                                                   TArrow -> (trace "X" (Prelude.Just (trace "X" (x0))));
1788                                                                                                                   _ -> (trace "X" (Prelude.Nothing))}));
1789                                                                                                     _ -> (trace "X" (Prelude.Nothing))}));
1790                                                                                       _ -> (trace "X" (Prelude.Nothing))}));
1791                                                                         _ -> (trace "X" (Prelude.Nothing))}));
1792                                                           _ -> (trace "X" (Prelude.Nothing))}))))}
1793                             in
1794                             (trace "X" (case (trace "X" (q)) of {
1795                                          Prelude.Just y0 -> (trace "X" (y0));
1796                                          Prelude.Nothing -> (trace "X" (TApp (trace "X" (__U03ba___U2081_)) (trace "X" (__U03ba___U2082_)) (trace "X" (x)) (trace "X" (y))))}))));
1797                x -> (trace "X" (x))}))
1798
1799 weakITE :: TypeEnv -> Kind -> (InstantiatedTypeEnv a1) -> InstantiatedTypeEnv a1
1800 weakITE __U0393_0 __U03ba_ ite =
1801   (trace "X" ((trace "X" (ilist_tail (trace "X" (__U03ba_)) (trace "X" (__U0393_0)) (trace "X" (ite))))))
1802
1803 weakCE :: TypeEnv -> Kind -> CoercionEnv -> CoercionEnv
1804 weakCE __U0393_0 __U03ba_ __U0394_0 =
1805   (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))))))
1806
1807 weakV :: TypeEnv -> Kind -> Kind -> HaskTyVar -> (InstantiatedTypeEnv a1) -> a1
1808 weakV __U0393_0 __U03ba_ __U03ba_v cv' ite =
1809   (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)))))))))))
1810
1811 weakV' :: TypeEnv -> (([]) Kind) -> Kind -> HaskTyVar -> (InstantiatedTypeEnv a1) -> a1
1812 weakV' __U0393_0 __U03ba_ __U03ba_v cv' env =
1813   (trace "X" ((trace "X" (list_rect (trace "X" ((unsafeCoerce (trace "X" (cv'))))) (trace "X" ((\a __U03ba_0 iH__U03ba_ _ ->
1814                             (trace "X" ((trace "X" (weakV
1815                                                       (trace "X" ((trace "X" ((let {
1816                                                                                 app0 l m =
1817                                                                                   (trace "X" (case (trace "X" (l)) of {
1818                                                                                                ([]) -> (trace "X" (m));
1819                                                                                                (:) a0 l1 -> (trace "X" ((:) (trace "X" (a0)) (trace "X" ((trace "X" ((app0 (trace "X" (l1)) (trace "X" (m)))))))))}))}
1820                                                                                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))))))
1821
1822 weakT :: TypeEnv -> Kind -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1823 weakT __U0393_0 __U03ba_ __U03ba___U2082_ lt ite =
1824   (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)))))))))))
1825
1826 weakL :: TypeEnv -> Kind -> HaskLevel -> HaskLevel
1827 weakL __U0393_0 __U03ba_ lt =
1828   (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))))))
1829
1830 weakT' :: TypeEnv -> (([]) Kind) -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1831 weakT' __U0393_0 __U03ba_ __U03ba___U2082_ lt x =
1832   (trace "X" ((trace "X" (list_rect (trace "X" ((unsafeCoerce (trace "X" (lt))))) (trace "X" ((\a __U03ba_0 iH__U03ba_ _ ->
1833                             (trace "X" ((trace "X" (weakT
1834                                                       (trace "X" ((trace "X" ((let {
1835                                                                                 app0 l m =
1836                                                                                   (trace "X" (case (trace "X" (l)) of {
1837                                                                                                ([]) -> (trace "X" (m));
1838                                                                                                (:) a0 l1 -> (trace "X" ((:) (trace "X" (a0)) (trace "X" ((trace "X" ((app0 (trace "X" (l1)) (trace "X" (m)))))))))}))}
1839                                                                                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))))))
1840
1841 weakT'' :: TypeEnv -> (([]) Kind) -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1842 weakT'' __U0393_0 __U03ba_ __U03ba___U2082_ lt x =
1843   (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))))))))
1844
1845 lamer :: (([]) Kind) -> (([]) Kind) -> (([]) Kind) -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1846 lamer a b c __U03ba_ lt x =
1847   (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))))))))
1848
1849 weakL' :: TypeEnv -> (([]) Kind) -> HaskLevel -> HaskLevel
1850 weakL' __U0393_0 __U03ba_ lev =
1851   (trace "X" ((trace "X" (list_rect (trace "X" (lev)) (trace "X" ((\a __U03ba_0 iH__U03ba_ ->
1852                             (trace "X" ((trace "X" (weakL
1853                                                       (trace "X" ((trace "X" ((let {
1854                                                                                 app0 l m =
1855                                                                                   (trace "X" (case (trace "X" (l)) of {
1856                                                                                                ([]) -> (trace "X" (m));
1857                                                                                                (:) a0 l1 -> (trace "X" ((:) (trace "X" (a0)) (trace "X" ((trace "X" ((app0 (trace "X" (l1)) (trace "X" (m)))))))))}))}
1858                                                                                in app0 (trace "X" (__U03ba_0)) (trace "X" (__U0393_0))))))) (trace "X" (a)) (trace "X" (iH__U03ba_))))))))) (trace "X" (__U03ba_))))))
1859
1860 weakLT :: TypeEnv -> Kind -> Kind -> LeveledHaskType -> LeveledHaskType
1861 weakLT __U0393_0 __U03ba_ __U03ba___U2082_ lt =
1862   (trace "X" (case (trace "X" (lt)) of {
1863                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)))))))))}))
1864
1865 weakLT' :: TypeEnv -> (([]) Kind) -> Kind -> LeveledHaskType -> LeveledHaskType
1866 weakLT' __U0393_0 __U03ba_ __U03ba___U2082_ lt =
1867   (trace "X" (case (trace "X" (lt)) of {
1868                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)))))))))}))
1869
1870 weakICE :: TypeEnv -> Kind -> CoercionEnv -> (InstantiatedCoercionEnv a1 a2) -> InstantiatedCoercionEnv a1 a2
1871 weakICE __U0393_0 __U03ba_ __U0394_0 ice =
1872   (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)))))))))))
1873
1874 weakCK :: TypeEnv -> Kind -> HaskCoercionKind -> (InstantiatedTypeEnv a1) -> RawCoercionKind a1
1875 weakCK __U0393_0 __U03ba_ hck x =
1876   (trace "X" ((trace "X" (unsafeCoerce (trace "X" (hck)) (trace "X" (__))
1877                             (trace "X" ((case (trace "X" (x)) of {
1878                                           INil -> (trace "X" (false_rect));
1879                                           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))))))})))))))
1880
1881 weakCK' :: TypeEnv -> (([]) Kind) -> HaskCoercionKind -> (InstantiatedTypeEnv a1) -> RawCoercionKind a1
1882 weakCK' __U0393_0 __U03ba_ hck x =
1883   (trace "X" ((trace "X" (list_rect (trace "X" ((unsafeCoerce (trace "X" (hck))))) (trace "X" ((\a __U03ba_0 iH__U03ba_ _ ->
1884                             (trace "X" ((trace "X" (weakCK
1885                                                       (trace "X" ((trace "X" ((let {
1886                                                                                 app0 l m =
1887                                                                                   (trace "X" (case (trace "X" (l)) of {
1888                                                                                                ([]) -> (trace "X" (m));
1889                                                                                                (:) a0 l1 -> (trace "X" ((:) (trace "X" (a0)) (trace "X" ((trace "X" ((app0 (trace "X" (l1)) (trace "X" (m)))))))))}))}
1890                                                                                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))))))
1891
1892 weakCK'' :: TypeEnv -> (([]) Kind) -> (([]) HaskCoercionKind) -> ([]) HaskCoercionKind
1893 weakCK'' __U0393_0 __U03ba_ hck =
1894   (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))))))
1895
1896 weakCV :: TypeEnv -> CoercionEnv -> Kind -> HaskCoVar -> (InstantiatedTypeEnv a1) -> (InstantiatedCoercionEnv a1 a2) -> a2
1897 weakCV __U0393_0 __U0394_0 __U03ba_ cv' ite ice =
1898   (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)))))))))))
1899
1900 weakF :: TypeEnv -> Kind -> Kind -> (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) -> (InstantiatedTypeEnv a1) -> a1 -> RawHaskType a1
1901 weakF __U0393_0 __U03ba_ __U03ba___U2082_ f ite tv =
1902   (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))))))
1903
1904 caseType0 :: TypeEnv -> (([]) Kind) -> (IList Kind HaskType) -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1905 caseType0 __U0393_0 lk x x0 x1 =
1906   (trace "X" (case (trace "X" (lk)) of {
1907                ([]) -> (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x0)) (trace "X" (__)) (trace "X" (x1))))));
1908                (:) k lk' ->
1909                 (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
1910                                           (trace "X" ((trace "X" ((let {
1911                                                                     fold_right0 l =
1912                                                                       (trace "X" (case (trace "X" (l)) of {
1913                                                                                    ([]) -> (trace "X" (KindStar));
1914                                                                                    (:) b t -> (trace "X" (KindArrow (trace "X" (b)) (trace "X" ((trace "X" ((fold_right0 (trace "X" (t)))))))))}))}
1915                                                                    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))))))}))
1916
1917 caseType :: TypeEnv -> TyCon.TyCon -> (IList Kind HaskType) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1918 caseType __U0393_0 tc atypes x =
1919   (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))))))
1920
1921 data StrongAltCon =
1922    Build_StrongAltCon WeakAltCon Nat Nat Nat (Vec Kind) (TypeEnv -> (IList Kind HaskType) -> Vec HaskCoercionKind) (TypeEnv -> (IList Kind HaskType) -> Vec HaskType)
1923
1924 sac_altcon :: TyCon.TyCon -> StrongAltCon -> WeakAltCon
1925 sac_altcon tc s =
1926   (trace "X" (case (trace "X" (s)) of {
1927                Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x))}))
1928
1929 sac_numExTyVars :: TyCon.TyCon -> StrongAltCon -> Nat
1930 sac_numExTyVars tc s =
1931   (trace "X" (case (trace "X" (s)) of {
1932                Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x0))}))
1933
1934 sac_numCoerVars :: TyCon.TyCon -> StrongAltCon -> Nat
1935 sac_numCoerVars tc s =
1936   (trace "X" (case (trace "X" (s)) of {
1937                Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x1))}))
1938
1939 sac_numExprVars :: TyCon.TyCon -> StrongAltCon -> Nat
1940 sac_numExprVars tc s =
1941   (trace "X" (case (trace "X" (s)) of {
1942                Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x2))}))
1943
1944 sac_ekinds :: TyCon.TyCon -> StrongAltCon -> Vec Kind
1945 sac_ekinds tc s =
1946   (trace "X" (case (trace "X" (s)) of {
1947                Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x3))}))
1948
1949 sac___U0393_ :: TyCon.TyCon -> StrongAltCon -> (([]) Kind) -> ([]) Kind
1950 sac___U0393_ tc s __U0393_0 =
1951   (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))))))
1952
1953 sac_coercions :: TyCon.TyCon -> StrongAltCon -> TypeEnv -> (IList Kind HaskType) -> Vec HaskCoercionKind
1954 sac_coercions tc s =
1955   (trace "X" (case (trace "X" (s)) of {
1956                Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x4))}))
1957
1958 sac_types :: TyCon.TyCon -> StrongAltCon -> TypeEnv -> (IList Kind HaskType) -> Vec HaskType
1959 sac_types tc s =
1960   (trace "X" (case (trace "X" (s)) of {
1961                Build_StrongAltCon x x0 x1 x2 x3 x4 x5 -> (trace "X" (x5))}))
1962
1963 sac___U0394_ :: TyCon.TyCon -> StrongAltCon -> TypeEnv -> (IList Kind HaskType) -> (([]) HaskCoercionKind) -> ([]) HaskCoercionKind
1964 sac___U0394_ tc s __U0393_0 atypes __U0394_0 =
1965   (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))))))
1966
1967 literalType :: Literal.Literal -> TypeEnv -> (InstantiatedTypeEnv a1) -> RawHaskType a1
1968 literalType lit __U0393_0 x =
1969   (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))))))))
1970
1971 update___U03be_ :: (EqDecidable a1) -> TypeEnv -> (a1 -> LeveledHaskType) -> HaskLevel -> (([]) ((,) a1 HaskType)) -> a1 -> LeveledHaskType
1972 update___U03be_ eQD_VV __U0393_0 __U03be_0 lev vt =
1973   (trace "X" (case (trace "X" (vt)) of {
1974                ([]) -> (trace "X" (__U03be_0));
1975                (:) p tl -> (trace "X" ((\v' ->
1976                 (trace "X" (case (trace "X" (p)) of {
1977                              (,) v __U03c4_ ->
1978                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eQD_VV)) (trace "X" (v)) (trace "X" (v')))))) of {
1979                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))));
1980                                            Prelude.False -> (trace "X" ((trace "X" (update___U03be_ (trace "X" (eQD_VV)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (tl)) (trace "X" (v'))))))}))})))))}))
1981
1982 compareT :: Nat -> Kind -> (RawHaskType Nat) -> Kind -> (RawHaskType Nat) -> Prelude.Bool
1983 compareT n __U03ba___U2081_ t1 __U03ba___U2082_ t2 =
1984   (trace "X" (case (trace "X" (t1)) of {
1985                TVar __U03ba_ x ->
1986                 (trace "X" (case (trace "X" (t2)) of {
1987                              TVar __U03ba_0 x' ->
1988                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqDecidableNat)) (trace "X" (x)) (trace "X" (x')))))) of {
1989                                            Prelude.True -> (trace "X" (Prelude.True));
1990                                            Prelude.False -> (trace "X" (Prelude.False))}));
1991                              _ -> (trace "X" (Prelude.False))}));
1992                TCon tc ->
1993                 (trace "X" (case (trace "X" (t2)) of {
1994                              TCon tc' ->
1995                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (tyConEqDecidable)) (trace "X" (tc)) (trace "X" (tc')))))) of {
1996                                            Prelude.True -> (trace "X" (Prelude.True));
1997                                            Prelude.False -> (trace "X" (Prelude.False))}));
1998                              _ -> (trace "X" (Prelude.False))}));
1999                TArrow ->
2000                 (trace "X" (case (trace "X" (t2)) of {
2001                              TArrow -> (trace "X" (Prelude.True));
2002                              _ -> (trace "X" (Prelude.False))}));
2003                TCoerc __U03ba_ t3 t4 t ->
2004                 (trace "X" (case (trace "X" (t4)) of {
2005                              TCoerc __U03ba_0 t1' t2' t' ->
2006                               (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 {
2007                                                             Prelude.True -> (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (__U03ba_)) (trace "X" (t4)) (trace "X" (__U03ba_0)) (trace "X" (t2'))))));
2008                                                             Prelude.False -> (trace "X" (Prelude.False))})) of {
2009                                            Prelude.True -> (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (KindStar)) (trace "X" (t)) (trace "X" (KindStar)) (trace "X" (t'))))));
2010                                            Prelude.False -> (trace "X" (Prelude.False))}));
2011                              _ -> (trace "X" (Prelude.False))}));
2012                TApp __U03ba___U2081_0 __U03ba___U2082_0 x y ->
2013                 (trace "X" (case (trace "X" (t2)) of {
2014                              TApp __U03ba___U2081_1 __U03ba___U2082_1 x' y' ->
2015                               (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 {
2016                                            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'))))));
2017                                            Prelude.False -> (trace "X" (Prelude.False))}));
2018                              _ -> (trace "X" (Prelude.False))}));
2019                TAll __U03ba_ y ->
2020                 (trace "X" (case (trace "X" (t2)) of {
2021                              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)))))))))));
2022                              _ -> (trace "X" (Prelude.False))}));
2023                TCode ec t ->
2024                 (trace "X" (case (trace "X" (t2)) of {
2025                              TCode ec' t' ->
2026                               (trace "X" (case (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (eCKind)) (trace "X" (ec)) (trace "X" (eCKind)) (trace "X" (ec')))))) of {
2027                                            Prelude.True -> (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (KindStar)) (trace "X" (t)) (trace "X" (KindStar)) (trace "X" (t'))))));
2028                                            Prelude.False -> (trace "X" (Prelude.False))}));
2029                              _ -> (trace "X" (Prelude.False))}));
2030                TyFunApp tfc kl k lt ->
2031                 (trace "X" (case (trace "X" (t2)) of {
2032                              TyFunApp tfc' kl' k' lt' ->
2033                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (tyFunEqDecidable)) (trace "X" (tfc)) (trace "X" (tfc')))))) of {
2034                                            Prelude.True -> (trace "X" ((trace "X" (compareTL (trace "X" (n)) (trace "X" (kl)) (trace "X" (lt)) (trace "X" (kl')) (trace "X" (lt'))))));
2035                                            Prelude.False -> (trace "X" (Prelude.False))}));
2036                              _ -> (trace "X" (Prelude.False))}))}))
2037
2038 compareTL :: Nat -> (([]) Kind) -> (RawHaskTypeList Nat) -> (([]) Kind) -> (RawHaskTypeList Nat) -> Prelude.Bool
2039 compareTL n __U03ba___U2081_ t1 __U03ba___U2082_ t2 =
2040   (trace "X" (case (trace "X" (t1)) of {
2041                TyFunApp_nil ->
2042                 (trace "X" (case (trace "X" (t2)) of {
2043                              TyFunApp_nil -> (trace "X" (Prelude.True));
2044                              TyFunApp_cons __U03ba_ kl r r0 -> (trace "X" (Prelude.False))}));
2045                TyFunApp_cons __U03ba_ kl t r ->
2046                 (trace "X" (case (trace "X" (t2)) of {
2047                              TyFunApp_nil -> (trace "X" (Prelude.False));
2048                              TyFunApp_cons __U03ba_' kl' t' r' ->
2049                               (trace "X" (case (trace "X" ((trace "X" (compareT (trace "X" (n)) (trace "X" (__U03ba_)) (trace "X" (t)) (trace "X" (__U03ba_')) (trace "X" (t')))))) of {
2050                                            Prelude.True -> (trace "X" ((trace "X" (compareTL (trace "X" (n)) (trace "X" (kl)) (trace "X" (r)) (trace "X" (kl')) (trace "X" (r'))))));
2051                                            Prelude.False -> (trace "X" (Prelude.False))}))}))}))
2052
2053 count' :: (([]) Kind) -> Nat -> IList Kind Nat
2054 count' lk n =
2055   (trace "X" (case (trace "X" (lk)) of {
2056                ([]) -> (trace "X" (INil));
2057                (:) 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))))))))))))}))
2058
2059 compareHT :: TypeEnv -> Kind -> HaskType -> HaskType -> Prelude.Bool
2060 compareHT __U0393_0 __U03ba_ ht1 ht2 =
2061   (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))))))))))))))))
2062
2063 haskTypeEqDecidable :: TypeEnv -> Kind -> EqDecidable HaskType
2064 haskTypeEqDecidable __U0393_0 __U03ba_ v1 v2 =
2065   (trace "X" (let {q = (trace "X" ((trace "X" (compareHT (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (v1)) (trace "X" (v2))))))} in
2066               (trace "X" (case (trace "X" (q)) of {
2067                            Prelude.True -> (trace "X" (Prelude.True));
2068                            Prelude.False -> (trace "X" (Prelude.False))}))))
2069
2070 haskTyVarEqDecidable :: TypeEnv -> Kind -> EqDecidable HaskTyVar
2071 haskTyVarEqDecidable __U0393_0 __U03ba_ v1 v2 =
2072   (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
2073               (trace "X" (case (trace "X" (q)) of {
2074                            Prelude.True -> (trace "X" (Prelude.True));
2075                            Prelude.False -> (trace "X" (Prelude.False))}))))
2076
2077 haskLevelEqDecidable :: TypeEnv -> EqDecidable HaskLevel
2078 haskLevelEqDecidable __U0393_0 v1 v2 =
2079   (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))))))
2080
2081 typeToString' :: Prelude.Bool -> Nat -> Kind -> (RawHaskType Nat) -> Prelude.String
2082 typeToString' needparens n __U03ba_ t =
2083   (trace "X" (case (trace "X" (t)) of {
2084                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)))))))))));
2085                TCon tc -> (trace "X" ((trace "X" (toString (trace "X" (tyConToString)) (trace "X" (tc))))));
2086                TArrow -> (trace "X" ((:) (trace "X" ('(')) (trace "X" (((:) (trace "X" ('-')) (trace "X" (((:) (trace "X" ('>')) (trace "X" (((:) (trace "X" (')')) (trace "X" ([])))))))))))));
2087                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)))))))))));
2088                TApp __U03ba___U2081_ __U03ba___U2082_ t1 t2 ->
2089                 (trace "X" (case (trace "X" (t1)) of {
2090                              TApp __U03ba___U2081_0 __U03ba___U2082_0 r t3 ->
2091                               (trace "X" (case (trace "X" (r)) of {
2092                                            TArrow ->
2093                                             (trace "X" (case (trace "X" (needparens)) of {
2094                                                          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" ([])))))))));
2095                                                          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)))))))))))}));
2096                                            _ ->
2097                                             (trace "X" (case (trace "X" (needparens)) of {
2098                                                          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" ([])))))))));
2099                                                          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)))))))))))}))}));
2100                              _ ->
2101                               (trace "X" (case (trace "X" (needparens)) of {
2102                                            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" ([])))))))));
2103                                            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)))))))))))}))}));
2104                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))))))))))))))))));
2105                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)))))))))));
2106                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" ([])))))))))}))
2107
2108 typeList2string :: Prelude.Bool -> Nat -> (([]) Kind) -> (RawHaskTypeList Nat) -> ([]) Prelude.String
2109 typeList2string needparens n __U03ba_ t =
2110   (trace "X" (case (trace "X" (t)) of {
2111                TyFunApp_nil -> (trace "X" (([])));
2112                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)))))))))}))
2113
2114 typeToString :: TypeEnv -> Kind -> HaskType -> Prelude.String
2115 typeToString __U0393_0 __U03ba_ ht =
2116   (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))))))))))))))))
2117
2118 typeToStringInstance :: TypeEnv -> Kind -> ToString HaskType
2119 typeToStringInstance __U0393_0 __U03ba_ =
2120   (trace "X" ((trace "X" (typeToString (trace "X" (__U0393_0)) (trace "X" (__U03ba_))))))
2121
2122 type StrongCaseBranchWithVVs vV =
2123   Vec vV
2124   -- singleton inductive, whose constructor was Build_StrongCaseBranchWithVVs
2125   
2126 scbwv_exprvars :: (EqDecidable a1) -> TyCon.TyCon -> TypeEnv -> (IList Kind HaskType) -> StrongAltCon -> (StrongCaseBranchWithVVs a1) -> Vec a1
2127 scbwv_exprvars eQD_VV tc __U0393_0 atypes sac s =
2128   (trace "X" (s))
2129
2130 scbwv_varstypes :: (EqDecidable a1) -> TyCon.TyCon -> TypeEnv -> (IList Kind HaskType) -> StrongAltCon -> (StrongCaseBranchWithVVs a1) -> Vec ((,) a1 HaskType)
2131 scbwv_varstypes eQD_VV tc __U0393_0 atypes sac s =
2132   (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)))))))))))
2133
2134 scbwv___U03be_ :: (EqDecidable a1) -> TyCon.TyCon -> TypeEnv -> (IList Kind HaskType) -> StrongAltCon -> (StrongCaseBranchWithVVs a1) -> (a1 -> LeveledHaskType) -> HaskLevel -> a1 -> LeveledHaskType
2135 scbwv___U03be_ eQD_VV tc __U0393_0 atypes sac s __U03be_0 lev =
2136   (trace "X" ((trace "X" (update___U03be_ (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))))))))))))))))
2137
2138 data Expr vV =
2139    EGlobal TypeEnv CoercionEnv (vV -> LeveledHaskType) Global (IList Kind HaskType) HaskLevel
2140  | EVar TypeEnv CoercionEnv (vV -> LeveledHaskType) vV
2141  | ELit TypeEnv CoercionEnv (vV -> LeveledHaskType) Literal.Literal HaskLevel
2142  | EApp TypeEnv CoercionEnv (vV -> LeveledHaskType) (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) HaskLevel (Expr vV) (Expr vV)
2143  | ELam TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskType HaskType HaskLevel vV (Expr vV)
2144  | ELet TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskType HaskType HaskLevel vV (Expr vV) (Expr vV)
2145  | EEsc TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskTyVar HaskType HaskLevel (Expr vV)
2146  | EBrak TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskTyVar HaskType (([]) HaskTyVar) (Expr vV)
2147  | ECast TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskType HaskType HaskLevel (Expr vV)
2148  | ENote TypeEnv CoercionEnv (vV -> LeveledHaskType) LeveledHaskType CoreSyn.Note (Expr vV)
2149  | ETyApp TypeEnv CoercionEnv Kind (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) HaskType (vV -> LeveledHaskType) HaskLevel (Expr vV)
2150  | ECoLam TypeEnv (([]) HaskCoercionKind) Kind HaskType HaskType HaskType (vV -> LeveledHaskType) HaskLevel (Expr vV)
2151  | ECoApp TypeEnv CoercionEnv Kind HaskType HaskType (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) (vV -> LeveledHaskType) HaskLevel (Expr vV)
2152  | ETyLam (([]) Kind) CoercionEnv (vV -> LeveledHaskType) Kind (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) HaskLevel (Expr vV)
2153  | ECase TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskLevel TyCon.TyCon HaskType (IList Kind HaskType) (Expr vV) (Tree (Prelude.Maybe (SigT StrongAltCon (SigT (StrongCaseBranchWithVVs vV) (Expr vV)))))
2154  | ELetRec TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskLevel HaskType (Tree (Prelude.Maybe ((,) vV HaskType))) (ELetRecBindings vV) (Expr vV)
2155 data ELetRecBindings vV =
2156    ELR_nil TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskLevel
2157  | ELR_leaf TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskLevel vV HaskType (Expr vV)
2158  | ELR_branch TypeEnv CoercionEnv (vV -> LeveledHaskType) HaskLevel (Tree (Prelude.Maybe ((,) vV HaskType))) (Tree (Prelude.Maybe ((,) vV HaskType))) (ELetRecBindings vV) (ELetRecBindings vV)
2159
2160 data Judg =
2161    MkJudg TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType))
2162
2163 type ProofCaseBranch =
2164   Tree (Prelude.Maybe LeveledHaskType)
2165   -- singleton inductive, whose constructor was Build_ProofCaseBranch
2166   
2167 pcb_freevars :: TyCon.TyCon -> TypeEnv -> (([]) HaskCoercionKind) -> HaskLevel -> HaskType -> (IList Kind HaskType) -> StrongAltCon -> ProofCaseBranch -> Tree (Prelude.Maybe LeveledHaskType)
2168 pcb_freevars tc __U0393_0 __U0394_0 lev branchtype avars sac p =
2169   (trace "X" (p))
2170
2171 pcb_judg :: TyCon.TyCon -> TypeEnv -> (([]) HaskCoercionKind) -> HaskLevel -> HaskType -> (IList Kind HaskType) -> StrongAltCon -> ProofCaseBranch -> Judg
2172 pcb_judg tc __U0393_0 __U0394_0 lev branchtype avars sac p =
2173   (trace "X" (MkJudg (trace "X" ((trace "X" ((sac___U0393_ (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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" ((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" (branchtype)) (trace "X" (lev))))))))))))))))))
2174
2175 data Arrange t =
2176    RId (Tree (Prelude.Maybe t))
2177  | RCanL (Tree (Prelude.Maybe t))
2178  | RCanR (Tree (Prelude.Maybe t))
2179  | RuCanL (Tree (Prelude.Maybe t))
2180  | RuCanR (Tree (Prelude.Maybe t))
2181  | RAssoc (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t))
2182  | RCossa (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t))
2183  | RExch (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t))
2184  | RWeak (Tree (Prelude.Maybe t))
2185  | RCont (Tree (Prelude.Maybe t))
2186  | RLeft (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Arrange t)
2187  | RRight (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Arrange t)
2188  | RComp (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Tree (Prelude.Maybe t)) (Arrange t) (Arrange t)
2189
2190 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
2191 arrange_rect f f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 t t0 a =
2192   (trace "X" (case (trace "X" (a)) of {
2193                RId a0 -> (trace "X" ((trace "X" (f (trace "X" (a0))))));
2194                RCanL a0 -> (trace "X" ((trace "X" (f0 (trace "X" (a0))))));
2195                RCanR a0 -> (trace "X" ((trace "X" (f1 (trace "X" (a0))))));
2196                RuCanL a0 -> (trace "X" ((trace "X" (f2 (trace "X" (a0))))));
2197                RuCanR a0 -> (trace "X" ((trace "X" (f3 (trace "X" (a0))))));
2198                RAssoc a0 b c -> (trace "X" ((trace "X" (f4 (trace "X" (a0)) (trace "X" (b)) (trace "X" (c))))));
2199                RCossa a0 b c -> (trace "X" ((trace "X" (f5 (trace "X" (a0)) (trace "X" (b)) (trace "X" (c))))));
2200                RExch a0 b -> (trace "X" ((trace "X" (f6 (trace "X" (a0)) (trace "X" (b))))));
2201                RWeak a0 -> (trace "X" ((trace "X" (f7 (trace "X" (a0))))));
2202                RCont a0 -> (trace "X" ((trace "X" (f8 (trace "X" (a0))))));
2203                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)))))))))));
2204                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)))))))))));
2205                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)))))))))))}))
2206
2207 data Rule =
2208    RArrange TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) (Arrange LeveledHaskType)
2209  | RBrak TypeEnv CoercionEnv HaskType HaskTyVar (Tree (Prelude.Maybe LeveledHaskType)) (([]) HaskTyVar)
2210  | REsc TypeEnv CoercionEnv HaskType HaskTyVar (Tree (Prelude.Maybe LeveledHaskType)) HaskLevel
2211  | RNote TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) HaskType HaskLevel CoreSyn.Note
2212  | RLit TypeEnv CoercionEnv Literal.Literal HaskLevel
2213  | RVar TypeEnv CoercionEnv HaskType HaskLevel
2214  | RGlobal TypeEnv CoercionEnv HaskLevel Global (IList Kind HaskType)
2215  | RLam TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) HaskType HaskType HaskLevel
2216  | RCast TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) HaskType HaskType HaskLevel
2217  | RJoin TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType))
2218  | RApp TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) HaskType (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) HaskLevel
2219  | RLet TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) (Tree (Prelude.Maybe LeveledHaskType)) HaskType HaskType HaskLevel
2220  | RVoid TypeEnv CoercionEnv
2221  | RAppT TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) Kind (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) HaskType HaskLevel
2222  | RAbsT (([]) Kind) CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) Kind (() -> (InstantiatedTypeEnv ()) -> () -> RawHaskType ()) HaskLevel
2223  | RAppCo TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) Kind HaskType HaskType (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) HaskLevel
2224  | RAbsCo TypeEnv (([]) HaskCoercionKind) (Tree (Prelude.Maybe LeveledHaskType)) Kind HaskType HaskType HaskType HaskLevel
2225  | RLetRec TypeEnv CoercionEnv (Tree (Prelude.Maybe LeveledHaskType)) HaskType (Tree (Prelude.Maybe HaskType)) HaskLevel
2226  | RCase TypeEnv (([]) HaskCoercionKind) HaskLevel TyCon.TyCon (Tree (Prelude.Maybe LeveledHaskType)) (IList Kind HaskType) HaskType (Tree (Prelude.Maybe (SigT StrongAltCon ProofCaseBranch)))
2227
2228 arrangeMap :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (a1 -> a2) -> (Arrange a1) -> Arrange a2
2229 arrangeMap __U03a3___U2081_ __U03a3___U2082_ f x =
2230   (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))))))
2231
2232 arrangeSwapMiddle :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> Arrange a1
2233 arrangeSwapMiddle a b c d =
2234   (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))))))))))))))))
2235
2236 weakAltConToCoreAltCon :: WeakAltCon -> CoreSyn.AltCon
2237 weakAltConToCoreAltCon wa =
2238   (trace "X" (case (trace "X" (wa)) of {
2239                WeakDataAlt cdc -> (trace "X" (CoreSyn.DataAlt (trace "X" (cdc))));
2240                WeakLitAlt lit -> (trace "X" (CoreSyn.LitAlt (trace "X" (lit))));
2241                WeakDEFAULT -> (trace "X" (CoreSyn.DEFAULT))}))
2242
2243 weakTypeToCoreType :: WeakType -> TypeRep.Type
2244 weakTypeToCoreType wt =
2245   (trace "X" (case (trace "X" (wt)) of {
2246                WTyVarTy w -> (trace "X" (case (trace "X" (w)) of {
2247                                           WeakTypeVar v k -> (trace "X" (TypeRep.TyVarTy (trace "X" (v))))}));
2248                WAppTy t1 t2 ->
2249                 (trace "X" (case (trace "X" (t1)) of {
2250                              WAppTy w t3 ->
2251                               (trace "X" (case (trace "X" (w)) of {
2252                                            WFunTyCon -> (trace "X" (TypeRep.FunTy (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t3))))))) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t2)))))))));
2253                                            _ ->
2254                                             (trace "X" (case (trace "X" ((trace "X" (weakTypeToCoreType (trace "X" (t1)))))) of {
2255                                                          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" (([])))))))))))));
2256                                                          x -> (trace "X" (TypeRep.AppTy (trace "X" (x)) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t2)))))))))}))}));
2257                              _ ->
2258                               (trace "X" (case (trace "X" ((trace "X" (weakTypeToCoreType (trace "X" (t1)))))) of {
2259                                            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" (([])))))))))))));
2260                                            x -> (trace "X" (TypeRep.AppTy (trace "X" (x)) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t2)))))))))}))}));
2261                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)))))))));
2262                WTyCon tc -> (trace "X" (TypeRep.TyConApp (trace "X" ((trace "X" (((\x -> x) (trace "X" (tc))))))) (trace "X" (([])))));
2263                WFunTyCon -> (trace "X" (TypeRep.TyConApp (trace "X" ((trace "X" (((\x -> x) (trace "X" (arrowTyCon))))))) (trace "X" (([])))));
2264                WCodeTy w t -> (trace "X" (case (trace "X" (w)) of {
2265                                            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" (([])))))))))))}));
2266                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)))))))));
2267                WForAllTy w t -> (trace "X" (case (trace "X" (w)) of {
2268                                              WeakTypeVar wtv k -> (trace "X" (TypeRep.ForAllTy (trace "X" (wtv)) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t)))))))))}));
2269                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))))))))))));
2270                WIParam n ty -> (trace "X" (TypeRep.PredTy (trace "X" ((TypeRep.IParam (trace "X" (n)) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (ty))))))))))))}))
2271
2272 weakCoercionToCoreCoercion :: WeakCoercion -> Coercion.Coercion
2273 weakCoercionToCoreCoercion wc =
2274   (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)))))))))))))))))))))
2275
2276 weakExprToCoreExpr :: WeakExpr -> CoreSyn.Expr Var.Var
2277 weakExprToCoreExpr me =
2278   (trace "X" (case (trace "X" (me)) of {
2279                WEVar w -> (trace "X" (case (trace "X" (w)) of {
2280                                        WeakExprVar v w0 -> (trace "X" (CoreSyn.Var (trace "X" (v))))}));
2281                WELit lit -> (trace "X" (CoreSyn.Lit (trace "X" (lit))));
2282                WELet w ve e -> (trace "X" (case (trace "X" (w)) of {
2283                                             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)))))))))))}));
2284                WELetRec mlr e -> (trace "X" (CoreSyn.Let (trace "X" ((CoreSyn.Rec
2285                 (trace "X" ((trace "X" ((let {
2286                                           mkLetBindings mlr0 =
2287                                             (trace "X" (case (trace "X" (mlr0)) of {
2288                                                          T_Leaf o ->
2289                                                           (trace "X" (case (trace "X" (o)) of {
2290                                                                        Prelude.Just p ->
2291                                                                         (trace "X" (case (trace "X" (p)) of {
2292                                                                                      (,) w e0 -> (trace "X" (case (trace "X" (w)) of {
2293                                                                                                               WeakExprVar cv w0 -> (trace "X" ((:) (trace "X" (((,) (trace "X" (cv)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e0)))))))))) (trace "X" (([])))))}))}));
2294                                                                        Prelude.Nothing -> (trace "X" (([])))}));
2295                                                          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)))))))))))}))}
2296                                          in mkLetBindings (trace "X" (mlr)))))))))) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))));
2297                WECast e co -> (trace "X" (CoreSyn.Cast (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e))))))) (trace "X" ((trace "X" ((weakCoercionToCoreCoercion (trace "X" (co)))))))));
2298                WENote n e -> (trace "X" (CoreSyn.Note (trace "X" (n)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))));
2299                WEApp e1 e2 -> (trace "X" (CoreSyn.App (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e1))))))) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e2)))))))));
2300                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))))))))))));
2301                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)))))))))))))))));
2302                WELam w e -> (trace "X" (case (trace "X" (w)) of {
2303                                          WeakExprVar ev w0 -> (trace "X" (CoreSyn.Lam (trace "X" (ev)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))))}));
2304                WETyLam w e -> (trace "X" (case (trace "X" (w)) of {
2305                                            WeakTypeVar tv k -> (trace "X" (CoreSyn.Lam (trace "X" (tv)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))))}));
2306                WECoLam w e -> (trace "X" (case (trace "X" (w)) of {
2307                                            WeakCoerVar cv w0 w1 -> (trace "X" (CoreSyn.Lam (trace "X" (cv)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (e)))))))))}));
2308                WEBrak v w e t -> (trace "X" (case (trace "X" (w)) of {
2309                                               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)))))))))))))))))}));
2310                WEEsc v w e t -> (trace "X" (case (trace "X" (w)) of {
2311                                              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)))))))))))))))))}));
2312                WECSP v w e t -> (trace "X" (case (trace "X" (w)) of {
2313                                              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)))))))))))))))))}));
2314                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)))))))
2315                 (trace "X" ((trace "X" ((sortAlts
2316                                           (trace "X" ((trace "X" ((let {
2317                                                                     mkCaseBranches alts0 =
2318                                                                       (trace "X" (case (trace "X" (alts0)) of {
2319                                                                                    T_Leaf o ->
2320                                                                                     (trace "X" (case (trace "X" (o)) of {
2321                                                                                                  Prelude.Just p ->
2322                                                                                                   (trace "X" (case (trace "X" (p)) of {
2323                                                                                                                (,) p0 e ->
2324                                                                                                                 (trace "X" (case (trace "X" (p0)) of {
2325                                                                                                                              (,) p1 evars ->
2326                                                                                                                               (trace "X" (case (trace "X" (p1)) of {
2327                                                                                                                                            (,) p2 cvars -> (trace "X" (case (trace "X" (p2)) of {
2328                                                                                                                                                                         (,) 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" (([])))))}))}))}))}));
2329                                                                                                  Prelude.Nothing -> (trace "X" (([])))}));
2330                                                                                    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)))))))))))}))}
2331                                                                    in mkCaseBranches (trace "X" (alts))))))))))))))}))
2332
2333 weakTypeOfWeakExpr :: WeakExpr -> OrError WeakType
2334 weakTypeOfWeakExpr we =
2335   (trace "X" ((trace "X" (coreTypeToWeakType (trace "X" ((trace "X" ((CoreUtils.exprType (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (we))))))))))))))))
2336
2337 weakExprToString :: ToString WeakExpr
2338 weakExprToString we =
2339   (trace "X" ((trace "X" (toString (trace "X" (coreExprToString)) (trace "X" ((trace "X" ((weakExprToCoreExpr (trace "X" (we)))))))))))
2340
2341 type TyVarResolver = WeakTypeVar0 -> OrError HaskTyVar
2342
2343 type CoVarResolver = WeakCoerVar0 -> OrError HaskCoVar
2344
2345 up__U03c6_ :: TypeEnv -> WeakTypeVar0 -> TyVarResolver -> TyVarResolver
2346 up__U03c6_ __U0393_0 tv __U03c6_0 tv' =
2347   (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (weakTypeVarEqDecidable)) (trace "X" (tv)) (trace "X" (tv')))))) of {
2348                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')))))))))));
2349                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)))))))))))))))))))))))}))
2350
2351 up__U03c6_' :: TypeEnv -> (([]) WeakTypeVar0) -> TyVarResolver -> TyVarResolver
2352 up__U03c6_' __U0393_0 tvs __U03c6_0 =
2353   (trace "X" ((trace "X" (list_rect (trace "X" (__U03c6_0)) (trace "X" ((\a tvs0 iHtvs -> (trace "X" ((trace "X" (up__U03c6_ (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))))))
2354
2355 substPhi :: TypeEnv -> Kind -> Kind -> HaskType -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
2356 substPhi __U0393_0 __U03ba_ __U03ba_' __U03b8_ ht x =
2357   (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))))))
2358
2359 subst__U03c6_ :: TypeEnv -> (([]) Kind) -> (IList Kind HaskType) -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
2360 subst__U03c6_ __U0393_0 lk __U03b8_ __U03ba_ x x0 =
2361   (trace "X" (let {
2362                h = (trace "X" ((trace "X" (list_rect (trace "X" ((\__U03b8_0 q -> (trace "X" (q))))) (trace "X" ((\a lk0 iHlk __U03b8_0 q ->
2363                                              (trace "X" ((trace "X" (iHlk
2364                                                                        (trace "X" ((case (trace "X" (__U03b8_0)) of {
2365                                                                                      INil -> (trace "X" (false_rect));
2366                                                                                      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))))))})))
2367                                                                        (trace "X" ((case (trace "X" (__U03b8_0)) of {
2368                                                                                      INil -> (trace "X" (false_rect));
2369                                                                                      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))))))}
2370               in
2371               (trace "X" ((trace "X" (unsafeCoerce (trace "X" (h)) (trace "X" (__U03b8_)) (trace "X" (x)) (trace "X" (__)) (trace "X" (x0))))))))
2372
2373 data StrongAltConPlusJunk =
2374    Build_StrongAltConPlusJunk StrongAltCon (TypeEnv -> TyVarResolver -> TyVarResolver) (TypeEnv -> CoercionEnv -> (IList Kind HaskType) -> CoVarResolver -> CoVarResolver)
2375
2376 sacpj_sac :: TyCon.TyCon -> StrongAltConPlusJunk -> StrongAltCon
2377 sacpj_sac tc s =
2378   (trace "X" (case (trace "X" (s)) of {
2379                Build_StrongAltConPlusJunk sacpj_sac0 sacpj___U03c6_0 sacpj___U03c8_0 -> (trace "X" (sacpj_sac0))}))
2380
2381 sacpj___U03c6_ :: TyCon.TyCon -> StrongAltConPlusJunk -> TypeEnv -> TyVarResolver -> TyVarResolver
2382 sacpj___U03c6_ tc s =
2383   (trace "X" (case (trace "X" (s)) of {
2384                Build_StrongAltConPlusJunk sacpj_sac0 sacpj___U03c6_0 sacpj___U03c8_0 -> (trace "X" (sacpj___U03c6_0))}))
2385
2386 sacpj___U03c8_ :: TyCon.TyCon -> StrongAltConPlusJunk -> TypeEnv -> CoercionEnv -> (IList Kind HaskType) -> CoVarResolver -> CoVarResolver
2387 sacpj___U03c8_ tc s =
2388   (trace "X" (case (trace "X" (s)) of {
2389                Build_StrongAltConPlusJunk sacpj_sac0 sacpj___U03c6_0 sacpj___U03c8_0 -> (trace "X" (sacpj___U03c8_0))}))
2390
2391 mkPhi :: (([]) WeakTypeVar0) -> TyVarResolver
2392 mkPhi lv =
2393   (trace "X" (let {__U03c6_' = (trace "X" ((trace "X" (up__U03c6_' (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_')) (trace "X" ((trace "X" ((map (trace "X" ((\tv -> (trace "X" ((trace "X" (weakTypeVarToKind (trace "X" (tv))))))))) (trace "X" (lv)))))))))))))
2394
2395 dataConExKinds :: DataCon.DataCon -> Vec Kind
2396 dataConExKinds dc =
2397   (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))))))))))))))))
2398
2399 tyConKinds :: TyCon.TyCon -> Vec Kind
2400 tyConKinds tc =
2401   (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))))))))))))))))
2402
2403 fixkind :: Kind -> WeakTypeVar0 -> WeakTypeVar0
2404 fixkind __U03ba_ tv =
2405   (trace "X" (WeakTypeVar (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WTypeVar (trace "X" (tv)))))))))) (trace "X" (__U03ba_))))
2406
2407 mkTAll' :: Kind -> (([]) Kind) -> HaskType -> (InstantiatedTypeEnv a1) -> a1 -> RawHaskType a1
2408 mkTAll' __U03ba_ __U0393_0 x ite x0 =
2409   (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)))))))))
2410
2411 mkTAll :: Kind -> (([]) Kind) -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
2412 mkTAll __U03ba_ __U0393_0 x x0 =
2413   (trace "X" (TAll (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((mkTAll' (trace "X" (__U03ba_)) (trace "X" (__U0393_0)) (trace "X" (x)) (trace "X" (x0)))))))))
2414
2415 weakTypeToType :: TypeEnv -> TyVarResolver -> WeakType -> OrError HaskTypeOfSomeKind0
2416 weakTypeToType __U0393_0 __U03c6_0 t =
2417   (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))))))))))))
2418                             (trace "X" ((case (trace "X" (t)) of {
2419                                           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)))))))))))))))))))))))))))));
2420                                           WAppTy t1 t2 ->
2421                                            (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t1))))))) (trace "X" ((\t1' ->
2422                                                                      (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t2))))))) (trace "X" ((\t2' ->
2423                                                                                                (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" ([])))))))))))))))))))))))))))))))))))
2424                                                                                                                          (trace "X" ((case (trace "X" (t1')) of {
2425                                                                                                                                        HaskTypeOfSomeKind k1' t1'0 ->
2426                                                                                                                                         (trace "X" (case (trace "X" (t2')) of {
2427                                                                                                                                                      HaskTypeOfSomeKind k2' t2'0 ->
2428                                                                                                                                                       (trace "X" (case (trace "X" (k1')) of {
2429                                                                                                                                                                    KindArrow k1'1 k1'2 ->
2430                                                                                                                                                                     (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (k1'1)) (trace "X" (k2'))))))} in
2431                                                                                                                                                                                 (trace "X" (case (trace "X" (s)) of {
2432                                                                                                                                                                                              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))))));
2433                                                                                                                                                                                              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'))))))))))))))}))));
2434                                                                                                                                                                    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)))))))))))}))}))})))))))))))))))))))));
2435                                           WTyFunApp tc lt ->
2436                                            (trace "X" ((trace "X" (orErrorBind
2437                                                                      (trace "X" ((trace "X" ((let {
2438                                                                                                weakTypeListToTypeList lk lt0 =
2439                                                                                                  (trace "X" (case (trace "X" (lt0)) of {
2440                                                                                                               ([]) ->
2441                                                                                                                (trace "X" (case (trace "X" (lk)) of {
2442                                                                                                                             ([]) -> (trace "X" (OK (trace "X" ((\_ x -> (trace "X" (TyFunApp_nil)))))));
2443                                                                                                                             (:) 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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
2444                                                                                                               (:) tx lt' ->
2445                                                                                                                (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (tx))))))) (trace "X" ((\t' ->
2446                                                                                                                                          (trace "X" (case (trace "X" (lk)) of {
2447                                                                                                                                                       ([]) -> (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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2448                                                                                                                                                       (:) k lk' ->
2449                                                                                                                                                        (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeListToTypeList (trace "X" (lk')) (trace "X" (lt'))))))) (trace "X" ((\rhtl' ->
2450                                                                                                                                                                                  (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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
2451                                                                                                                                                                                                            (trace "X" ((case (trace "X" (t')) of {
2452                                                                                                                                                                                                                          HaskTypeOfSomeKind k' t'0 ->
2453                                                                                                                                                                                                                           (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (k)) (trace "X" (k'))))))} in
2454                                                                                                                                                                                                                                       (trace "X" (case (trace "X" (s)) of {
2455                                                                                                                                                                                                                                                    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))))));
2456                                                                                                                                                                                                                                                    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'))))))))))))))}))))}))))))))))))))})))))))))}))}
2457                                                                                               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)))))))))))))))))))))))))))));
2458                                           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)))))))))))))))));
2459                                           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))))))))));
2460                                           WCodeTy ec tbody ->
2461                                            (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (tbody))))))) (trace "X" ((\tbody' ->
2462                                                                      (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' ->
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" ('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" ([]))))))))))))))))))))))))))))))))))))))
2464                                                                                                                          (trace "X" ((case (trace "X" (tbody')) of {
2465                                                                                                                                        HaskTypeOfSomeKind __U03ba_ h ->
2466                                                                                                                                         (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (__U03ba_)) (trace "X" (KindStar))))))} in
2467                                                                                                                                                     (trace "X" (case (trace "X" (s)) of {
2468                                                                                                                                                                  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)))))))))))))))));
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" ('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))))))))))))))}))))})))))))))))))))))))));
2470                                           WCoFunTy t1 t2 t3 ->
2471                                            (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t1))))))) (trace "X" ((\t1' ->
2472                                                                      (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t2))))))) (trace "X" ((\t2' ->
2473                                                                                                (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t3))))))) (trace "X" ((\t3' ->
2474                                                                                                                          (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" ([])))))))))))))))))))))))))))))))))))))))))
2475                                                                                                                                                    (trace "X" ((case (trace "X" (t1')) of {
2476                                                                                                                                                                  HaskTypeOfSomeKind k1' t1'0 ->
2477                                                                                                                                                                   (trace "X" (case (trace "X" (t2')) of {
2478                                                                                                                                                                                HaskTypeOfSomeKind k2' t2'0 ->
2479                                                                                                                                                                                 (trace "X" (case (trace "X" (t3')) of {
2480                                                                                                                                                                                              HaskTypeOfSomeKind k3' t3'0 ->
2481                                                                                                                                                                                               (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (k1')) (trace "X" (k2'))))))} in
2482                                                                                                                                                                                                           (trace "X" (case (trace "X" (s)) of {
2483                                                                                                                                                                                                                        Prelude.True ->
2484                                                                                                                                                                                                                         (trace "X" ((trace "X" (eq_rect_r (trace "X" (k2')) (trace "X" ((\t1'1 ->
2485                                                                                                                                                                                                                                                   (trace "X" (let {s0 = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (k3')) (trace "X" (KindStar))))))} in
2486                                                                                                                                                                                                                                                               (trace "X" (case (trace "X" (s0)) of {
2487                                                                                                                                                                                                                                                                            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))))));
2488                                                                                                                                                                                                                                                                            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))))));
2489                                                                                                                                                                                                                        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'))))))))))))))}))))}))}))}))))))))))))))))))))))))))));
2490                                           WForAllTy wtv t0 ->
2491                                            (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" ((up__U03c6_ (trace "X" (__U0393_0)) (trace "X" (wtv)) (trace "X" (__U03c6_0))))))) (trace "X" (t0))))))) (trace "X" ((\t1 ->
2492                                                                      (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" ([]))))))))))))))))))))))))))))))))))))))))))))
2493                                                                                                (trace "X" ((case (trace "X" (t1)) of {
2494                                                                                                              HaskTypeOfSomeKind __U03ba_ h ->
2495                                                                                                               (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (KindStar)) (trace "X" (__U03ba_))))))} in
2496                                                                                                                           (trace "X" (case (trace "X" (s)) of {
2497                                                                                                                                        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))))));
2498                                                                                                                                        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_))))))))))))))}))))}))))))))))))));
2499                                           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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2500                                           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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))})))))))
2501
2502 weakTypeToType' :: TyCon.TyCon -> DataCon -> TypeEnv -> (IList Kind HaskType) -> WeakType -> OrError HaskType
2503 weakTypeToType' tc dc __U0393_0 avars ct =
2504   (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" ([])))))))))))))))))))))))))))))))))))))))))))))))
2505                             (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
2506                                          (trace "X" (let {q = (trace "X" ((trace "X" (subst__U03c6_ (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
2507                                                      (trace "X" (let {__U03c6_' = (trace "X" ((trace "X" (up__U03c6_' (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
2508                                                                  (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_')) (trace "X" (ct))))))} in
2509                                                                              (trace "X" (case (trace "X" (t)) of {
2510                                                                                           Error error_message -> (trace "X" (Error (trace "X" (error_message))));
2511                                                                                           OK t0 ->
2512                                                                                            (trace "X" (case (trace "X" (t0)) of {
2513                                                                                                         HaskTypeOfSomeKind tk t1 ->
2514                                                                                                          (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (tk)) (trace "X" (KindStar))))))} in
2515                                                                                                                      (trace "X" (case (trace "X" (s)) of {
2516                                                                                                                                   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))))));
2517                                                                                                                                   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))))))))))))))}))))}))})))))))))))))))
2518
2519 mkStrongAltCon :: TyCon.TyCon -> DataCon -> StrongAltCon
2520 mkStrongAltCon tc dc =
2521   (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 ->
2522     (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 ->
2523                               (trace "X" (case (trace "X" (x)) of {
2524                                            (,) w w0 ->
2525                                             (trace "X" (let {q = (trace "X" ((trace "X" (weakTypeToType' (trace "X" (tc)) (trace "X" (dc)) (trace "X" (__U0393_0))))))} in
2526                                                         (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
2527                                                                     (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
2528                                                                                 (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 {
2529                                                                                              Error s -> (trace "X" ((trace "X" (Prelude.error (trace "X" (s))))));
2530                                                                                              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 ->
2531     (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 ->
2532                               (trace "X" (let {q = (trace "X" ((trace "X" (weakTypeToType' (trace "X" (tc)) (trace "X" (dc)) (trace "X" (__U0393_0))))))} in
2533                                           (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
2534                                                       (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
2535                                                                   (trace "X" (let {y = (trace "X" ((trace "X" (q1 (trace "X" (avars)) (trace "X" (x))))))} in
2536                                                                               (trace "X" (case (trace "X" (y)) of {
2537                                                                                            Error s -> (trace "X" ((trace "X" (Prelude.error (trace "X" (s))))));
2538                                                                                            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))))))))))))))))))))))))))
2539
2540 weakCV' :: TypeEnv -> CoercionEnv -> (([]) Kind) -> HaskCoVar -> (InstantiatedTypeEnv a1) -> (InstantiatedCoercionEnv a1 a2) -> a2
2541 weakCV' __U0393_0 __U0394_0 __U0393_' x env cenv =
2542   (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))))))))))))))))
2543
2544 mkStrongAltConPlusJunk :: TyCon.TyCon -> DataCon -> StrongAltConPlusJunk
2545 mkStrongAltConPlusJunk tc dc =
2546   (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))))))))))))))))))))))))))))
2547
2548 mkStrongAltConPlusJunk' :: TyCon.TyCon -> WeakAltCon -> OrError StrongAltConPlusJunk
2549 mkStrongAltConPlusJunk' tc alt =
2550   (trace "X" (case (trace "X" (alt)) of {
2551                WeakDataAlt c ->
2552                 (trace "X" (let {tc' = (trace "X" ((trace "X" (DataCon.dataConTyCon (trace "X" (c))))))} in
2553                             (trace "X" (let {eqpf = (trace "X" ((trace "X" (eqd_dec (trace "X" (tyConEqDecidable)) (trace "X" (tc)) (trace "X" (tc'))))))} in
2554                                         (trace "X" (case (trace "X" (eqpf)) of {
2555                                                      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))))));
2556                                                      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)))))))))))))))))))}))))));
2557                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)))))))))))))))))))}))
2558
2559 weakExprVarToWeakType :: WeakExprVar0 -> WeakType
2560 weakExprVarToWeakType wev =
2561   (trace "X" (case (trace "X" (wev)) of {
2562                WeakExprVar c t -> (trace "X" (t))}))
2563
2564 weak__U03c8_ :: TypeEnv -> CoercionEnv -> HaskCoercionKind -> (WeakCoerVar0 -> OrError HaskCoVar) -> WeakCoerVar0 -> OrError HaskCoVar
2565 weak__U03c8_ __U0393_0 __U0394_0 __U03ba_ __U03c8_0 x =
2566   (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((__U03c8_0 (trace "X" (x))))))) (trace "X" ((\x0 -> (trace "X" (OK (trace "X" ((\_ _ env cenv ->
2567                             (trace "X" (case (trace "X" (cenv)) of {
2568                                          Vec_nil -> (trace "X" (false_rect));
2569                                          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))))))}))))))))))))))
2570
2571 castExpr :: WeakExpr -> Prelude.String -> TypeEnv -> CoercionEnv -> (Var.Var -> LeveledHaskType) -> LeveledHaskType -> LeveledHaskType -> (Expr Var.Var) -> OrError (Expr Var.Var)
2572 castExpr we err_msg __U0393_0 __U0394_0 __U03be_0 __U03c4_ __U03c4_' e =
2573   (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)))))))
2574                             (trace "X" ((case (trace "X" (__U03c4_)) of {
2575                                           MkLeveledHaskType __U03c4_0 l ->
2576                                            (trace "X" (case (trace "X" (__U03c4_')) of {
2577                                                         MkLeveledHaskType __U03c4_'0 l' ->
2578                                                          (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
2579                                                                      (trace "X" (case (trace "X" (s)) of {
2580                                                                                   Prelude.True ->
2581                                                                                    (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
2582                                                                                                (trace "X" (case (trace "X" (s0)) of {
2583                                                                                                             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))))));
2584                                                                                                             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))))))))))))))}))));
2585                                                                                   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" ([]))))))))))))))}))))}))})))))))
2586
2587 coVarKind :: WeakCoerVar0 -> Kind
2588 coVarKind wcv =
2589   (trace "X" (case (trace "X" (wcv)) of {
2590                WeakCoerVar c t w -> (trace "X" ((trace "X" ((coreKindToKind . Coercion.typeKind) (trace "X" ((trace "X" ((weakTypeToCoreType (trace "X" (t)))))))))))}))
2591
2592 weakTypeToTypeOfKind :: TypeEnv -> TyVarResolver -> WeakType -> Kind -> OrError HaskType
2593 weakTypeToTypeOfKind __U0393_0 __U03c6_0 t __U03ba_ =
2594   (trace "X" (let {wt = (trace "X" ((trace "X" (weakTypeToType (trace "X" (__U0393_0)) (trace "X" (__U03c6_0)) (trace "X" (t))))))} in
2595               (trace "X" (case (trace "X" (wt)) of {
2596                            Error error_message -> (trace "X" (Error (trace "X" (error_message))));
2597                            OK h ->
2598                             (trace "X" (case (trace "X" (h)) of {
2599                                          HaskTypeOfSomeKind __U03ba_0 h0 ->
2600                                           (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (kindEqDecidable)) (trace "X" (__U03ba_)) (trace "X" (__U03ba_0))))))} in
2601                                                       (trace "X" (case (trace "X" (s)) of {
2602                                                                    Prelude.True -> (trace "X" ((trace "X" (eq_rect_r (trace "X" (__U03ba_0)) (trace "X" ((OK (trace "X" (h0))))) (trace "X" (__U03ba_))))));
2603                                                                    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))))))))))))))}))))}))}))))
2604
2605 varsTypes :: TypeEnv -> (Tree (Prelude.Maybe ((,) WeakExprVar0 WeakExpr))) -> TyVarResolver -> Tree (Prelude.Maybe ((,) Var.Var HaskType))
2606 varsTypes __U0393_0 t __U03c6_0 =
2607   (trace "X" (case (trace "X" (t)) of {
2608                T_Leaf o ->
2609                 (trace "X" (case (trace "X" (o)) of {
2610                              Prelude.Just p ->
2611                               (trace "X" (case (trace "X" (p)) of {
2612                                            (,) wev e ->
2613                                             (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 {
2614                                                          Error error_message -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
2615                                                          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'))))))))))}))}));
2616                              Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
2617                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)))))))))}))
2618
2619 mkAvars :: TypeEnv -> (([]) WeakType) -> (([]) Kind) -> TyVarResolver -> OrError (IList Kind HaskType)
2620 mkAvars __U0393_0 wtl lk __U03c6_0 =
2621   (trace "X" (case (trace "X" (lk)) of {
2622                ([]) ->
2623                 (trace "X" (case (trace "X" (wtl)) of {
2624                              ([]) -> (trace "X" (OK (trace "X" (INil))));
2625                              (:) 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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
2626                (:) k lk' ->
2627                 (trace "X" (case (trace "X" (wtl)) of {
2628                              ([]) -> (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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2629                              (:) 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)))))))))))))))))))))}))}))
2630
2631 update_ig :: (Var.Var -> Prelude.Bool) -> (([]) Var.Var) -> Var.Var -> Prelude.Bool
2632 update_ig ig vars =
2633   (trace "X" (case (trace "X" (vars)) of {
2634                ([]) -> (trace "X" (ig));
2635                (:) v vars' -> (trace "X" ((\v' ->
2636                 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (coreVarEqDecidable)) (trace "X" (v)) (trace "X" (v')))))) of {
2637                              Prelude.True -> (trace "X" (Prelude.False));
2638                              Prelude.False -> (trace "X" ((trace "X" (update_ig (trace "X" (ig)) (trace "X" (vars')) (trace "X" (v'))))))})))))}))
2639
2640 doesWeakVarOccur :: WeakExprVar0 -> WeakExpr -> Prelude.Bool
2641 doesWeakVarOccur wev me =
2642   (trace "X" (case (trace "X" (me)) of {
2643                WEVar cv ->
2644                 (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 {
2645                              Prelude.True -> (trace "X" (Prelude.True));
2646                              Prelude.False -> (trace "X" (Prelude.False))}));
2647                WELit h -> (trace "X" (Prelude.False));
2648                WELet cv e1 e2 ->
2649                 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e1)))))) of {
2650                              Prelude.True -> (trace "X" (Prelude.True));
2651                              Prelude.False ->
2652                               (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 {
2653                                            Prelude.True -> (trace "X" (Prelude.False));
2654                                            Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e2))))))}))}));
2655                WELetRec mlr e ->
2656                 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e)))))) of {
2657                              Prelude.True -> (trace "X" (Prelude.True));
2658                              Prelude.False ->
2659                               (trace "X" ((trace "X" (let {
2660                                                        doesWeakVarOccurLetRec mlr0 =
2661                                                          (trace "X" (case (trace "X" (mlr0)) of {
2662                                                                       T_Leaf o ->
2663                                                                        (trace "X" (case (trace "X" (o)) of {
2664                                                                                     Prelude.Just p ->
2665                                                                                      (trace "X" (case (trace "X" (p)) of {
2666                                                                                                   (,) cv e0 ->
2667                                                                                                    (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 {
2668                                                                                                                 Prelude.True -> (trace "X" (Prelude.False));
2669                                                                                                                 Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e0))))))}))}));
2670                                                                                     Prelude.Nothing -> (trace "X" (Prelude.False))}));
2671                                                                       T_Branch b1 b2 ->
2672                                                                        (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccurLetRec (trace "X" (b1)))))) of {
2673                                                                                     Prelude.True -> (trace "X" (Prelude.True));
2674                                                                                     Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccurLetRec (trace "X" (b2))))))}))}))}
2675                                                       in doesWeakVarOccurLetRec (trace "X" (mlr))))))}));
2676                WECast e co -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2677                WENote n e -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2678                WEApp e1 e2 ->
2679                 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e1)))))) of {
2680                              Prelude.True -> (trace "X" (Prelude.True));
2681                              Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e2))))))}));
2682                WETyApp e t -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2683                WECoApp e co -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2684                WELam cv e ->
2685                 (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 {
2686                              Prelude.True -> (trace "X" (Prelude.False));
2687                              Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))))}));
2688                WETyLam cv e -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2689                WECoLam cv e -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2690                WEBrak w ec e w0 -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2691                WEEsc w ec e w0 -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2692                WECSP w ec e w0 -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))));
2693                WECase vscrut escrut tbranches tc avars alts ->
2694                 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (escrut)))))) of {
2695                              Prelude.True -> (trace "X" (Prelude.True));
2696                              Prelude.False ->
2697                               (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 {
2698                                            Prelude.True -> (trace "X" (Prelude.False));
2699                                            Prelude.False ->
2700                                             (trace "X" ((trace "X" (let {
2701                                                                      doesWeakVarOccurAlts0 alts0 =
2702                                                                        (trace "X" (case (trace "X" (alts0)) of {
2703                                                                                     T_Leaf y ->
2704                                                                                      (trace "X" (case (trace "X" (y)) of {
2705                                                                                                   Prelude.Just y0 -> (trace "X" (case (trace "X" (y0)) of {
2706                                                                                                                                   (,) y1 e -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))))}));
2707                                                                                                   Prelude.Nothing -> (trace "X" (Prelude.False))}));
2708                                                                                     T_Branch b1 b2 ->
2709                                                                                      (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccurAlts0 (trace "X" (b1)))))) of {
2710                                                                                                   Prelude.True -> (trace "X" (Prelude.True));
2711                                                                                                   Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccurAlts0 (trace "X" (b2))))))}))}))}
2712                                                                     in doesWeakVarOccurAlts0 (trace "X" (alts))))))}))}))}))
2713
2714 doesWeakVarOccurAlts :: WeakExprVar0 -> (Tree (Prelude.Maybe ((,) ((,) ((,) ((,) WeakAltCon (([]) WeakTypeVar0)) (([]) WeakCoerVar0)) (([]) WeakExprVar0)) WeakExpr))) -> Prelude.Bool
2715 doesWeakVarOccurAlts wev alts =
2716   (trace "X" (case (trace "X" (alts)) of {
2717                T_Leaf o ->
2718                 (trace "X" (case (trace "X" (o)) of {
2719                              Prelude.Just p -> (trace "X" (case (trace "X" (p)) of {
2720                                                             (,) p0 e -> (trace "X" ((trace "X" (doesWeakVarOccur (trace "X" (wev)) (trace "X" (e))))))}));
2721                              Prelude.Nothing -> (trace "X" (Prelude.False))}));
2722                T_Branch b1 b2 ->
2723                 (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccurAlts (trace "X" (wev)) (trace "X" (b1)))))) of {
2724                              Prelude.True -> (trace "X" (Prelude.True));
2725                              Prelude.False -> (trace "X" ((trace "X" (doesWeakVarOccurAlts (trace "X" (wev)) (trace "X" (b2))))))}))}))
2726
2727 checkDistinct :: (EqDecidable a1) -> (([]) a1) -> OrError ()
2728 checkDistinct eQ lv =
2729   (trace "X" (let {q = (trace "X" ((trace "X" (distinct_decidable (trace "X" (eQ)) (trace "X" (lv))))))} in
2730               (trace "X" (case (trace "X" (q)) of {
2731                            Prelude.True -> (trace "X" (OK (trace "X" (__))));
2732                            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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))))
2733
2734 mkGlobal :: TypeEnv -> HaskType -> WeakExprVar0 -> Global
2735 mkGlobal __U0393_0 __U03c4_ wev =
2736   (trace "X" (Build_Global (trace "X" (wev)) (trace "X" (([]))) (trace "X" ((\x -> (trace "X" (__U03c4_)))))))
2737
2738 weakExprToStrongExpr :: TypeEnv -> CoercionEnv -> TyVarResolver -> CoVarResolver -> (Var.Var -> LeveledHaskType) -> (Var.Var -> Prelude.Bool) -> HaskType -> HaskLevel -> WeakExpr -> OrError (Expr Var.Var)
2739 weakExprToStrongExpr __U0393_0 __U0394_0 __U03c6_0 __U03c8_0 __U03be_0 ig __U03c4_ lev we =
2740   (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))))))))))))
2741                             (trace "X" ((case (trace "X" (we)) of {
2742                                           WEVar v ->
2743                                            (trace "X" (case (trace "X" ((trace "X" (ig (trace "X" ((trace "X" ((weakVarToCoreVar (trace "X" ((WExprVar (trace "X" (v)))))))))))))) of {
2744                                                         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)))))));
2745                                                         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)))))))))))))))))}));
2746                                           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)))))))));
2747                                           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___U03be_ (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'))))))))))))))))))))))))))));
2748                                           WELetRec rb e ->
2749                                            (trace "X" (let {__U03be_' = (trace "X" ((trace "X" (update___U03be_ (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
2750                                                        (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
2751                                                                    (trace "X" (let {
2752                                                                                 binds = (trace "X" ((trace "X" (let {
2753                                                                                                                  binds t =
2754                                                                                                                    (trace "X" (case (trace "X" (t)) of {
2755                                                                                                                                 T_Leaf o ->
2756                                                                                                                                  (trace "X" (case (trace "X" (o)) of {
2757                                                                                                                                               Prelude.Just p ->
2758                                                                                                                                                (trace "X" (case (trace "X" (p)) of {
2759                                                                                                                                                             (,) wev e0 ->
2760                                                                                                                                                              (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" ([])))))))))))))))))))))))))))))
2761                                                                                                                                                                                        (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
2762                                                                                                                                                                                                     (trace "X" (case (trace "X" (o0)) of {
2763                                                                                                                                                                                                                  Error error_message -> (trace "X" (Error (trace "X" (error_message))));
2764                                                                                                                                                                                                                  OK h ->
2765                                                                                                                                                                                                                   (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
2766                                                                                                                                                                                                                               (trace "X" (case (trace "X" (s)) of {
2767                                                                                                                                                                                                                                            Prelude.True ->
2768                                                                                                                                                                                                                                             (trace "X" (case (trace "X" (wev)) of {
2769                                                                                                                                                                                                                                                          WeakExprVar c w ->
2770                                                                                                                                                                                                                                                           (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)))))))))))))))))))))))))
2771                                                                                                                                                                                                                                                                                     (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
2772                                                                                                                                                                                                                                                                                                  (trace "X" (case (trace "X" (e'')) of {
2773                                                                                                                                                                                                                                                                                                               Error error_message -> (trace "X" (Error (trace "X" (error_message))));
2774                                                                                                                                                                                                                                                                                                               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))))))}));
2775                                                                                                                                                                                                                                            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))))))))))))))))))))))))))))))))))}))))})))))))))}));
2776                                                                                                                                               Prelude.Nothing -> (trace "X" (OK (trace "X" ((ELR_nil (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_')) (trace "X" (lev)))))))}));
2777                                                                                                                                 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')))))))))))))))))))))}))}
2778                                                                                                                 in binds (trace "X" (rb))))))}
2779                                                                                in
2780                                                                                (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'))))))))))))))))))))))))))))))))));
2781                                           WECast e co -> (trace "X" (case (trace "X" ((trace "X" (weakCoercionTypes (trace "X" (co)))))) of {
2782                                                                       (,) 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'))))))))))))))))))))))))))))))}));
2783                                           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'))))))))))))));
2784                                           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')))))))))))))))))))))))))))))))))));
2785                                           WETyApp e t ->
2786                                            (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (e))))))) (trace "X" ((\te ->
2787                                                                      (trace "X" (case (trace "X" (te)) of {
2788                                                                                   WForAllTy wtv te' -> (trace "X" (let {__U03c6_' = (trace "X" ((trace "X" (up__U03c6_ (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_')) (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'))))))))))))))))))))))))))))))));
2789                                                                                   _ -> (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))))))))))))))})))))))));
2790                                           WECoApp e co ->
2791                                            (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (e))))))) (trace "X" ((\te ->
2792                                                                      (trace "X" (case (trace "X" (te)) of {
2793                                                                                   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 {
2794                                                                                                                                                                                                                                                                                            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'')))))))))))))))))))))))))))))))))))})))))))));
2795                                                                                   _ -> (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))))))))))))))})))))))));
2796                                           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___U03be_ (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')))))))))))))))))))))))))))))))))))))))));
2797                                           WETyLam tv e -> (trace "X" (let {__U03c6_' = (trace "X" ((trace "X" (up__U03c6_ (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_')) (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_')) (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'))))))))))))))))))))))))))))))));
2798                                           WECoLam cv e -> (trace "X" (case (trace "X" (cv)) of {
2799                                                                        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" ((weak__U03c8_ (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'))))))))))))))))))))))))))))))))))))))))))))}));
2800                                           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'))))))))))))))))))))))))))))));
2801                                           WEEsc w ec e tbody ->
2802                                            (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((__U03c6_0 (trace "X" (ec))))))) (trace "X" ((\ec'' ->
2803                                                                      (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' ->
2804                                                                                                (trace "X" (case (trace "X" (lev)) of {
2805                                                                                                             ([]) -> (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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2806                                                                                                             (:) 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'))))))))))))))))}))))))))))))))));
2807                                           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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2808                                           WECase vscrut escrut tbranches tc avars alts ->
2809                                            (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((weakTypeOfWeakExpr (trace "X" (escrut))))))) (trace "X" ((\tscrut ->
2810                                                                      (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' ->
2811                                                                                                (trace "X" (case (trace "X" ((trace "X" (doesWeakVarOccurAlts (trace "X" (vscrut)) (trace "X" (alts)))))) of {
2812                                                                                                             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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
2813                                                                                                             Prelude.False ->
2814                                                                                                              (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' ->
2815                                                                                                                                        (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' ->
2816                                                                                                                                                                  (trace "X" ((trace "X" (orErrorBind
2817                                                                                                                                                                                            (trace "X" ((trace "X" ((let {
2818                                                                                                                                                                                                                      mkTree t =
2819                                                                                                                                                                                                                        (trace "X" (case (trace "X" (t)) of {
2820                                                                                                                                                                                                                                     T_Leaf o ->
2821                                                                                                                                                                                                                                      (trace "X" (case (trace "X" (o)) of {
2822                                                                                                                                                                                                                                                   Prelude.Just p ->
2823                                                                                                                                                                                                                                                    (trace "X" (case (trace "X" (p)) of {
2824                                                                                                                                                                                                                                                                 (,) p0 ebranch ->
2825                                                                                                                                                                                                                                                                  (trace "X" (case (trace "X" (p0)) of {
2826                                                                                                                                                                                                                                                                               (,) p1 exprvars ->
2827                                                                                                                                                                                                                                                                                (trace "X" (case (trace "X" (p1)) of {
2828                                                                                                                                                                                                                                                                                             (,) p2 coervars ->
2829                                                                                                                                                                                                                                                                                              (trace "X" (case (trace "X" (p2)) of {
2830                                                                                                                                                                                                                                                                                                           (,) ac extyvars ->
2831                                                                                                                                                                                                                                                                                                            (trace "X" ((trace "X" (orErrorBind (trace "X" ((trace "X" ((mkStrongAltConPlusJunk' (trace "X" (tc)) (trace "X" (ac))))))) (trace "X" ((\sac ->
2832                                                                                                                                                                                                                                                                                                                                      (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' ->
2833                                                                                                                                                                                                                                                                                                                                                                (trace "X" ((trace "X" (orErrorBind
2834                                                                                                                                                                                                                                                                                                                                                                                          (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
2835                                                                                                                                                                                                                                                                                                                                                                                                       (trace "X" (case (trace "X" (dec)) of {
2836                                                                                                                                                                                                                                                                                                                                                                                                                    Prelude.True -> (trace "X" (OK (trace "X" (__))));
2837                                                                                                                                                                                                                                                                                                                                                                                                                    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___U0393_ (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___U0394_ (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___U03c6_ (trace "X" ((Prelude.error "Proj Args"))) (trace "X" (sac)) (trace "X" (__U0393_0)) (trace "X" (__U03c6_0))))))) (trace "X" ((trace "X" ((sacpj___U03c8_ (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___U03be_ (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'))))))))))))))))))))))))))))))))))))))))))))}))}))}))}));
2838                                                                                                                                                                                                                                                   Prelude.Nothing -> (trace "X" (OK (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))}));
2839                                                                                                                                                                                                                                     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')))))))))))))))))))))}))}
2840                                                                                                                                                                                                                     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)))))))))))))))))))))))))))))))))))))}))))))))))))))))})))))))
2841
2842 pivotContext :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> Arrange a1
2843 pivotContext a b c =
2844   (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)))))))
2845
2846 copyAndPivotContext :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> Arrange a1
2847 copyAndPivotContext a b c =
2848   (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))))))))))
2849
2850 dropVar :: (EqDecidable a1) -> (([]) a1) -> a1 -> Prelude.Maybe a1
2851 dropVar eqd_vv lv v =
2852   (trace "X" (case (trace "X" (lv)) of {
2853                ([]) -> (trace "X" (Prelude.Just (trace "X" (v))));
2854                (:) v' lv' ->
2855                 (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
2856                              Prelude.True -> (trace "X" (Prelude.Nothing));
2857                              Prelude.False -> (trace "X" ((trace "X" (dropVar (trace "X" (eqd_vv)) (trace "X" (lv')) (trace "X" (v))))))}))}))
2858
2859 mapOptionTree' :: (a1 -> Prelude.Maybe a2) -> (Tree (Prelude.Maybe a1)) -> Tree (Prelude.Maybe a2)
2860 mapOptionTree' f t =
2861   (trace "X" (case (trace "X" (t)) of {
2862                T_Leaf o ->
2863                 (trace "X" (case (trace "X" (o)) of {
2864                              Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((trace "X" ((f (trace "X" (x)))))))));
2865                              Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
2866                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)))))))))}))
2867
2868 stripOutVars :: (EqDecidable a1) -> (([]) a1) -> (Tree (Prelude.Maybe a1)) -> Tree (Prelude.Maybe a1)
2869 stripOutVars eqd_vv lv =
2870   (trace "X" ((trace "X" (mapOptionTree' (trace "X" ((trace "X" ((dropVar (trace "X" (eqd_vv)) (trace "X" (lv)))))))))))
2871
2872 expr2antecedent :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> LeveledHaskType -> (Expr a1) -> Tree (Prelude.Maybe a1)
2873 expr2antecedent eqd_vv =
2874   (trace "X" (let {
2875                expr2antecedent0 __U0393_' __U0394_' __U03be_' __U03c4_' exp =
2876                  (trace "X" (case (trace "X" (exp)) of {
2877                               EVar __U0393_0 __U0394_0 __U03be_0 ev -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" (ev)))))));
2878                               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" (t2)) (trace "X" (lev))))) (trace "X" (e2))))))) (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)))))))));
2879                               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___U03be_ (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)))))))))));
2880                               ELet __U0393_0 __U0394_0 __U03be_0 tv t lev v ev ebody -> (trace "X" (T_Branch (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___U03be_ (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)))))))))))) (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)))))))));
2881                               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))))));
2882                               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))))));
2883                               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))))));
2884                               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))))));
2885                               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))))));
2886                               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))))));
2887                               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))))));
2888                               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))))));
2889                               ECase __U0393_0 __U0394_0 __U03be_0 l tc tbranches atypes e' alts -> (trace "X" (T_Branch
2890                                (trace "X" ((trace "X" ((let {
2891                                                          varsfromalts alts0 =
2892                                                            (trace "X" (case (trace "X" (alts0)) of {
2893                                                                         T_Leaf o ->
2894                                                                          (trace "X" (case (trace "X" (o)) of {
2895                                                                                       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___U0393_ (trace "X" (tc)) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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)))))))))))))))))))));
2896                                                                                       Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
2897                                                                         T_Branch b1 b2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((varsfromalts (trace "X" (b1))))))) (trace "X" ((trace "X" ((varsfromalts (trace "X" (b2)))))))))}))}
2898                                                         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')))))))));
2899                               ELetRec __U0393_0 __U0394_0 __U03be_0 l __U03c4_ vars x x0 -> (trace "X" (let {__U03be_'0 = (trace "X" ((trace "X" (update___U03be_ (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" ((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))))))) (trace "X" (branch_context))))} 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))))))))))));
2900                               _ -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
2901                eLetRecContext0 __U0393_0 __U0394_0 __U03be_0 lev tree elrb =
2902                  (trace "X" (case (trace "X" (elrb)) of {
2903                               ELR_nil __U0393_1 __U0394_1 __U03be_1 lev0 -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
2904                               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))))));
2905                               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)))))))))}))}
2906               in expr2antecedent0))
2907
2908 eLetRecContext :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> HaskLevel -> (Tree (Prelude.Maybe ((,) a1 HaskType))) -> (ELetRecBindings a1) -> Tree (Prelude.Maybe a1)
2909 eLetRecContext eqd_vv =
2910   (trace "X" (let {
2911                expr2antecedent0 __U0393_' __U0394_' __U03be_' __U03c4_' exp =
2912                  (trace "X" (case (trace "X" (exp)) of {
2913                               EGlobal __U0393_0 __U0394_0 __U03be_0 g v lev -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
2914                               EVar __U0393_0 __U0394_0 __U03be_0 ev -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" (ev)))))));
2915                               ELit __U0393_0 __U0394_0 __U03be_0 lit lev -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
2916                               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" (t2)) (trace "X" (lev))))) (trace "X" (e2))))))) (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)))))))));
2917                               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___U03be_ (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)))))))))));
2918                               ELet __U0393_0 __U0394_0 __U03be_0 tv t lev v ev ebody -> (trace "X" (T_Branch (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___U03be_ (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)))))))))))) (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)))))))));
2919                               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))))));
2920                               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))))));
2921                               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))))));
2922                               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))))));
2923                               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))))));
2924                               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))))));
2925                               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))))));
2926                               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))))));
2927                               ECase __U0393_0 __U0394_0 __U03be_0 l tc tbranches atypes e' alts -> (trace "X" (T_Branch
2928                                (trace "X" ((trace "X" ((let {
2929                                                          varsfromalts alts0 =
2930                                                            (trace "X" (case (trace "X" (alts0)) of {
2931                                                                         T_Leaf o ->
2932                                                                          (trace "X" (case (trace "X" (o)) of {
2933                                                                                       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___U0393_ (trace "X" (tc)) (trace "X" ((trace "X" ((projT1 (trace "X" (h))))))) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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)))))))))))))))))))));
2934                                                                                       Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
2935                                                                         T_Branch b1 b2 -> (trace "X" (T_Branch (trace "X" ((trace "X" ((varsfromalts (trace "X" (b1))))))) (trace "X" ((trace "X" ((varsfromalts (trace "X" (b2)))))))))}))}
2936                                                         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')))))))));
2937                               ELetRec __U0393_0 __U0394_0 __U03be_0 l __U03c4_ vars x x0 -> (trace "X" (let {__U03be_'0 = (trace "X" ((trace "X" (update___U03be_ (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" ((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))))))) (trace "X" (branch_context))))} 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))))))))))))}));
2938                eLetRecContext0 __U0393_0 __U0394_0 __U03be_0 lev tree elrb =
2939                  (trace "X" (case (trace "X" (elrb)) of {
2940                               ELR_nil __U0393_1 __U0394_1 __U03be_1 lev0 -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
2941                               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))))));
2942                               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)))))))))}))}
2943               in eLetRecContext0))
2944
2945 mkProofCaseBranch :: (EqDecidable a1) -> (([]) Kind) -> (([]) HaskCoercionKind) -> (a1 -> LeveledHaskType) -> HaskLevel -> TyCon.TyCon -> HaskType -> (IList Kind HaskType) -> (SigT StrongAltCon (SigT (StrongCaseBranchWithVVs a1) (Expr a1))) -> SigT StrongAltCon ProofCaseBranch
2946 mkProofCaseBranch eqd_vv __U0393_0 __U0394_0 __U03be_0 l tc tbranches atypes alt =
2947   (trace "X" (case (trace "X" (alt)) of {
2948                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___U0393_ (trace "X" (tc)) (trace "X" (x)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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))))))))))))))))))))))))}))
2949
2950 arrangeContext :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> a1 -> (Tree (Prelude.Maybe a1)) -> (a1 -> LeveledHaskType) -> Prelude.Either (Arrange LeveledHaskType) (Arrange LeveledHaskType)
2951 arrangeContext eqd_vv __U0393_0 __U0394_0 v ctx __U03be_0 =
2952   (trace "X" ((trace "X" (tree_rect (trace "X" ((\a ->
2953                             (trace "X" (case (trace "X" (a)) of {
2954                                          Prelude.Just v' ->
2955                                           (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v')) (trace "X" (v))))))} in
2956                                                       (trace "X" (case (trace "X" (s)) of {
2957                                                                    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'))))));
2958                                                                    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'))))))))))))))))))}))));
2959                                          Prelude.Nothing -> (trace "X" (Prelude.Left (trace "X" ((RuCanR (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))}))))) (trace "X" ((\ctx1 iHctx1 ctx2 iHctx2 ->
2960                             (trace "X" (case (trace "X" (iHctx1)) of {
2961                                          Prelude.Left lpf ->
2962                                           (trace "X" (case (trace "X" (iHctx2)) of {
2963                                                        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)))))))))))))))))))))));
2964                                                        Prelude.Right rpf -> (trace "X" (Prelude.Right
2965                                                         (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
2966                                                                      (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
2967                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
2968                                                                                                (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
2969                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
2970                                                                                                                                       Prelude.True -> (trace "X" (Prelude.Nothing));
2971                                                                                                                                       Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
2972                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
2973                                                                                                (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
2974                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
2975                                                                                                                                       Prelude.True -> (trace "X" (Prelude.Nothing));
2976                                                                                                                                       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
2977                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
2978                                                                                                (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
2979                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
2980                                                                                                                                       Prelude.True -> (trace "X" (Prelude.Nothing));
2981                                                                                                                                       Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" ((T_Branch
2982                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
2983                                                                                                (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
2984                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
2985                                                                                                                                       Prelude.True -> (trace "X" (Prelude.Nothing));
2986                                                                                                                                       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
2987                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
2988                                                                                                (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
2989                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
2990                                                                                                                                       Prelude.True -> (trace "X" (Prelude.Nothing));
2991                                                                                                                                       Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
2992                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
2993                                                                                                (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
2994                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
2995                                                                                                                                       Prelude.True -> (trace "X" (Prelude.Nothing));
2996                                                                                                                                       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
2997                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
2998                                                                                                (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
2999                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3000                                                                                                                                       Prelude.True -> (trace "X" (Prelude.Nothing));
3001                                                                                                                                       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))))))))))))))))
3002                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3003                                                                                                (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3004                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3005                                                                                                                                       Prelude.True -> (trace "X" (Prelude.Nothing));
3006                                                                                                                                       Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1)))))))))))) (trace "X" (rpf))))) (trace "X" ((RAssoc
3007                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3008                                                                                                (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3009                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3010                                                                                                                                       Prelude.True -> (trace "X" (Prelude.Nothing));
3011                                                                                                                                       Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3012                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3013                                                                                                (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3014                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3015                                                                                                                                       Prelude.True -> (trace "X" (Prelude.Nothing));
3016                                                                                                                                       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))))))))))))))))))))))))))}));
3017                                          Prelude.Right lpf ->
3018                                           (trace "X" (case (trace "X" (iHctx2)) of {
3019                                                        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
3020                                                         (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3021                                                                                   (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3022                                                                                                             (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3023                                                                                                                          Prelude.True -> (trace "X" (Prelude.Nothing));
3024                                                                                                                          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))))))))))))))))
3025                                                         (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3026                                                                                   (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3027                                                                                                             (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3028                                                                                                                          Prelude.True -> (trace "X" (Prelude.Nothing));
3029                                                                                                                          Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))) (trace "X" ((T_Branch (trace "X" ((T_Branch
3030                                                         (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3031                                                                                   (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3032                                                                                                             (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3033                                                                                                                          Prelude.True -> (trace "X" (Prelude.Nothing));
3034                                                                                                                          Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3035                                                         (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3036                                                                                   (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3037                                                                                                             (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3038                                                                                                                          Prelude.True -> (trace "X" (Prelude.Nothing));
3039                                                                                                                          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))))))))))))))))
3040                                                         (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
3041                                                                      (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
3042                                                                                  (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
3043                                                                                  (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3044                                                                                                            (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3045                                                                                                                                      (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3046                                                                                                                                                   Prelude.True -> (trace "X" (Prelude.Nothing));
3047                                                                                                                                                   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))))))))))))))))
3048                                                                                  (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3049                                                                                                            (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3050                                                                                                                                      (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3051                                                                                                                                                   Prelude.True -> (trace "X" (Prelude.Nothing));
3052                                                                                                                                                   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)))))))))
3053                                                         (trace "X" ((trace "X" ((pivotContext
3054                                                                                   (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3055                                                                                                             (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3056                                                                                                                                       (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3057                                                                                                                                                    Prelude.True -> (trace "X" (Prelude.Nothing));
3058                                                                                                                                                    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)))))))))))))
3059                                                                                   (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3060                                                                                                             (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3061                                                                                                                                       (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3062                                                                                                                                                    Prelude.True -> (trace "X" (Prelude.Nothing));
3063                                                                                                                                                    Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx2))))))))))))))))))))));
3064                                                        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
3065                                                         (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3066                                                                                   (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3067                                                                                                             (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3068                                                                                                                          Prelude.True -> (trace "X" (Prelude.Nothing));
3069                                                                                                                          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
3070                                                         (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3071                                                                                   (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3072                                                                                                             (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3073                                                                                                                          Prelude.True -> (trace "X" (Prelude.Nothing));
3074                                                                                                                          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
3075                                                         (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3076                                                                                   (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3077                                                                                                             (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3078                                                                                                                          Prelude.True -> (trace "X" (Prelude.Nothing));
3079                                                                                                                          Prelude.False -> (trace "X" (Prelude.Just (trace "X" (v0))))}))))) (trace "X" (ctx1))))))))))))
3080                                                         (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3081                                                                                   (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3082                                                                                                             (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3083                                                                                                                          Prelude.True -> (trace "X" (Prelude.Nothing));
3084                                                                                                                          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))))))))
3085                                                         (trace "X" ((trace "X" ((copyAndPivotContext
3086                                                                                   (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3087                                                                                                             (trace "X" ((trace "X" ((mapOptionTree' (trace "X" ((\v0 ->
3088                                                                                                                                       (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v0)) (trace "X" (v)))))) of {
3089                                                                                                                                                    Prelude.True -> (trace "X" (Prelude.Nothing));
3090                                                                                                                                                    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)))))))))))))
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" (ctx2))))))))))))))))))))))}))}))))) (trace "X" (ctx))))))
3096
3097 arrangeContextAndWeaken :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> a1 -> (Tree (Prelude.Maybe a1)) -> (a1 -> LeveledHaskType) -> Arrange LeveledHaskType
3098 arrangeContextAndWeaken eqd_vv __U0393_0 __U0394_0 v ctx __U03be_0 =
3099   (trace "X" (let {q = (trace "X" ((trace "X" (arrangeContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (v)) (trace "X" (ctx)) (trace "X" (__U03be_0))))))} in
3100               (trace "X" (case (trace "X" (q)) of {
3101                            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)))))))))))))))))))));
3102                            Prelude.Right a -> (trace "X" (a))}))))
3103
3104 arrangeContextAndWeaken'' :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (Tree (Prelude.Maybe a1)) -> (a1 -> LeveledHaskType) -> (Tree (Prelude.Maybe a1)) -> Arrange LeveledHaskType
3105 arrangeContextAndWeaken'' eqd_vv __U0393_0 __U0394_0 v __U03be_0 ctx =
3106   (trace "X" ((trace "X" (tree_rect (trace "X" ((\a ctx0 _ ->
3107                             (trace "X" (case (trace "X" (a)) of {
3108                                          Prelude.Just v0 -> (trace "X" ((trace "X" (arrangeContextAndWeaken (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (v0)) (trace "X" (ctx0)) (trace "X" (__U03be_0))))));
3109                                          Prelude.Nothing ->
3110                                           (trace "X" ((trace "X" (eq_rect_r (trace "X" (ctx0)) (trace "X" ((RuCanR
3111                                                                     (trace "X" ((trace "X" ((let {
3112                                                                                               mapOptionTree0 f t =
3113                                                                                                 (trace "X" (case (trace "X" (t)) of {
3114                                                                                                              T_Leaf o ->
3115                                                                                                               (trace "X" (case (trace "X" (o)) of {
3116                                                                                                                            Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3117                                                                                                                            Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3118                                                                                                              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)))))))))}))}
3119                                                                                              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" (__))))))
3120
3121 data LetRecSubproofs vV =
3122    Lrsp_nil
3123  | Lrsp_leaf vV HaskType (Expr vV) (ND Judg Rule)
3124  | Lrsp_cons (Tree (Prelude.Maybe ((,) vV HaskType))) (Tree (Prelude.Maybe ((,) vV HaskType))) (ELetRecBindings vV) (ELetRecBindings vV) (LetRecSubproofs vV) (LetRecSubproofs vV)
3125
3126 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
3127 letRecSubproofs_rect eqd_vv __U0393_0 __U0394_0 __U03be_0 lev f f0 f1 tree e l =
3128   (trace "X" (case (trace "X" (l)) of {
3129                Lrsp_nil -> (trace "X" (f));
3130                Lrsp_leaf v t e0 n -> (trace "X" ((trace "X" (f0 (trace "X" (v)) (trace "X" (t)) (trace "X" (e0)) (trace "X" (n))))));
3131                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)))))))))))}))
3132
3133 letRecSubproofsToND :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> HaskLevel -> (Tree (Prelude.Maybe ((,) a1 HaskType))) -> (ELetRecBindings a1) -> (LetRecSubproofs a1) -> ND Judg Rule
3134 letRecSubproofsToND eqd_vv __U0393_0 __U0394_0 __U03be_0 lev tree branches x =
3135   (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" ((RVoid (trace "X" (__U0393_0)) (trace "X" (__U0394_0)))))))) (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" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1))))))))))))))))))))) (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" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t2)))))))))))))))))))))))) (trace "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" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1)))))))))))) (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" (t2)))))))))))))))))))))))) (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" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1))))))))))))))))))))) (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" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t2)))))))))))))))))))))))) (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" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1))))))))))))))))))))) (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" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t2))))))))))))))))))))) (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" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1))))))))))))))))))))) (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" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t2)))))))))))))))))))))))) (trace "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" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1)))))))))))) (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" (t2)))))))))))))))))))))))) (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" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (t1)))))))))))) (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" (t2))))))))))))))))))))))) (trace "X" (tree)) (trace "X" (branches)) (trace "X" (x))))))
3136
3137 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
3138 letRecSubproofsToND' eqd_vv __U0393_0 __U0394_0 __U03be_0 lev __U03c4_ tree branches body pf lrsp =
3139   (trace "X" (let {__U03be_' = (trace "X" ((trace "X" (update___U03be_ (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" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree)))))))))))))))))))))))) (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" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev)))))))))))))))))))) (trace "X" ((let {q' = (trace "X" (\_ -> (trace "X" ((trace "X" (arrangeContextAndWeaken'' (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" ((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))))))) (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))))))))))))))))} 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___U03be_ (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" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" (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" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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))))))))))))))))))))))))} in (trace "X" (let {q''1 = (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update___U03be_ (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___U03be_ (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___U03be_ (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___U03be_ (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" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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_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" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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" ((let {q = (trace "X" ((trace "X" (letRecSubproofsToND (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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___U03be_ (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___U03be_ (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" ((MkLeveledHaskType (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" ((trace "X" ((update___U03be_ (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___U03be_ (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" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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_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___U03be_ (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___U03be_ (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" ((trace "X" ((update___U03be_ (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___U03be_ (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" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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_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___U03be_ (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___U03be_ (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" ((MkLeveledHaskType (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" ((trace "X" ((update___U03be_ (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___U03be_ (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" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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_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" ((trace "X" ((update___U03be_ (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___U03be_ (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" ((MkLeveledHaskType (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" ((trace "X" ((update___U03be_ (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___U03be_ (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" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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" (pf)) (trace "X" ((trace "X" ((eq_rect_r (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" (q)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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_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___U03be_ (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___U03be_ (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" ((MkLeveledHaskType (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" ((trace "X" ((update___U03be_ (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___U03be_ (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" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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_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___U03be_ (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___U03be_ (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" ((trace "X" ((update___U03be_ (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___U03be_ (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" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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" ((RJoin (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update___U03be_ (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___U03be_ (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" ((trace "X" ((update___U03be_ (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___U03be_ (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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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_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___U03be_ (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" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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_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" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update___U03be_ (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" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((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" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((eLetRecContext (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((trace "X" ((update___U03be_ (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" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (lev))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x -> (trace "X" ((trace "X" (update___U03be_ (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" (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" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (lev))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (__U03c4_)))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" (snd)) (trace "X" (tree)))))))))))))))))))))))) (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" ((MkLeveledHaskType (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))))))))))))))))))
3140
3141 expr2proof :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> (a1 -> LeveledHaskType) -> LeveledHaskType -> (Expr a1) -> ND Judg Rule
3142 expr2proof eqd_vv __U0393_' __U0394_' __U03be_' __U03c4_' exp =
3143   (trace "X" (case (trace "X" (exp)) of {
3144                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" ((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)))))));
3145                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" ((__U03be_0 (trace "X" (ev)))))))))))))))))))))) (trace "X" ((let {l = (trace "X" ((trace "X" (__U03be_0 (trace "X" (ev))))))} in (trace "X" (case (trace "X" (l)) of {
3146                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              MkLeveledHaskType h h0 -> (trace "X" (RVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (h)) (trace "X" (h0))))})))))));
3147                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" ((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" (lev)))))));
3148                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" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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" ((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" ((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" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (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" ((MkLeveledHaskType (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" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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" ((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" ((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" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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" ((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" ((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" ((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" ((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" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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" ((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" ((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" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (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" ((MkLeveledHaskType (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" (t2)) (trace "X" (lev))))) (trace "X" (e2)))))))))))) (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" (t2)) (trace "X" (t1)) (trace "X" (lev))))))))));
3149                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
3150                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3151                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3152                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3153                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3154                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3155                                                                                                            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" ((MkLeveledHaskType (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))
3156                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3157                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3158                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3159                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3160                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3161                                                                                                            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" ((\_ 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))))))))))))))))))))
3162                 (trace "X" ((let {__U03be_'0 = (trace "X" ((trace "X" (update___U03be_ (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
3163                              (trace "X" (let {pfx = (trace "X" ((trace "X" (arrangeContextAndWeaken (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___U03be_ (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
3164                                          (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___U03be_ (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___U03be_ (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" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))))))))) (trace "X" (pfx))))} in
3165                                                      (trace "X" (let {
3166                                                                   pfx1 = (trace "X" ((trace "X" (eq_rect
3167                                                                                                    (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update___U03be_ (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" (([])))))))))))
3168                                                                                                                              (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3169                                                                                                                                                        (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3170                                                                                                                                                                                  (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3171                                                                                                                                                                                               Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3172                                                                                                                                                                                               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))
3173                                                                                                    (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3174                                                                                                                              (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3175                                                                                                                                                        (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3176                                                                                                                                                                                  (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3177                                                                                                                                                                                               Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3178                                                                                                                                                                                               Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev))))) (trace "X" (e)))))))))))))))))))))}
3179                                                                  in
3180                                                                  (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v))))))} in
3181                                                                              (trace "X" (case (trace "X" (s)) of {
3182                                                                                           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))
3183                                                                                            (trace "X" ((trace "X" ((let {
3184                                                                                                                      mapOptionTree0 f t =
3185                                                                                                                        (trace "X" (case (trace "X" (t)) of {
3186                                                                                                                                     T_Leaf o ->
3187                                                                                                                                      (trace "X" (case (trace "X" (o)) of {
3188                                                                                                                                                   Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3189                                                                                                                                                   Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3190                                                                                                                                     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)))))))))}))}
3191                                                                                                                     in mapOptionTree0 (trace "X" ((\v' ->
3192                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3193                                                                                                                                       Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3194                                                                                                                                       Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))})))))
3195                                                                                                                          (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3196                                                                                                                                                    (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3197                                                                                                                                                                 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3198                                                                                                                                                                 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" (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
3199                                                                                            (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3200                                                                                                                      (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3201                                                                                                                                                (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3202                                                                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3203                                                                                                                                                                                       Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3204                                                                                                                                                                                       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" ((MkLeveledHaskType (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___U03be_ (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))
3205                                                                                            (trace "X" ((trace "X" ((let {
3206                                                                                                                      mapOptionTree0 f t =
3207                                                                                                                        (trace "X" (case (trace "X" (t)) of {
3208                                                                                                                                     T_Leaf o ->
3209                                                                                                                                      (trace "X" (case (trace "X" (o)) of {
3210                                                                                                                                                   Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
3211                                                                                                                                                   Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3212                                                                                                                                     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)))))))))}))}
3213                                                                                                                     in mapOptionTree0 (trace "X" ((\v' ->
3214                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3215                                                                                                                                       Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3216                                                                                                                                       Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))})))))
3217                                                                                                                          (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3218                                                                                                                                                    (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3219                                                                                                                                                                 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3220                                                                                                                                                                 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" (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
3221                                                                                            (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3222                                                                                                                      (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3223                                                                                                                                                (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3224                                                                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3225                                                                                                                                                                                       Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3226                                                                                                                                                                                       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" ((MkLeveledHaskType (trace "X" (t2)) (trace "X" (lev)))))))))))))))))))) (trace "X" (pfx1)))))));
3227                                                                                           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
3228                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3229                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3230                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3231                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3232                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3233                                                                                                            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" ((MkLeveledHaskType (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))
3234                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3235                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3236                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3237                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3238                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3239                                                                                                            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" ((\_ 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))
3240                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3241                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (v)) (trace "X" (([]))))))
3242                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3243                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (v)) (trace "X" (v')))))) of {
3244                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (t1)) (trace "X" (lev))));
3245                                                                                                            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))))))))));
3246                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" ((MkLeveledHaskType (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
3247                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3248                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3249                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3250                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3251                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3252                                                                                                            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" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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
3253                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3254                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3255                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3256                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3257                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3258                                                                                                            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" ((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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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
3259                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3260                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3261                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3262                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3263                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3264                                                                                                            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" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))))))))))))))))))))) (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" (tv)) (trace "X" (v))))) (trace "X" (ev)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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
3265                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3266                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3267                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3268                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3269                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3270                                                                                                            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" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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))
3271                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\v' ->
3272                                           (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3273                                                        Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3274                                                        Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))})))))
3275                                           (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3276                                                                     (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3277                                                                                  Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3278                                                                                  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" ((MkLeveledHaskType (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
3279                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3280                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3281                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3282                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3283                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3284                                                                                                            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" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___U03be_ (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)))))))
3285                 (trace "X" ((let {__U03be_'0 = (trace "X" ((trace "X" (update___U03be_ (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
3286                              (trace "X" (let {
3287                                           n = (trace "X" ((trace "X" (arrangeContextAndWeaken (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (lev))
3288                                                                         (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3289                                                                                                   (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3290                                                                                                                Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3291                                                                                                                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))))))}
3292                                          in
3293                                          (trace "X" (let {
3294                                                       n0 = (trace "X" ((trace "X" (eq_rect
3295                                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update___U03be_ (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" (([])))))))))))
3296                                                                                                                (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3297                                                                                                                                          (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3298                                                                                                                                                                    (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3299                                                                                                                                                                                 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3300                                                                                                                                                                                 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))
3301                                                                                      (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3302                                                                                                                (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3303                                                                                                                                          (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3304                                                                                                                                                                    (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3305                                                                                                                                                                                 Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3306                                                                                                                                                                                 Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))}))))) (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))) (trace "X" (ebody)))))))))))))))))))))}
3307                                                      in
3308                                                      (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (lev))))))} in
3309                                                                  (trace "X" (case (trace "X" (s)) of {
3310                                                                               Prelude.True ->
3311                                                                                (trace "X" (let {
3312                                                                                             n1 = (trace "X" (RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
3313                                                                                              (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\v' ->
3314                                                                                                                        (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3315                                                                                                                                     Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3316                                                                                                                                     Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))})))))
3317                                                                                                                        (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3318                                                                                                                                                  (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3319                                                                                                                                                               Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3320                                                                                                                                                               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
3321                                                                                              (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3322                                                                                                                        (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3323                                                                                                                                                  (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3324                                                                                                                                                                            (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3325                                                                                                                                                                                         Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3326                                                                                                                                                                                         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" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v))))))))))) (trace "X" (n0))))}
3327                                                                                            in
3328                                                                                            (trace "X" (Nd_rule (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
3329                                                                                            (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\v' ->
3330                                                                                                                      (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3331                                                                                                                                   Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3332                                                                                                                                   Prelude.False -> (trace "X" ((trace "X" (__U03be_0 (trace "X" (v'))))))})))))
3333                                                                                                                      (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3334                                                                                                                                                (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3335                                                                                                                                                             Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3336                                                                                                                                                             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" ((MkLeveledHaskType (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
3337                                                                                            (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3338                                                                                                                      (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3339                                                                                                                                                (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3340                                                                                                                                                                          (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3341                                                                                                                                                                                       Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3342                                                                                                                                                                                       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" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v)))))))))))))))))))) (trace "X" (n1))))));
3343                                                                               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" ((MkLeveledHaskType (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
3344                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3345                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3346                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3347                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3348                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3349                                                                                                            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" ((MkLeveledHaskType (trace "X" (tv)) (trace "X" (v)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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
3350                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3351                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3352                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3353                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3354                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3355                                                                                                            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" ((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" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (v)))))))))))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0))
3356                 (trace "X" ((trace "X" ((mapOptionTree (trace "X" (__U03be_0))
3357                                           (trace "X" ((trace "X" ((stripOutVars (trace "X" (eqd_vv)) (trace "X" (((:) (trace "X" (lev)) (trace "X" (([]))))))
3358                                                                     (trace "X" ((trace "X" ((expr2antecedent (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((\v' ->
3359                                                                                               (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqd_vv)) (trace "X" (lev)) (trace "X" (v')))))) of {
3360                                                                                                            Prelude.True -> (trace "X" (MkLeveledHaskType (trace "X" (tv)) (trace "X" (v))));
3361                                                                                                            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" ((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)) (trace "X" (tv)) (trace "X" (v))))))))));
3362                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" ((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" (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" ((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" ((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" (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" ((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" (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" (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))))))))));
3363                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" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (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" ((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" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (((:) (trace "X" (ec)) (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" ((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" (lev))))))))));
3364                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" ((MkLeveledHaskType (trace "X" (__U03b3_)) (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" ((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" ((MkLeveledHaskType (trace "X" (__U03b3_)) (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" ((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" (__U03b3_)) (trace "X" (t1)) (trace "X" (lev))))))))));
3365                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" (case (trace "X" (t)) of {
3366                                                                                                                                                                                                                                                                        MkLeveledHaskType h h0 -> (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" (h)) (trace "X" (h0))))) (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (h0))))) (trace "X" (n)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (h0)))))))))))))))))))) (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" (h)) (trace "X" (h0))))) (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (h0))))) (trace "X" (n)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (h0)))))))))))))))))))) (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" (h)) (trace "X" (h0))))) (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (h0))))) (trace "X" (n)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (h0)))))))))))))))))))) (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" (h)) (trace "X" (h0))))) (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (h0))))) (trace "X" (n)) (trace "X" (e))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (h0)))))))))))))))))))) (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" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (h0))))) (trace "X" ((ENote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" ((MkLeveledHaskType (trace "X" (h)) (trace "X" (h0))))) (trace "X" (n)) (trace "X" (e))))))))))))))) (trace "X" (h)) (trace "X" (h0)) (trace "X" (n))))))))))}))));
3367                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" ((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" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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" (e)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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))))))))));
3368                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" ((MkLeveledHaskType (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" ((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" ((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" ((MkLeveledHaskType (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" ((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" ((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))))))))));
3369                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" ((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" ((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" ((MkLeveledHaskType (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" ((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" ((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" ((MkLeveledHaskType (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))))))))));
3370                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" ((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" ((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" ((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" ((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" ((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" ((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" (l))))))))));
3371                ECase __U0393_0 __U0394_0 __U03be_0 l tc tbranches atypes e alts' ->
3372                 (trace "X" (let {
3373                              dcsp = (trace "X" ((trace "X" (let {
3374                                                              mkdcsp alts =
3375                                                                (trace "X" (case (trace "X" (alts)) of {
3376                                                                             T_Leaf o ->
3377                                                                              (trace "X" (case (trace "X" (o)) of {
3378                                                                                           Prelude.Just x ->
3379                                                                                            (trace "X" (case (trace "X" (x)) of {
3380                                                                                                         ExistT sac s -> (trace "X" (case (trace "X" (s)) of {
3381                                                                                                                                      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___U0393_ (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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___U0393_ (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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" ((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___U0393_ (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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___U0393_ (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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___U0393_ (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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" ((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___U0393_ (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___U0394_ (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___U03be_ (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___U0393_ (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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" ((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" ((MkLeveledHaskType (trace "X" (tbranches)) (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___U0393_ (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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___U03be_ (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___U03be_ (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___U03be_ (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" (arrangeContextAndWeaken'' (trace "X" (eqd_vv))))))} in (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update___U03be_ (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___U0394_ (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___U03be_ (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___U0394_ (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___U03be_ (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___U0394_ (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___U03be_ (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___U0394_ (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___U03be_ (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___U03be_ (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___U03be_ (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___U0393_ (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_0))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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)))))))))))))))))))))))))))))))))))}))}));
3382                                                                                           Prelude.Nothing -> (trace "X" (Nd_id0))}));
3383                                                                             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))))))))))))}))}
3384                                                             in mkdcsp (trace "X" (alts'))))))}
3385                             in
3386                             (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" (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" ((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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (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" ((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" (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" ((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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (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" (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" ((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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (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" (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" (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" (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" ((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" (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" ((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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (atypes))))))))) (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" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (l)))))))))))))))))))) (trace "X" ((RCase (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (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" (tbranches)) (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')))))))))))))))))))));
3387                ELetRec __U0393_0 __U0394_0 __U03be_0 lev t tree x x0 ->
3388                 (trace "X" (let {__U03be_'0 = (trace "X" ((trace "X" (update___U03be_ (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" ((trace "X" ((leaves (trace "X" (tree)))))))))))} in
3389                             (trace "X" ((trace "X" (letRecSubproofsToND' (trace "X" (eqd_vv)) (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (lev)) (trace "X" (t)) (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)))))))
3390                                                       (trace "X" ((trace "X" ((let {
3391                                                                                 subproofs __U0393_'' __U0394_'' __U03be_'' lev'' tree' branches' =
3392                                                                                   (trace "X" (case (trace "X" (branches')) of {
3393                                                                                                ELR_nil __U0393_1 __U0394_1 __U03be_1 lev0 -> (trace "X" (Lrsp_nil));
3394                                                                                                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)))))))));
3395                                                                                                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)))))))))}))}
3396                                                                                in subproofs (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_'0)) (trace "X" (lev)) (trace "X" (tree)) (trace "X" (x)))))))))))))}))
3397
3398 data VarNameStore0 =
3399    VarNameStore Nat Nat Nat
3400
3401 type VarNameStoreM t =
3402   VarNameStore0 -> (,) t VarNameStore0
3403   -- singleton inductive, whose constructor was varNameStoreM
3404   
3405 varNameMonad :: Monad (VarNameStoreM ())
3406 varNameMonad =
3407   (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 {
3408                                                                                                                                                 (,) x' vns' -> (trace "X" ((trace "X" (f (trace "X" (x')) (trace "X" (vns'))))))})))))))
3409
3410 freshTyVarName :: Kind -> VarNameStoreM LatexMath
3411 freshTyVarName __U03ba_ vns =
3412   (trace "X" (case (trace "X" (vns)) of {
3413                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)))))))))}))
3414
3415 typeToLatexMath :: Prelude.Bool -> Kind -> (RawHaskType LatexMath) -> VarNameStoreM LatexMath
3416 typeToLatexMath needparens __U03ba_ t =
3417   (trace "X" (case (trace "X" (t)) of {
3418                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)))))))))));
3419                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" ([])))))))))))))))));
3420                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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))));
3421                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" ([])))))))))))))))))))))))))))))))))));
3422                TApp __U03ba___U2081_ __U03ba___U2082_ t1 t2 ->
3423                 (trace "X" (case (trace "X" (t1)) of {
3424                              TApp __U03ba___U2081_0 __U03ba___U2082_0 r tx ->
3425                               (trace "X" (case (trace "X" (r)) of {
3426                                            TArrow ->
3427                                             (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' ->
3428                                                                       (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' ->
3429                                                                                                 (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
3430                                                                                                             (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad)))))
3431                                                                                                                                       (trace "X" ((case (trace "X" (needparens)) of {
3432                                                                                                                                                     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" ([])))))))));
3433                                                                                                                                                     Prelude.False -> (trace "X" (body))})))))))))))))))))))))));
3434                                            _ ->
3435                                             (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' ->
3436                                                                       (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' ->
3437                                                                                                 (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
3438                                                                                                             (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad)))))
3439                                                                                                                                       (trace "X" ((case (trace "X" (needparens)) of {
3440                                                                                                                                                     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" ([])))))))));
3441                                                                                                                                                     Prelude.False -> (trace "X" (body))})))))))))))))))))))))))}));
3442                              _ ->
3443                               (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' ->
3444                                                         (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' ->
3445                                                                                   (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
3446                                                                                               (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad)))))
3447                                                                                                                         (trace "X" ((case (trace "X" (needparens)) of {
3448                                                                                                                                       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" ([])))))))));
3449                                                                                                                                       Prelude.False -> (trace "X" (body))})))))))))))))))))))))))}));
3450                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')))))))))))))))))))))))));
3451                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" ([]))))))))))))))))))))))))))));
3452                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" ([])))))))))))))))))))))))}))
3453
3454 typeListToRawLatexMath :: Prelude.Bool -> (([]) Kind) -> (RawHaskTypeList LatexMath) -> VarNameStoreM (([]) LatexMath)
3455 typeListToRawLatexMath needparens __U03ba_ t =
3456   (trace "X" (case (trace "X" (t)) of {
3457                TyFunApp_nil -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad))))) (trace "X" (([])))))));
3458                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)))))))))))))))))))))))}))
3459
3460 ltypeToLatexMath :: TypeEnv -> Kind -> LeveledHaskType -> VarNameStoreM LatexMath
3461 ltypeToLatexMath __U0393_0 __U03ba_ t =
3462   (trace "X" (case (trace "X" (t)) of {
3463                MkLeveledHaskType t' lev ->
3464                 (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 ->
3465                                           (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'' ->
3466                                                                     (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (varNameMonad)))))
3467                                                                                               (trace "X" ((case (trace "X" (lev)) of {
3468                                                                                                             ([]) -> (trace "X" (t''));
3469                                                                                                             (:) 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" ([])))))))))))})))))))))))))))))))))}))
3470
3471 judgmentToRawLatexMath :: Judg -> LatexMath
3472 judgmentToRawLatexMath j =
3473   (trace "X" ((trace "X" (fst (trace "X" ((trace "X" ((unsafeCoerce (trace "X" ((case (trace "X" (j)) of {
3474                                                                                   MkJudg __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ -> (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" ((unsafeCoerce (trace "X" ((trace "X" ((ltypeToLatexMath (trace "X" (__U0393_0)) (trace "X" (KindStar)))))))))) (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))))))))))))))
3475
3476 toLatexMathJudgment :: ToLatexMath Judg
3477 toLatexMathJudgment =
3478   (trace "X" (judgmentToRawLatexMath))
3479
3480 nd_uruleToRawLatexMath :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Arrange a1) -> Prelude.String
3481 nd_uruleToRawLatexMath h c r =
3482   (trace "X" (case (trace "X" (r)) of {
3483                RId a -> (trace "X" ((:) (trace "X" ('I')) (trace "X" (((:) (trace "X" ('d')) (trace "X" ([])))))));
3484                RCanL a -> (trace "X" ((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('L')) (trace "X" ([])))))))))))));
3485                RCanR a -> (trace "X" ((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('R')) (trace "X" ([])))))))))))));
3486                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" ([]))))))))))))))));
3487                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" ([]))))))))))))))));
3488                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" ([]))))))))))))))));
3489                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" ([]))))))))))))))));
3490                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" ([])))))))))))));
3491                RWeak a -> (trace "X" ((:) (trace "X" ('W')) (trace "X" (((:) (trace "X" ('e')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('k')) (trace "X" ([])))))))))))));
3492                RCont a -> (trace "X" ((:) (trace "X" ('C')) (trace "X" (((:) (trace "X" ('o')) (trace "X" (((:) (trace "X" ('n')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([])))))))))))));
3493                RLeft h0 c0 x r0 -> (trace "X" ((trace "X" (nd_uruleToRawLatexMath (trace "X" (h0)) (trace "X" (c0)) (trace "X" (r0))))));
3494                RRight h0 c0 x r0 -> (trace "X" ((trace "X" (nd_uruleToRawLatexMath (trace "X" (h0)) (trace "X" (c0)) (trace "X" (r0))))));
3495                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" ([])))))))))))))}))
3496
3497 nd_ruleToRawLatexMath :: (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> Rule -> Prelude.String
3498 nd_ruleToRawLatexMath h c r =
3499   (trace "X" (case (trace "X" (r)) of {
3500                RArrange __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03a3_ r0 -> (trace "X" ((trace "X" (nd_uruleToRawLatexMath (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" (r0))))));
3501                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" ([])))))))))))));
3502                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" ([]))))))))));
3503                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" ([])))))))))))));
3504                RLit __U0393_0 __U0394_0 v l -> (trace "X" ((:) (trace "X" ('L')) (trace "X" (((:) (trace "X" ('i')) (trace "X" (((:) (trace "X" ('t')) (trace "X" ([]))))))))));
3505                RVar __U0393_0 __U0394_0 __U03c3_ l -> (trace "X" ((:) (trace "X" ('V')) (trace "X" (((:) (trace "X" ('a')) (trace "X" (((:) (trace "X" ('r')) (trace "X" ([]))))))))));
3506                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" ([])))))))))))))))))));
3507                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" ([]))))))))));
3508                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" ([])))))))))))));
3509                RJoin __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03c4___U2081_ __U03c4___U2082_ -> (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" ([]))))))))))))))));
3510                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" ([]))))))))));
3511                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" ([]))))))))));
3512                RVoid __U0393_0 __U0394_0 -> (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" ([]))))))))))))))));
3513                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" ([])))))))))))));
3514                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" ([])))))))))))));
3515                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" ([]))))))))))))))));
3516                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" ([]))))))))))))))));
3517                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" ([])))))))))))))))))));
3518                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" ([])))))))))))))}))
3519
3520 nd_hideURule :: (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe a1)) -> (Arrange a1) -> Prelude.Bool
3521 nd_hideURule h c r =
3522   (trace "X" (case (trace "X" (r)) of {
3523                RId a -> (trace "X" (Prelude.False));
3524                RExch a b ->
3525                 (trace "X" (case (trace "X" (a)) of {
3526                              T_Leaf o ->
3527                               (trace "X" (case (trace "X" (o)) of {
3528                                            Prelude.Just t ->
3529                                             (trace "X" (case (trace "X" (b)) of {
3530                                                          T_Leaf o0 ->
3531                                                           (trace "X" (case (trace "X" (o0)) of {
3532                                                                        Prelude.Just t0 -> (trace "X" (Prelude.False));
3533                                                                        Prelude.Nothing -> (trace "X" (Prelude.True))}));
3534                                                          T_Branch t0 t1 -> (trace "X" (Prelude.False))}));
3535                                            Prelude.Nothing -> (trace "X" (Prelude.True))}));
3536                              T_Branch t t0 ->
3537                               (trace "X" (case (trace "X" (b)) of {
3538                                            T_Leaf o ->
3539                                             (trace "X" (case (trace "X" (o)) of {
3540                                                          Prelude.Just t1 -> (trace "X" (Prelude.False));
3541                                                          Prelude.Nothing -> (trace "X" (Prelude.True))}));
3542                                            T_Branch t1 t2 -> (trace "X" (Prelude.False))}))}));
3543                RWeak a ->
3544                 (trace "X" (case (trace "X" (a)) of {
3545                              T_Leaf o ->
3546                               (trace "X" (case (trace "X" (o)) of {
3547                                            Prelude.Just t -> (trace "X" (Prelude.False));
3548                                            Prelude.Nothing -> (trace "X" (Prelude.True))}));
3549                              T_Branch t t0 -> (trace "X" (Prelude.False))}));
3550                RCont a ->
3551                 (trace "X" (case (trace "X" (a)) of {
3552                              T_Leaf o ->
3553                               (trace "X" (case (trace "X" (o)) of {
3554                                            Prelude.Just t -> (trace "X" (Prelude.False));
3555                                            Prelude.Nothing -> (trace "X" (Prelude.True))}));
3556                              T_Branch t t0 -> (trace "X" (Prelude.False))}));
3557                RLeft h0 c0 x r0 -> (trace "X" ((trace "X" (nd_hideURule (trace "X" (h0)) (trace "X" (c0)) (trace "X" (r0))))));
3558                RRight h0 c0 x r0 -> (trace "X" ((trace "X" (nd_hideURule (trace "X" (h0)) (trace "X" (c0)) (trace "X" (r0))))));
3559                RComp a b c0 a0 a1 -> (trace "X" (Prelude.False));
3560                _ -> (trace "X" (Prelude.True))}))
3561
3562 nd_hideRule :: (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> Rule -> Prelude.Bool
3563 nd_hideRule h c r =
3564   (trace "X" (case (trace "X" (r)) of {
3565                RArrange __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03a3_ r0 -> (trace "X" ((trace "X" (nd_hideURule (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_)) (trace "X" (r0))))));
3566                RJoin __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03c4___U2081_ __U03c4___U2082_ -> (trace "X" (Prelude.True));
3567                RVoid __U0393_0 __U0394_0 -> (trace "X" (Prelude.True));
3568                _ -> (trace "X" (Prelude.False))}))
3569
3570 toLatexMathRule :: (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> ToLatexMath Rule
3571 toLatexMathRule h c r =
3572   (trace "X" ((trace "X" (nd_ruleToRawLatexMath (trace "X" (h)) (trace "X" (c)) (trace "X" (r))))))
3573
3574 nd_ml_toLatexMath :: (Tree (Prelude.Maybe Judg)) -> (ND Judg Rule) -> LatexMath
3575 nd_ml_toLatexMath c pf =
3576   (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)))))))))))))))))
3577
3578 mkWeakTypeVar :: (Unique.Unique -> Kind -> WeakTypeVar0) -> Kind -> UniqM WeakTypeVar0
3579 mkWeakTypeVar mkWeakTypeVar_ k =
3580   (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))))))))))))))))))
3581
3582 mkWeakCoerVar :: (Unique.Unique -> Kind -> WeakType -> WeakType -> WeakCoerVar0) -> Kind -> WeakType -> WeakType -> UniqM WeakCoerVar0
3583 mkWeakCoerVar mkWeakCoerVar_ k t1 t2 =
3584   (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))))))))))))))))))
3585
3586 mkWeakExprVar :: (Unique.Unique -> WeakType -> WeakExprVar0) -> WeakType -> UniqM WeakExprVar0
3587 mkWeakExprVar mkWeakExprVar_ t =
3588   (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))))))))))))))))))
3589
3590 mfresh :: (Unique.Unique -> Kind -> WeakTypeVar0) -> (([]) Kind) -> (([]) Kind) -> (IList Kind WeakTypeVar0) -> UniqM ((,) (Vec WeakTypeVar0) (IList Kind WeakTypeVar0))
3591 mfresh mkWeakTypeVar_ lk __U0393_0 ite =
3592   (trace "X" (case (trace "X" (lk)) of {
3593                ([]) -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (((,) (trace "X" (Vec_nil)) (trace "X" (ite)))))))));
3594                (:) 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')))))))))))))))))))))))))))))))}))
3595
3596 rawHaskTypeToWeakType :: (Unique.Unique -> Kind -> WeakTypeVar0) -> Kind -> (RawHaskType WeakTypeVar0) -> UniqM WeakType
3597 rawHaskTypeToWeakType mkWeakTypeVar_ =
3598   (trace "X" (let {
3599                rawHaskTypeToWeakType0 __U03ba_ rht =
3600                  (trace "X" (case (trace "X" (rht)) of {
3601                               TVar __U03ba_0 v -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WTyVarTy (trace "X" (v)))))))));
3602                               TCon tc -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WTyCon (trace "X" (tc)))))))));
3603                               TArrow -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (WFunTyCon))))));
3604                               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'))))))))))))))))))))))))))))));
3605                               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')))))))))))))))))))))));
3606                               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')))))))))))))))))))))));
3607                               TCode t1 t2 ->
3608                                (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' ->
3609                                                          (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' ->
3610                                                                                    (trace "X" (case (trace "X" (t1')) of {
3611                                                                                                 WTyVarTy ec -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WCodeTy (trace "X" (ec)) (trace "X" (t2')))))))));
3612                                                                                                 _ -> (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" ([])))))))))))))))))))))))))))))))))))))}))))))))))))))));
3613                               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'))))))))))))))))}));
3614                rawHaskTypeListToWeakType __U03ba_ rht =
3615                  (trace "X" (case (trace "X" (rht)) of {
3616                               TyFunApp_nil -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (([])))))));
3617                               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)))))))))))))))))))))))}))}
3618               in rawHaskTypeToWeakType0))
3619
3620 typeToWeakType :: (Unique.Unique -> Kind -> WeakTypeVar0) -> TypeEnv -> Kind -> HaskType -> (InstantiatedTypeEnv WeakTypeVar0) -> UniqM WeakType
3621 typeToWeakType mkWeakTypeVar_ __U0393_0 __U03ba_ __U03c4_ __U03c6_0 =
3622   (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)))))))))))
3623
3624 updateITE :: TypeEnv -> Kind -> a1 -> (InstantiatedTypeEnv a1) -> InstantiatedTypeEnv a1
3625 updateITE __U0393_0 __U03ba_ tv ite =
3626   (trace "X" (ICons (trace "X" (__U03ba_)) (trace "X" (__U0393_0)) (trace "X" (tv)) (trace "X" (ite))))
3627
3628 coercionToWeakCoercion :: (Unique.Unique -> Kind -> WeakTypeVar0) -> TypeEnv -> CoercionEnv -> Kind -> HaskType -> HaskType -> (InstantiatedTypeEnv WeakTypeVar0) -> UniqM WeakCoercion
3629 coercionToWeakCoercion mkWeakTypeVar_ __U0393_0 __U0394_0 __U03ba_ t1 t2 ite =
3630   (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')))))))))))))))))))))))
3631
3632 seqM :: (([]) (UniqM a1)) -> UniqM (([]) a1)
3633 seqM l =
3634   (trace "X" (case (trace "X" (l)) of {
3635                ([]) -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" (([])))))));
3636                (:) 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')))))))))))))))))))))))}))
3637
3638 update___U03c7_ :: (EqDecidable a1) -> (a1 -> OrError WeakExprVar0) -> a1 -> WeakExprVar0 -> a1 -> OrError WeakExprVar0
3639 update___U03c7_ eqVV __U03c7_ vv ev' vv' =
3640   (trace "X" (case (trace "X" ((trace "X" (eqd_dec (trace "X" (eqVV)) (trace "X" (vv)) (trace "X" (vv')))))) of {
3641                Prelude.True -> (trace "X" (OK (trace "X" (ev'))));
3642                Prelude.False -> (trace "X" ((trace "X" (__U03c7_ (trace "X" (vv'))))))}))
3643
3644 update___U03c7_' :: (EqDecidable a1) -> (a1 -> OrError WeakExprVar0) -> (([]) ((,) a1 WeakExprVar0)) -> a1 -> OrError WeakExprVar0
3645 update___U03c7_' eqVV __U03c7_ varsexprs =
3646   (trace "X" (case (trace "X" (varsexprs)) of {
3647                ([]) -> (trace "X" (__U03c7_));
3648                (:) p rest -> (trace "X" (case (trace "X" (p)) of {
3649                                           (,) vv wev -> (trace "X" ((trace "X" (update___U03c7_ (trace "X" (eqVV)) (trace "X" ((trace "X" ((update___U03c7_' (trace "X" (eqVV)) (trace "X" (__U03c7_)) (trace "X" (rest))))))) (trace "X" (vv)) (trace "X" (wev))))))}))}))
3650
3651 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
3652 exprToWeakExpr hetmet_brak hetmet_esc mkWeakTypeVar_ mkWeakCoerVar_ mkWeakExprVar_ eqVV =
3653   (trace "X" (let {
3654                exprToWeakExpr0 __U0393_0 __U0394_0 __U03be_0 __U03c4_ __U03c7_ exp =
3655                  (trace "X" (case (trace "X" (exp)) of {
3656                               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)))))))))))))))))))))))))))));
3657                               EVar __U0393_' __U0394_1 __U03be_' ev -> (trace "X" ((\ite ->
3658                                (trace "X" (case (trace "X" ((trace "X" (__U03c7_ (trace "X" (ev)))))) of {
3659                                             Error s -> (trace "X" ((\x -> (trace "X" (Error (trace "X" (s)))))));
3660                                             OK v -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((WEVar (trace "X" (v)))))))))})))));
3661                               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))))))))))));
3662                               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'))))))))))))))))))))))))));
3663                               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___U03be_ (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___U03c7_ (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')))))))))))))))))))))))))))))))));
3664                               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___U03be_ (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___U03c7_ (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'))))))))))))))))))))))))))))))))))))))));
3665                               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'))))))))))))))))))))))))));
3666                               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'))))))))))))))))))))))))));
3667                               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'))))))))))))))))))))))))));
3668                               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')))))))))))))))))));
3669                               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'))))))))))))))))))))))))));
3670                               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'))))))))))))))))))))))))))))))))))))))));
3671                               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'))))))))))))))))))))))))));
3672                               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'))))))))))))))))))))))))));
3673                               ECase __U0393_1 __U0394_1 __U03be_1 l tc tbranches atypes escrut alts -> (trace "X" ((\ite ->
3674                                (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' ->
3675                                                          (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' ->
3676                                                                                    (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' ->
3677                                                                                                              (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' ->
3678                                                                                                                                        (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad)))))
3679                                                                                                                                                                  (trace "X" ((trace "X" ((let {
3680                                                                                                                                                                                            caseBranches tree =
3681                                                                                                                                                                                              (trace "X" (case (trace "X" (tree)) of {
3682                                                                                                                                                                                                           T_Leaf o ->
3683                                                                                                                                                                                                            (trace "X" (case (trace "X" (o)) of {
3684                                                                                                                                                                                                                         Prelude.Just x ->
3685                                                                                                                                                                                                                          (trace "X" (case (trace "X" (x)) of {
3686                                                                                                                                                                                                                                       ExistT sac scb_e -> (trace "X" (case (trace "X" (scb_e)) of {
3687                                                                                                                                                                                                                                                                        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___U0393_ (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___U03c7_' (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___U0393_ (trace "X" (tc)) (trace "X" (sac)) (trace "X" (__U0393_1))))))) (trace "X" ((trace "X" ((sac___U0394_ (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___U03be_ (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''))))))))))))))))))))))))))))))))))))))))}))}));
3688                                                                                                                                                                                                                         Prelude.Nothing -> (trace "X" ((trace "X" (returnM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))}));
3689                                                                                                                                                                                                           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')))))))))))))))))))))))}))}
3690                                                                                                                                                                                           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'))))))))))))))))))))))))))))))))))))))))))))))))))))));
3691                               ELetRec __U0393_1 __U0394_1 __U03be_1 l __U03c4_0 vars x x0 -> (trace "X" (let {__U03be_' = (trace "X" ((trace "X" (update___U03be_ (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___U03c7_' (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')))))))))))))))))))))))))))))))))))))}));
3692                exprLetRec2WeakExprLetRec __U0393_0 __U0394_0 __U03be_0 __U03c4_ __U03c7_ vars elrb ite =
3693                  (trace "X" (case (trace "X" (elrb)) of {
3694                               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)))))))));
3695                               ELR_leaf __U0393_1 __U0394_1 __U03be_' cv v t e ->
3696                                (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' ->
3697                                                          (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' ->
3698                                                                                    (trace "X" ((trace "X" (bindM (trace "X" ((unsafeCoerce (trace "X" (uniqMonad)))))
3699                                                                                                              (trace "X" ((case (trace "X" ((trace "X" (__U03c7_ (trace "X" (v)))))) of {
3700                                                                                                                            Error s -> (trace "X" ((\x -> (trace "X" (Error (trace "X" (s)))))));
3701                                                                                                                            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'))))))))))))))))))))))))))))))))))));
3702                               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')))))))))))))))))))))))}))}
3703               in exprToWeakExpr0))
3704
3705 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
3706 strongExprToWeakExpr hetmet_brak hetmet_esc mkWeakTypeVar_ mkWeakCoerVar_ mkWeakExprVar_ eqVV toStringVV us __U0393_0 __U0394_0 __U03be_0 __U03c4_ exp ite =
3707   (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))))))))))))))))
3708
3709 fresh :: (FreshMonad a1) -> (([]) a1) -> FMT a1 (SigT a1 ())
3710 fresh freshM =
3711   (trace "X" ((trace "X" (fMT_fresh (trace "X" (freshM))))))
3712
3713 type FreshM vV x = FMT vV x
3714
3715 freshMon :: (FreshMonad a1) -> Monad (FMT a1 ())
3716 freshMon freshM =
3717   (trace "X" ((trace "X" (fMT_Monad (trace "X" (freshM))))))
3718
3719 type Judg2exprType vV = ()
3720
3721 ileaf :: a1 -> (ITree a1 a2) -> a2
3722 ileaf t it =
3723   (trace "X" (case (trace "X" (it)) of {
3724                INone -> (trace "X" (false_rect));
3725                ILeaf i x0 -> (trace "X" ((trace "X" (eq_rect (trace "X" (t)) (trace "X" ((\x1 -> (trace "X" (x1))))) (trace "X" (i)) (trace "X" (x0))))));
3726                IBranch it1 it2 x0 x1 -> (trace "X" ((trace "X" (false_rect (trace "X" (x0)) (trace "X" (x1))))))}))
3727
3728 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)))
3729 fresh_lemma' eqdec_vv freshM __U0393_0 types vars __U03a3_ __U03be_0 lev =
3730   (trace "X" ((trace "X" (tree_rect (trace "X" ((\a vars0 __U03a3_0 __U03be_1 lev0 _ ->
3731                             (trace "X" (case (trace "X" (a)) of {
3732                                          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 {
3733                                                                                                                                                                                                                                                                                                                                                                                                      ExistT vf0 _ -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" (((,) (trace "X" (vf0)) (trace "X" (h))))))))))}))))))))))))));
3734                                          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___U03be_ (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" (__))))))
3735
3736 fresh_lemma :: (EqDecidable a1) -> (FreshMonad a1) -> TypeEnv -> (a1 -> LeveledHaskType) -> (Tree (Prelude.Maybe a1)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskType -> HaskLevel -> FreshM a1 a1
3737 fresh_lemma eqdec_vv freshM __U0393_0 __U03be_0 vars __U03a3_ __U03a3_' lev =
3738   (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
3739               (trace "X" ((trace "X" (bindM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" (q)) (trace "X" ((\q' ->
3740                                         (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM)))))))
3741                                                                   (trace "X" ((case (trace "X" (q')) of {
3742                                                                                 T_Leaf o ->
3743                                                                                  (trace "X" (case (trace "X" (o)) of {
3744                                                                                               Prelude.Just p ->
3745                                                                                                (trace "X" (case (trace "X" (p)) of {
3746                                                                                                             (,) v h ->
3747                                                                                                              (trace "X" (let {s = (trace "X" ((trace "X" (eqd_dec (trace "X" (eqdec_vv)) (trace "X" (v)) (trace "X" (v))))))} in
3748                                                                                                                          (trace "X" (case (trace "X" (s)) of {
3749                                                                                                                                       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" (__))))));
3750                                                                                                                                       Prelude.False -> (trace "X" (Prelude.error "absurd case"))}))))}));
3751                                                                                               Prelude.Nothing -> (trace "X" (false_rect))}));
3752                                                                                 T_Branch varstypes1 varstypes2 -> (trace "X" (false_rect))}))))))))))))))))
3753
3754 type Ujudg2exprType vV = (Tree (Prelude.Maybe vV)) -> () -> FreshM vV (ITree LeveledHaskType (Expr vV))
3755
3756 urule2expr :: (EqDecidable a1) -> (FreshMonad a1) -> TypeEnv -> CoercionEnv -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Arrange LeveledHaskType) -> (a1 -> LeveledHaskType) -> (Ujudg2exprType a1) -> (Tree (Prelude.Maybe a1)) -> FreshM a1 (ITree LeveledHaskType (Expr a1))
3757 urule2expr eqdec_vv freshM __U0393_0 __U0394_0 h j t r __U03be_0 x vars =
3758   (trace "X" ((trace "X" (let {
3759                            urule2expr0 h0 j0 t0 r0 __U03be_1 x0 =
3760                              (trace "X" (case (trace "X" (r0)) of {
3761                                           RId a -> (trace "X" (x0));
3762                                           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" (__)))))))));
3763                                           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" (__)))))))));
3764                                           RuCanL a -> (trace "X" ((\vars0 _ ->
3765                                            (trace "X" (case (trace "X" (vars0)) of {
3766                                                         T_Leaf o -> (trace "X" (false_rect));
3767                                                         T_Branch vars1 vars2 -> (trace "X" ((trace "X" (x0 (trace "X" (vars2)) (trace "X" (__))))))})))));
3768                                           RuCanR a -> (trace "X" ((\vars0 _ ->
3769                                            (trace "X" (case (trace "X" (vars0)) of {
3770                                                         T_Leaf o -> (trace "X" (false_rect));
3771                                                         T_Branch vars1 vars2 -> (trace "X" ((trace "X" (x0 (trace "X" (vars1)) (trace "X" (__))))))})))));
3772                                           RAssoc a b c -> (trace "X" ((\vars0 _ ->
3773                                            (trace "X" (case (trace "X" (vars0)) of {
3774                                                         T_Leaf o -> (trace "X" (false_rect));
3775                                                         T_Branch vars1 vars2 ->
3776                                                          (trace "X" (case (trace "X" (vars1)) of {
3777                                                                       T_Leaf o -> (trace "X" (false_rect));
3778                                                                       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" (__))))))}))})))));
3779                                           RCossa a b c -> (trace "X" ((\vars0 _ ->
3780                                            (trace "X" (case (trace "X" (vars0)) of {
3781                                                         T_Leaf o -> (trace "X" (false_rect));
3782                                                         T_Branch vars1 vars2 ->
3783                                                          (trace "X" (case (trace "X" (vars2)) of {
3784                                                                       T_Leaf o -> (trace "X" (false_rect));
3785                                                                       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" (__))))))}))})))));
3786                                           RExch a b -> (trace "X" ((\vars0 _ ->
3787                                            (trace "X" (case (trace "X" (vars0)) of {
3788                                                         T_Leaf o -> (trace "X" (false_rect));
3789                                                         T_Branch vars1 vars2 -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Branch (trace "X" (vars2)) (trace "X" (vars1))))) (trace "X" (__))))))})))));
3790                                           RWeak a -> (trace "X" ((\vars0 _ -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__)))))))));
3791                                           RCont a -> (trace "X" ((\vars0 _ -> (trace "X" ((trace "X" (x0 (trace "X" ((T_Branch (trace "X" (vars0)) (trace "X" (vars0))))) (trace "X" (__)))))))));
3792                                           RLeft h1 c ctx r1 ->
3793                                            (trace "X" (let {e = (trace "X" ((trace "X" (urule2expr0 (trace "X" (h1)) (trace "X" (c)) (trace "X" (t0)) (trace "X" (r1))))))} in
3794                                                        (trace "X" ((\vars0 _ ->
3795                                                        (trace "X" (case (trace "X" (vars0)) of {
3796                                                                     T_Leaf o -> (trace "X" (false_rect));
3797                                                                     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" (__))))))})))))));
3798                                           RRight h1 c ctx r1 ->
3799                                            (trace "X" (let {e = (trace "X" ((trace "X" (urule2expr0 (trace "X" (h1)) (trace "X" (c)) (trace "X" (t0)) (trace "X" (r1))))))} in
3800                                                        (trace "X" ((\vars0 _ ->
3801                                                        (trace "X" (case (trace "X" (vars0)) of {
3802                                                                     T_Leaf o -> (trace "X" (false_rect));
3803                                                                     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" (__))))))})))))));
3804                                           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" (f))))))} in (trace "X" ((trace "X" (urule2expr0 (trace "X" (b)) (trace "X" (c)) (trace "X" (t0)) (trace "X" (g)) (trace "X" (__U03be_1)) (trace "X" ((trace "X" ((e1 (trace "X" (__U03be_1)) (trace "X" (x0)))))))))))))}))}
3805                           in urule2expr0 (trace "X" (h)) (trace "X" (j)) (trace "X" (t)) (trace "X" (r)) (trace "X" (__U03be_0)) (trace "X" (x)) (trace "X" (vars)) (trace "X" (__))))))
3806
3807 letrec_helper :: (EqDecidable a1) -> TypeEnv -> CoercionEnv -> HaskLevel -> (Tree (Prelude.Maybe ((,) a1 HaskType))) -> (a1 -> LeveledHaskType) -> (ITree LeveledHaskType (Expr a1)) -> ELetRecBindings a1
3808 letrec_helper eqdec_vv __U0393_0 __U0394_0 l varstypes __U03be_' x =
3809   (trace "X" ((trace "X" (tree_rect (trace "X" ((\a x0 ->
3810                             (trace "X" (case (trace "X" (a)) of {
3811                                          Prelude.Just p ->
3812                                           (trace "X" (case (trace "X" (p)) of {
3813                                                        (,) v h ->
3814                                                         (trace "X" (let {x1 = (trace "X" ((trace "X" (ileaf (trace "X" ((trace "X" ((__U03be_' (trace "X" ((trace "X" ((fst (trace "X" (((,) (trace "X" (v)) (trace "X" (h))))))))))))))) (trace "X" (x0))))))} in
3815                                                                     (trace "X" (ELR_leaf (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_')) (trace "X" (l)) (trace "X" (v)) (trace "X" (h))
3816                                                                     (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
3817                                                                                  (trace "X" (case (trace "X" (s)) of {
3818                                                                                               Prelude.True ->
3819                                                                                                (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))))))))))))))
3820                                                                                                                          (trace "X" ((let {l0 = (trace "X" ((trace "X" (__U03be_' (trace "X" (v))))))} in
3821                                                                                                                                       (trace "X" (case (trace "X" (l0)) of {
3822                                                                                                                                                    MkLeveledHaskType h0 h1 ->
3823                                                                                                                                                     (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
3824                                                                                                                                                                 (trace "X" (case (trace "X" (s0)) of {
3825                                                                                                                                                                              Prelude.True -> (trace "X" ((trace "X" (eq_rect (trace "X" (h1)) (trace "X" (x1)) (trace "X" (l))))));
3826                                                                                                                                                                              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))))));
3827                                                                                               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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))})))))))))}));
3828                                          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))
3829                             (trace "X" ((trace "X" ((iHvarstypes1
3830                                                       (trace "X" ((case (trace "X" (x0)) of {
3831                                                                     INone -> (trace "X" (false_rect));
3832                                                                     ILeaf i x1 -> (trace "X" ((trace "X" (false_rect (trace "X" (x1))))));
3833                                                                     IBranch it1 it2 x1 x2 -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x3 -> (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" (__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))))))}))))))))
3834                             (trace "X" ((trace "X" ((iHvarstypes2
3835                                                       (trace "X" ((case (trace "X" (x0)) of {
3836                                                                     INone -> (trace "X" (false_rect));
3837                                                                     ILeaf i x1 -> (trace "X" ((trace "X" (false_rect (trace "X" (x1))))));
3838                                                                     IBranch it1 it2 x1 x2 -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x3 -> (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" (__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))))))
3839
3840 unindex_tree :: (Tree (Prelude.Maybe a1)) -> (ITree a1 a2) -> Tree (Prelude.Maybe (SigT a1 a2))
3841 unindex_tree t it =
3842   (trace "X" (case (trace "X" (it)) of {
3843                INone -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
3844                ILeaf x y -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((ExistT (trace "X" (x)) (trace "X" (y))))))))));
3845                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)))))))))}))
3846
3847 fix_indexing :: (Tree (Prelude.Maybe (SigT a1 a2))) -> (ITree (SigT a1 a2) a3) -> ITree a1 a3
3848 fix_indexing t it =
3849   (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))))))
3850
3851 fix2 :: (FreshMonad a1) -> (Tree (Prelude.Maybe (SigT a2 (FreshM a1 a3)))) -> Tree (Prelude.Maybe (FreshM a1 (SigT a2 a3)))
3852 fix2 freshM t =
3853   (trace "X" (case (trace "X" (t)) of {
3854                T_Leaf y ->
3855                 (trace "X" (case (trace "X" (y)) of {
3856                              Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((case (trace "X" (x)) of {
3857                                                                                                           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'))))))))))))))))}))))))));
3858                              Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
3859                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)))))))))}))
3860
3861 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))
3862 case_helper eqdec_vv freshM tc __U0393_0 __U0394_0 lev tbranches avars __U03be_0 pcb x =
3863   (trace "X" (case (trace "X" (pcb)) of {
3864                ExistT sac pcb0 ->
3865                 (trace "X" (case (trace "X" (x)) of {
3866                              (,) f s -> (trace "X" (case (trace "X" (s)) of {
3867                                                      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___U0393_ (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___U03be_ (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" ((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" (lev)))))))))) (trace "X" (q))))))))))))))))))))))))))))))))))}))}))}))
3868
3869 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)) ()))
3870 gather_branch_variables eqdec_vv freshM __U0393_0 __U0394_0 __U03be_0 tc avars tbranches lev alts vars x =
3871   (trace "X" ((trace "X" (tree_rect (trace "X" ((\a vars0 _ source ->
3872                             (trace "X" (case (trace "X" (a)) of {
3873                                          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" (__))))))))))));
3874                                          Prelude.Nothing -> (trace "X" (INone))}))))) (trace "X" ((\alts1 iHalts1 alts2 iHalts2 vars0 _ source ->
3875                             (trace "X" (case (trace "X" (vars0)) of {
3876                                          T_Leaf o -> (trace "X" (false_rect));
3877                                          T_Branch vars1 vars2 ->
3878                                           (trace "X" (case (trace "X" (source)) of {
3879                                                        INone -> (trace "X" (false_rect));
3880                                                        ILeaf i x0 -> (trace "X" ((trace "X" (false_rect (trace "X" (x0))))));
3881                                                        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))))))
3882
3883 rule2expr :: (EqDecidable a1) -> (FreshMonad a1) -> (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> Rule -> (ITree Judg (Judg2exprType a1)) -> ITree Judg (Judg2exprType a1)
3884 rule2expr eqdec_vv freshM h j r x_ =
3885   (trace "X" (case (trace "X" (r)) of {
3886                RArrange a b c d e 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" (x_))))))} in (trace "X" (ILeaf (trace "X" ((MkJudg (trace "X" (a)) (trace "X" (b)) (trace "X" (d)) (trace "X" (e))))) (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" (let {q = (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" (r0)) (trace "X" (__U03be_0))))))} in (trace "X" (let {z = (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" (q (trace "X" ((\vars0 _ -> (trace "X" ((trace "X" (z (trace "X" (vars0))))))))) (trace "X" (vars))))))))))))))))))));
3887                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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U03a3_)) (trace "X" (c)) (trace "X" (b))))))))) (trace "X" (m))))) (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" ((MkLeveledHaskType (trace "X" (b)) (trace "X" (((:) (trace "X" (c)) (trace "X" (m)))))))) (trace "X" (x))))))))))))))))))))))))))))))))));
3888                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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" (b)) (trace "X" (((:) (trace "X" (c)) (trace "X" (m)))))))) (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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskBrak (trace "X" (__U03a3_)) (trace "X" (c)) (trace "X" (b))))))))) (trace "X" (m))))) (trace "X" (x))))))))))))))))))))))))))))))))));
3889                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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (l))))) (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" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (l))))) (trace "X" (x))))))))))))))))))))))))))))))))));
3890                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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (literalType (trace "X" (l)) (trace "X" (__U0393_0))))))))) (trace "X" (l0))))) (trace "X" ((ELit (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (l0))))))))))))))))))));
3891                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" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (p))))))))))))))
3892                 (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ ->
3893                               (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (p)))))
3894                                                         (trace "X" ((case (trace "X" (vars)) of {
3895                                                                       T_Leaf o ->
3896                                                                        (trace "X" (case (trace "X" (o)) of {
3897                                                                                     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)))))))));
3898                                                                                     Prelude.Nothing -> (trace "X" (false_rect))}));
3899                                                                       T_Branch vars1 vars2 -> (trace "X" (false_rect))}))))))))))))))))));
3900                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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))) (trace "X" (__U03c3_))))) (trace "X" ((EGlobal (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (l)) (trace "X" (wev)) (trace "X" (__U03c3_))))))))))))))))))));
3901                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" ((MkLeveledHaskType (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" ((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" ((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___U03be_ (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" ((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" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (x))))) (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" ((MkLeveledHaskType (trace "X" (te)) (trace "X" (x))))) (trace "X" (hyp)))))))))))))))))))))))))))))))))))))))))));
3902                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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (__U03b3_))))) (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" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (__U03b3_))))) (trace "X" (x))))))))))))))))))))))))))))))))));
3903                RJoin __U0393_0 p lri m x q -> (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))))))))
3904                 (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ ->
3905                               (trace "X" (case (trace "X" (x_)) of {
3906                                            INone -> (trace "X" (false_rect));
3907                                            ILeaf i x0 -> (trace "X" ((trace "X" (false_rect (trace "X" (x0))))));
3908                                            IBranch it1 it2 x0 x1 ->
3909                                             (trace "X" (let {
3910                                                          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" ((\_ ->
3911                                                                                         (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" ((\x2 x3 ->
3912                                                                                                                   (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" (x2))))))} in
3913                                                                                                                               (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" (x3))))))} in
3914                                                                                                                                           (trace "X" (case (trace "X" (vars)) of {
3915                                                                                                                                                        T_Leaf o -> (trace "X" (false_rect));
3916                                                                                                                                                        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" (__))))))}
3917                                                         in
3918                                                         (trace "X" ((trace "X" (unsafeCoerce (trace "X" (h0)) (trace "X" (x0)) (trace "X" (x1))))))))}))))))))));
3919                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" ((MkLeveledHaskType (trace "X" (te)) (trace "X" (p))))))))))))))
3920                 (trace "X" ((case (trace "X" (x_)) of {
3921                               INone -> (trace "X" (false_rect));
3922                               ILeaf i x -> (trace "X" ((trace "X" (false_rect (trace "X" (x))))));
3923                               IBranch it1 it2 x x0 ->
3924                                (trace "X" (let {
3925                                             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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (p)))))))))))))))))))) (trace "X" ((\_ ->
3926                                                                            (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" ((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" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (p)))))))))))))))))))) (trace "X" ((\x1 x2 ->
3927                                                                                                      (trace "X" (case (trace "X" (x1)) of {
3928                                                                                                                   INone -> (trace "X" (false_rect));
3929                                                                                                                   ILeaf i x3 ->
3930                                                                                                                    (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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (p)))))))))))))) (trace "X" ((\x4 ->
3931                                                                                                                                              (trace "X" (case (trace "X" (x2)) of {
3932                                                                                                                                                           INone -> (trace "X" (false_rect));
3933                                                                                                                                                           ILeaf i0 x5 ->
3934                                                                                                                                                            (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" ((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" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (p)))))))))))))) (trace "X" ((\x6 __U03be_0 vars _ ->
3935                                                                                                                                                                                      (trace "X" (case (trace "X" (vars)) of {
3936                                                                                                                                                                                                   T_Leaf o -> (trace "X" (false_rect));
3937                                                                                                                                                                                                   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" ((MkLeveledHaskType (trace "X" (te)) (trace "X" (p))))) (trace "X" ((let {q1'0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (p))))) (trace "X" (q1'))))))} in (trace "X" (let {q2'0 = (trace "X" ((trace "X" (ileaf (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" ((tx (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((te (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (p))))) (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" (q2'0)) (trace "X" (q1'0))))))))))))))))))))))))))))))))))}))))) (trace "X" (i0)) (trace "X" (x5))))));
3938                                                                                                                                                           IBranch it0 it3 x5 x6 -> (trace "X" ((trace "X" (false_rect (trace "X" (x5)) (trace "X" (x6))))))}))))) (trace "X" (i)) (trace "X" (x3))))));
3939                                                                                                                   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" (__))))))}
3940                                            in
3941                                            (trace "X" ((trace "X" (unsafeCoerce (trace "X" (h0)) (trace "X" (x)) (trace "X" (x0))))))))})))));
3942                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" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (p))))))))))))))
3943                 (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ ->
3944                               (trace "X" (case (trace "X" (vars)) of {
3945                                            T_Leaf o -> (trace "X" (false_rect));
3946                                            T_Branch vars1 vars2 ->
3947                                             (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" (vars1)) (trace "X" (__U03a3___U2081_)) (trace "X" (__U03c3___U2082_)) (trace "X" (p))))))) (trace "X" ((\pf ->
3948                                                                       (trace "X" (let {__U03be_' = (trace "X" ((trace "X" (update___U03be_ (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___U2082_))))) (trace "X" (([]))))))))))} in
3949                                                                                   (trace "X" (case (trace "X" (x_)) of {
3950                                                                                                INone -> (trace "X" (false_rect));
3951                                                                                                ILeaf i x -> (trace "X" ((trace "X" (false_rect (trace "X" (x))))));
3952                                                                                                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___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (p)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (p)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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_0)) (trace "X" (vars2)) (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" (vars1)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (pf))))))))))) (trace "X" (__))))))) (trace "X" ((\x1' -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (p))))) (trace "X" ((let {x0'0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (p))))) (trace "X" (x0'))))))} in (trace "X" (let {x1'0 = (trace "X" ((trace "X" (ileaf (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (p))))) (trace "X" (x1'))))))} in (trace "X" (ELet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03be_0)) (trace "X" (__U03c3___U2082_)) (trace "X" (__U03c3___U2081_)) (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))))))))})))))))))))}))))))))));
3953                RVoid __U0393_0 __U0394_0 -> (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" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ -> (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" (INone))))))))))))));
3954                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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (y))))) (trace "X" (x))))))))))))))))))))))))))))))))));
3955                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" ((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" (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (haskTAll (trace "X" (__U0393_0)) (trace "X" (__U03ba_)) (trace "X" (__U03c3_))))))))) (trace "X" (a))))) (trace "X" ((let {x0 = (trace "X" ((trace "X" (ileaf (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" (a)))))))))) (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)))))))))))))))))))))))))))))));
3956                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" ((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" (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (l))))) (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" ((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" (x))))))))))))))))))))))))))))))))));
3957                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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((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" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (y))))) (trace "X" (x))))))))))))))))))))))))))))))))));
3958                RLetRec __U0393_0 __U0394_0 lri x y t ->
3959                 (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" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (t))))))) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (x)))))))) (trace "X" (y))))))))))))) (trace "X" (x_))))))} in
3960                             (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" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (t))))))))))))))
3961                             (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ ->
3962                                           (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 ->
3963                                                                     (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___U03be_ (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 ->
3964                                                                                               (trace "X" ((trace "X" (returnM (trace "X" ((trace "X" ((freshMon (trace "X" (freshM))))))) (trace "X" ((ILeaf (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (t)))))
3965                                                                                                                         (trace "X" ((case (trace "X" (x0)) of {
3966                                                                                                                                       INone -> (trace "X" (false_rect));
3967                                                                                                                                       ILeaf i x1 -> (trace "X" ((trace "X" (false_rect (trace "X" (x1))))));
3968                                                                                                                                       IBranch it1 it2 x1 x2 -> (trace "X" ((trace "X" (eq_rect (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (t))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (eq_rect (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (t))))))) (trace "X" (y))))))) (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___U03be_ (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" ((let {x5 = (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" (x4)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update___U03be_ (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))))))))))))))))} in (trace "X" ((trace "X" (eq_rect_r (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((update___U03be_ (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" (x5)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\x6 -> (trace "X" ((trace "X" (update___U03be_ (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" (x6)))))))))))))) (trace "X" (__U03be_vars))))))))))))))))))) (trace "X" ((trace "X" ((ileaf (trace "X" ((MkLeveledHaskType (trace "X" (x)) (trace "X" (t))))) (trace "X" (x3)))))))))))) (trace "X" (lri)) (trace "X" (__))))))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__)) (trace "X" (x1)) (trace "X" (x2))))))}))))))))))))))))))))))))))))))))));
3969                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" ((MkLeveledHaskType (trace "X" (tbranches)) (trace "X" (lev))))))))))))))
3970                 (trace "X" ((unsafeCoerce (trace "X" ((\__U03be_0 vars _ ->
3971                               (trace "X" (case (trace "X" (x_)) of {
3972                                            INone -> (trace "X" (false_rect));
3973                                            ILeaf i x -> (trace "X" ((trace "X" (false_rect (trace "X" (x))))));
3974                                            IBranch it1 it2 x x0 ->
3975                                             (trace "X" (let {
3976                                                          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" ((\_ ->
3977                                                                                         (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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (avars))))))))) (trace "X" (lev)))))))))))))))))))) (trace "X" ((\x1 x2 ->
3978                                                                                                                   (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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (avars))))))))) (trace "X" (lev)))))))))))))) (trace "X" (x2))))))} in
3979                                                                                                                               (trace "X" (case (trace "X" (vars)) of {
3980                                                                                                                                            T_Leaf o -> (trace "X" (false_rect));
3981                                                                                                                                            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" ((MkLeveledHaskType (trace "X" (tbranches)) (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" ((trace "X" ((ileaf (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (caseType (trace "X" (__U0393_0)) (trace "X" (tc)) (trace "X" (avars))))))))) (trace "X" (lev))))) (trace "X" (x4))))))) (trace "X" (y))))))))))))))))))))))))))))))))))))))}))))))) (trace "X" (it2))))))))) (trace "X" (it1)) (trace "X" (__))))))}
3982                                                         in
3983                                                         (trace "X" ((trace "X" (unsafeCoerce (trace "X" (h0)) (trace "X" (x)) (trace "X" (x0))))))))}))))))))))}))
3984
3985 closed2expr :: (EqDecidable a1) -> (FreshMonad a1) -> (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> (SIND Judg Rule) -> (ITree Judg (Judg2exprType a1)) -> ITree Judg (Judg2exprType a1)
3986 closed2expr eqdec_vv freshM h j pn x =
3987   (trace "X" (case (trace "X" (pn)) of {
3988                Scnd_weak c -> (trace "X" (INone));
3989                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)))))))))));
3990                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)))))))))}))
3991
3992 manyFresh :: (EqDecidable a1) -> (FreshMonad a1) -> TypeEnv -> (Tree (Prelude.Maybe LeveledHaskType)) -> (a1 -> LeveledHaskType) -> FreshM a1 (SigT (Tree (Prelude.Maybe a1)) (SigT (a1 -> LeveledHaskType) ()))
3993 manyFresh eqdec_vv freshM __U0393_0 __U03a3_ =
3994   (trace "X" ((trace "X" (tree_rect (trace "X" ((\a __U03be_0 ->
3995                             (trace "X" (case (trace "X" (a)) of {
3996                                          Prelude.Just l -> (trace "X" (case (trace "X" (l)) of {
3997                                                                         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___U03be_ (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" (__)))))))))))))))))))))}));
3998                                          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 ->
3999                             (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 ->
4000                                                       (trace "X" (case (trace "X" (f1)) of {
4001                                                                    ExistT vars1 s ->
4002                                                                     (trace "X" (case (trace "X" (s)) of {
4003                                                                                  ExistT __U03be_1 _ ->
4004                                                                                   (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 ->
4005                                                                                                             (trace "X" (case (trace "X" (f2)) of {
4006                                                                                                                          ExistT vars2 s0 -> (trace "X" (case (trace "X" (s0)) of {
4007                                                                                                                                                          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_))))))
4008
4009 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)))
4010 proof2expr eqdec_vv freshM __U0393_0 __U0394_0 __U03c4_ __U03a3_ __U03be_0 zz pf =
4011   (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" (__U03c4_))))))))))))))))) (trace "X" (pf)) (trace "X" ((Scnd_weak (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))} in
4012               (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" (__U03c4_))))))))))))))))) (trace "X" (cnd)) (trace "X" (INone))))))} in
4013                           (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" (__U03c4_))))))))))) (trace "X" (cnd0))))))} in
4014                                       (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 ->
4015                                                                 (trace "X" (case (trace "X" (__U03be_vars)) of {
4016                                                                              ExistT vars __U03be_pf -> (trace "X" (case (trace "X" (__U03be_pf)) of {
4017                                                                                                                     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" (__U03c4_)) (trace "X" (it))))))))))))))))))))))))}))})))))))))))))))
4018
4019 unleaves_ :: (([]) a1) -> Tree (Prelude.Maybe a1)
4020 unleaves_ l =
4021   (trace "X" (case (trace "X" (l)) of {
4022                ([]) -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4023                (:) a b ->
4024                 (trace "X" (case (trace "X" (b)) of {
4025                              ([]) -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" (a)))))));
4026                              (:) 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)))))))))}))}))
4027
4028 getjlev :: TypeEnv -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskLevel
4029 getjlev __U0393_0 tt =
4030   (trace "X" (case (trace "X" (tt)) of {
4031                T_Leaf o ->
4032                 (trace "X" (case (trace "X" (o)) of {
4033                              Prelude.Just l -> (trace "X" (case (trace "X" (l)) of {
4034                                                             MkLeveledHaskType h lev -> (trace "X" (lev))}));
4035                              Prelude.Nothing -> (trace "X" (([])))}));
4036                T_Branch b1 b2 ->
4037                 (trace "X" (case (trace "X" ((trace "X" (getjlev (trace "X" (__U0393_0)) (trace "X" (b1)))))) of {
4038                              ([]) -> (trace "X" ((trace "X" (getjlev (trace "X" (__U0393_0)) (trace "X" (b2))))));
4039                              (:) h l -> (trace "X" ((:) (trace "X" (h)) (trace "X" (l))))}))}))
4040
4041 take_trustme :: TypeEnv -> Nat -> (() -> (InstantiatedTypeEnv ()) -> ([]) (RawHaskType ())) -> ([]) HaskType
4042 take_trustme __U0393_0 n l =
4043   (trace "X" (case (trace "X" (n)) of {
4044                O -> (trace "X" (([])));
4045                S n' -> (trace "X" ((:) (trace "X" ((\_ ite ->
4046                 (trace "X" (case (trace "X" ((trace "X" (l (trace "X" (__)) (trace "X" (ite)))))) of {
4047                              ([]) -> (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" ([]))))))))))))))))))))))))))))))))))));
4048                              (:) a b -> (trace "X" (a))})))))
4049                 (trace "X" ((trace "X" ((take_trustme (trace "X" (__U0393_0)) (trace "X" (n')) (trace "X" ((\_ ite ->
4050                                           (trace "X" (case (trace "X" ((trace "X" (l (trace "X" (__)) (trace "X" (ite)))))) of {
4051                                                        ([]) -> (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" ([]))))))))))))))))))))))))))))))))))));
4052                                                        (:) a b -> (trace "X" (b))}))))))))))))}))
4053
4054 take_arg_types_as_tree :: TypeEnv -> HaskType -> Tree (Prelude.Maybe HaskType)
4055 take_arg_types_as_tree __U0393_0 ht =
4056   (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)))))))))))))))))))))))
4057
4058 drop_arg_types_as_tree :: TypeEnv -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
4059 drop_arg_types_as_tree __U0393_0 ht ite =
4060   (trace "X" ((trace "X" (drop_arg_types (trace "X" (KindStar)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ht)) (trace "X" (__)) (trace "X" (ite)))))))))))
4061
4062 take_arrange :: TypeEnv -> HaskType -> HaskType -> HaskLevel -> Arrange LeveledHaskType
4063 take_arrange __U0393_0 tx te lev =
4064   (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
4065               (trace "X" (case (trace "X" (s)) of {
4066                            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)))))))))))))))))))));
4067                            Prelude.False ->
4068                             (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
4069                                         (trace "X" (case (trace "X" (n0)) of {
4070                                                      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))))));
4071                                                      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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))))}))))
4072
4073 take_unarrange :: TypeEnv -> HaskType -> HaskType -> HaskLevel -> Arrange LeveledHaskType
4074 take_unarrange __U0393_0 tx te lev =
4075   (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
4076               (trace "X" (case (trace "X" (s)) of {
4077                            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)))))))))))))))))))));
4078                            Prelude.False ->
4079                             (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
4080                                         (trace "X" (case (trace "X" (n0)) of {
4081                                                      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))))));
4082                                                      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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))))}))))
4083
4084 data SRule =
4085    SFlat (Tree (Prelude.Maybe Judg)) (Tree (Prelude.Maybe Judg)) Rule
4086  | SBrak TypeEnv CoercionEnv HaskType HaskTyVar (Tree (Prelude.Maybe LeveledHaskType)) (([]) HaskTyVar)
4087  | SEsc TypeEnv CoercionEnv HaskType HaskTyVar (Tree (Prelude.Maybe LeveledHaskType)) HaskLevel
4088
4089 take_arg_types_as_tree' :: TypeEnv -> LeveledHaskType -> Tree (Prelude.Maybe LeveledHaskType)
4090 take_arg_types_as_tree' __U0393_0 lt =
4091   (trace "X" (case (trace "X" (lt)) of {
4092                MkLeveledHaskType t l -> (trace "X" ((trace "X" (mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (l))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))))))}))
4093
4094 drop_arg_types_as_tree' :: TypeEnv -> LeveledHaskType -> LeveledHaskType
4095 drop_arg_types_as_tree' __U0393_0 lt =
4096   (trace "X" (case (trace "X" (lt)) of {
4097                MkLeveledHaskType t l -> (trace "X" (MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t))))))))) (trace "X" (l))))}))
4098
4099 skolemize_judgment :: Judg -> Judg
4100 skolemize_judgment j =
4101   (trace "X" (case (trace "X" (j)) of {
4102                MkJudg __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ ->
4103                 (trace "X" (case (trace "X" ((trace "X" (getjlev (trace "X" (__U0393_0)) (trace "X" (__U03a3___U2082_)))))) of {
4104                              ([]) -> (trace "X" (j));
4105                              (:) 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" ((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" ((trace "X" ((drop_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (__U03a3___U2082_)))))))))}))}))
4106
4107 check_hof :: TypeEnv -> HaskType -> Prelude.Bool
4108 check_hof __U0393_0 t =
4109   (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
4110               (trace "X" (case (trace "X" (s)) of {
4111                            Prelude.True ->
4112                             (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
4113                                         (trace "X" (case (trace "X" (s0)) of {
4114                                                      Prelude.True -> (trace "X" (Prelude.False));
4115                                                      Prelude.False -> (trace "X" (Prelude.True))}))));
4116                            Prelude.False -> (trace "X" (Prelude.True))}))))
4117
4118 skolemize_proof :: (Tree (Prelude.Maybe Judg)) -> (Tree (Prelude.Maybe Judg)) -> (ND Judg Rule) -> ND Judg SRule
4119 skolemize_proof h c x =
4120   (trace "X" ((trace "X" (nd_map' (trace "X" (skolemize_judgment)) (trace "X" ((\h0 c0 x0 ->
4121                             (trace "X" (case (trace "X" (x0)) of {
4122                                          RArrange __U0393_0 __U0394_0 a b x1 d ->
4123                                           (trace "X" (let {h1 = (trace "X" ((trace "X" (getjlev (trace "X" (__U0393_0)) (trace "X" (x1))))))} in
4124                                                       (trace "X" (case (trace "X" (h1)) of {
4125                                                                    ([]) -> (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" ((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" ((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" ((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" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (a)) (trace "X" (b)) (trace "X" (x1)) (trace "X" (d))))))))));
4126                                                                    (:) h2 h3 -> (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" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (x1)))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((drop_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (x1)))))))))))))))) (trace "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" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (x1)))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((drop_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (x1)))))))))))))))) (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" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (x1)))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((drop_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (x1)))))))))))))))) (trace "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" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (x1)))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((drop_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (x1)))))))))))))))) (trace "X" ((RArrange (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Branch (trace "X" (a)) (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" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (x1)))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((trace "X" ((drop_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (x1))))))) (trace "X" ((RRight (trace "X" (a)) (trace "X" (b)) (trace "X" ((trace "X" ((mapOptionTreeAndFlatten (trace "X" ((trace "X" ((take_arg_types_as_tree' (trace "X" (__U0393_0))))))) (trace "X" (x1))))))) (trace "X" (d)))))))))))))}))));
4127                                          RBrak __U0393_0 __U0394_0 t ec succ lev ->
4128                                           (trace "X" (case (trace "X" (lev)) of {
4129                                                        ([]) -> (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" (([]))))))));
4130                                                        (:) 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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4131                                          REsc __U0393_0 __U0394_0 t ec succ lev ->
4132                                           (trace "X" (case (trace "X" (lev)) of {
4133                                                        ([]) -> (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" (([]))))))));
4134                                                        (:) 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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4135                                          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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (l)))))))))))))))))))))))))
4136                                           (trace "X" ((case (trace "X" (l)) of {
4137                                                         ([]) -> (trace "X" (RNote (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" (__U03c4_)) (trace "X" (([]))) (trace "X" (n))));
4138                                                         (:) 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))))}))))))));
4139                                          RLit __U0393_0 __U0394_0 l l0 ->
4140                                           (trace "X" (case (trace "X" (l0)) of {
4141                                                        ([]) -> (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" (([])))))))))));
4142                                                        (:) h1 l1 ->
4143                                                         (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
4144                                                                     (trace "X" (case (trace "X" (hof)) of {
4145                                                                                  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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
4146                                                                                  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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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))))))))))))))))))}))))}));
4147                                          RVar __U0393_0 __U0394_0 __U03c3_ lev ->
4148                                           (trace "X" (case (trace "X" (lev)) of {
4149                                                        ([]) -> (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (([]))))))))))))))))))))) (trace "X" ((RVar (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03c3_)) (trace "X" (([])))))))))));
4150                                                        (:) h1 lev0 ->
4151                                                         (trace "X" (let {hof = (trace "X" ((trace "X" (check_hof (trace "X" (__U0393_0)) (trace "X" (__U03c3_))))))} in
4152                                                                     (trace "X" (case (trace "X" (hof)) of {
4153                                                                                  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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
4154                                                                                  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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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_)))))))))))}))))}));
4155                                          RGlobal __U0393_0 __U0394_0 __U03c3_ l wev ->
4156                                           (trace "X" (case (trace "X" (__U03c3_)) of {
4157                                                        ([]) -> (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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))))))))));
4158                                                        (:) h1 __U03c3_0 ->
4159                                                         (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
4160                                                                     (trace "X" (case (trace "X" (hof)) of {
4161                                                                                  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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
4162                                                                                  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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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))))))))))))))))))}))))}));
4163                                          RLam __U0393_0 __U0394_0 __U03a3_ tx te lev ->
4164                                           (trace "X" (case (trace "X" (lev)) of {
4165                                                        ([]) -> (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" ((MkLeveledHaskType (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" ((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" ((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" ((MkLeveledHaskType (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" ((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" ((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" (([])))))))))));
4166                                                        (:) 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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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)))))))))))))))))))))))}));
4167                                          RCast __U0393_0 __U0394_0 __U03a3_ __U03c3_ __U03c4_ lev ->
4168                                           (trace "X" (case (trace "X" (lev)) of {
4169                                                        ([]) -> (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" (([])))))))))));
4170                                                        (:) 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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4171                                          RJoin __U0393_0 p lri m x1 q ->
4172                                           (trace "X" (let {h1 = (trace "X" ((trace "X" (getjlev (trace "X" (__U0393_0)) (trace "X" (x1))))))} in
4173                                                       (trace "X" (case (trace "X" (h1)) of {
4174                                                                    ([]) ->
4175                                                                     (trace "X" (let {h2 = (trace "X" ((trace "X" (getjlev (trace "X" (__U0393_0)) (trace "X" (q))))))} in
4176                                                                                 (trace "X" (case (trace "X" (h2)) of {
4177                                                                                              ([]) -> (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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (m)) (trace "X" (q)))))))))))))) (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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (m)) (trace "X" (q)))))))))))))) (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" ((RJoin (trace "X" (__U0393_0)) (trace "X" (p)) (trace "X" (lri)) (trace "X" (m)) (trace "X" (x1)) (trace "X" (q))))))))));
4178                                                                                              (:) h3 h4 -> (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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))));
4179                                                                    (:) h2 h3 -> (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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))));
4180                                          RApp __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ tx te lev ->
4181                                           (trace "X" (case (trace "X" (lev)) of {
4182                                                        ([]) -> (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" ((MkLeveledHaskType (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" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (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" ((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" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (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" ((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" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" (([])))))))))));
4183                                                        (:) h1 lev0 ->
4184                                                         (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)))))))))
4185                                                                                   (trace "X" ((let {hof_tx = (trace "X" ((trace "X" (check_hof (trace "X" (__U0393_0)) (trace "X" (tx))))))} in
4186                                                                                                (trace "X" (case (trace "X" (hof_tx)) of {
4187                                                                                                             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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
4188                                                                                                             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" ((let {q = (trace "X" (RLet (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" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))))))))) (trace "X" (__U03a3___U2081_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (te))))))))) (trace "X" (tx)) (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" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" ((\_ 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" ((MkLeveledHaskType (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" (__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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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_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_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" ((\_ 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" ((MkLeveledHaskType (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___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" (__U03a3___U2081_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" (__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" ((MkLeveledHaskType (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_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_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" ((\_ 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" ((MkLeveledHaskType (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_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" ((MkLeveledHaskType (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___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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" (__U03a3___U2081_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" ((\_ 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" ((MkLeveledHaskType (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___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___U2081_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___U2081_)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RCanR (trace "X" (__U03a3___U2081_)))))))))))))) (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" ((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" ((MkLeveledHaskType (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___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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" ((\_ 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" ((MkLeveledHaskType (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___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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" ((\_ 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_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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" (__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" ((\_ 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___U2082_)) (trace "X" ((T_Branch (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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))))))))) (trace "X" ((T_Branch (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" ((MkLeveledHaskType (trace "X" (tx)) (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" ((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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" (__U03a3___U2082_)) (trace "X" ((RComp (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" ((T_Branch (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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (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" ((RExch (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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))))))))) (trace "X" ((RAssoc (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" ((MkLeveledHaskType (trace "X" (tx)) (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" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" (__U03a3___U2081_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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___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" (__U03a3___U2081_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" (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" ((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" (__U03a3___U2081_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" (__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" ((MkLeveledHaskType (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___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" (__U03a3___U2081_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" (__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" ((MkLeveledHaskType (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___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" (__U03a3___U2081_))))) (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" ((MkLeveledHaskType (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" ((RExch (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" ((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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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)))))))))))))))))))))))}));
4189                                          RLet __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03c3___U2081_ __U03c3___U2082_ lev ->
4190                                           (trace "X" (case (trace "X" (lev)) of {
4191                                                        ([]) -> (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___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (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___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (([]))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (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" (([])))))))))));
4192                                                        (:) h1 lev0 ->
4193                                                         (trace "X" (let {hof_tx = (trace "X" ((trace "X" (check_hof (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_))))))} in
4194                                                                     (trace "X" (case (trace "X" (hof_tx)) of {
4195                                                                                  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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
4196                                                                                  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___U2082_)) (trace "X" ((let {q = (trace "X" (RLet (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" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_)) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (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" ((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" ((MkLeveledHaskType (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_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" (__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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (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" (__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" ((MkLeveledHaskType (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_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))) (trace "X" (__U03a3___U2082_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (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" (__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" ((MkLeveledHaskType (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_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))) (trace "X" (__U03a3___U2082_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (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" (__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" ((MkLeveledHaskType (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_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (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___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" ((MkLeveledHaskType (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_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((MkLeveledHaskType (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" ((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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" (__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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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___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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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___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" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RCanR (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" ((T_Branch (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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___U2082_)) (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" (__U03c3___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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___U2082_)) (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" (__U03c3___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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___U2082_)) (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" (__U03c3___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_))))))))))))))) (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___U2082_)) (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" (__U03c3___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RCossa (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_)))))))))))))))))))))))) (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.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" (__U03a3___U2081_)) (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_)))))))))))))))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (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___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RLeft (trace "X" ((T_Branch (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03c3___U2081_))))))))))))))) (trace "X" ((T_Branch (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___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" (__U03a3___U2081_)) (trace "X" ((RExch (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___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((T_Branch (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___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((T_Branch (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___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))))))))) (trace "X" ((T_Branch (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" (__U03c3___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RAssoc (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" (__U03c3___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (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" (__U03a3___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (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___U2082_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (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" ((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" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))) (trace "X" (__U03a3___U2082_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))) (trace "X" (__U03a3___U2082_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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" (__U03c3___U2081_))))))))))))))) (trace "X" (__U03a3___U2082_))))) (trace "X" ((T_Branch (trace "X" (__U03a3___U2081_)) (trace "X" ((T_Branch (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___U2081_)))))))))))) (trace "X" (__U03a3___U2082_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RCossa (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" (__U03c3___U2081_)))))))))))) (trace "X" (__U03a3___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" ((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___U2081_)))))))))))) (trace "X" (__U03a3___U2082_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((T_Branch (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___U2081_)))))))))))) (trace "X" (__U03a3___U2082_)))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((T_Branch (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___U2081_)))))))))))) (trace "X" (__U03a3___U2082_)))))))) (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___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (trace "X" (((:) (trace "X" (h1)) (trace "X" (lev0)))))))))))))) (trace "X" ((RLeft (trace "X" ((T_Branch (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___U2081_)))))))))))) (trace "X" (__U03a3___U2082_))))) (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___U2081_))))))))))))))) (trace "X" (__U03a3___U2081_)) (trace "X" ((RExch (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___U2081_)))))))))))))))))))))))))))))) (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___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" (__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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" (__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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (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" ((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___U2081_)))))))))))))))))) (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___U2081_))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2081_))))))))) (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___U2081_))))))))))))))))))))))))))))) (trace "X" ((\_ -> (trace "X" ((trace "X" (drop_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))))) (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (__U03c3___U2082_)))))))))))}))))}));
4197                                          RVoid __U0393_0 __U0394_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.Nothing)))))))))))))) (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" ((RVoid (trace "X" (__U0393_0)) (trace "X" (__U0394_0))))))))));
4198                                          RAppT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ __U03c4_ lev ->
4199                                           (trace "X" (case (trace "X" (lev)) of {
4200                                                        ([]) -> (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" (([])))))))))));
4201                                                        (:) 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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4202                                          RAbsT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ lev ->
4203                                           (trace "X" (case (trace "X" (lev)) of {
4204                                                        ([]) -> (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" ((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" ((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" ((MkLeveledHaskType (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" ((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" ((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" ((MkLeveledHaskType (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" (([])))))))))));
4205                                                        (:) 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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4206                                          RAppCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3___U2081_ __U03c3___U2082_ __U03c3_ lev ->
4207                                           (trace "X" (case (trace "X" (lev)) of {
4208                                                        ([]) -> (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" ((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" (([]))))))))))))))))))))) (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" ((MkLeveledHaskType (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" ((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" (([]))))))))))))))))))))) (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" ((MkLeveledHaskType (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" (([])))))))))));
4209                                                        (:) 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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4210                                          RAbsCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ __U03c3___U2081_ __U03c3___U2082_ lev ->
4211                                           (trace "X" (case (trace "X" (lev)) of {
4212                                                        ([]) -> (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" (([])))))))))));
4213                                                        (:) 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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4214                                          RLetRec __U0393_0 __U0394_0 lri x1 y t ->
4215                                           (trace "X" (case (trace "X" (t)) of {
4216                                                        ([]) ->
4217                                                         (trace "X" (let {h1 = (trace "X" ((trace "X" (getjlev (trace "X" (__U0393_0)) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (([])))))))) (trace "X" (y)))))))))))} in
4218                                                                     (trace "X" (case (trace "X" (h1)) of {
4219                                                                                  ([]) -> (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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x1)) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (([])))))))) (trace "X" (y))))))))))))))))))) (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" ((MkLeveledHaskType (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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (x1)) (trace "X" (([])))))))))))) (trace "X" ((trace "X" ((mapOptionTree (trace "X" ((\t' -> (trace "X" (MkLeveledHaskType (trace "X" (t')) (trace "X" (([])))))))) (trace "X" (y))))))))))))))))))) (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" ((MkLeveledHaskType (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" (([])))))))))));
4220                                                                                  (:) h2 h3 -> (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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))));
4221                                                        (:) 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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
4222                                          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))))))
4223
4224 getlev :: TypeEnv -> Kind -> LeveledHaskType -> HaskLevel
4225 getlev __U0393_0 __U03ba_ lht =
4226   (trace "X" (case (trace "X" (lht)) of {
4227                MkLeveledHaskType t l -> (trace "X" (l))}))
4228
4229 arrange :: (Tree (Prelude.Maybe a1)) -> (a1 -> Prelude.Bool) -> Arrange a1
4230 arrange __U03a3_ f =
4231   (trace "X" ((trace "X" (tree_rect (trace "X" ((\a ->
4232                             (trace "X" (case (trace "X" (a)) of {
4233                                          Prelude.Just t ->
4234                                           (trace "X" (let {b = (trace "X" ((trace "X" (f (trace "X" (t))))))} in
4235                                                       (trace "X" (case (trace "X" (b)) of {
4236                                                                    Prelude.True -> (trace "X" (RuCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t))))))))));
4237                                                                    Prelude.False -> (trace "X" (RuCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t))))))))))}))));
4238                                          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_))))))
4239
4240 arrange' :: (Tree (Prelude.Maybe a1)) -> (a1 -> Prelude.Bool) -> Arrange a1
4241 arrange' __U03a3_ f =
4242   (trace "X" ((trace "X" (tree_rect (trace "X" ((\a ->
4243                             (trace "X" (case (trace "X" (a)) of {
4244                                          Prelude.Just t ->
4245                                           (trace "X" (let {b = (trace "X" ((trace "X" (f (trace "X" (t))))))} in
4246                                                       (trace "X" (case (trace "X" (b)) of {
4247                                                                    Prelude.True -> (trace "X" (RCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t))))))))));
4248                                                                    Prelude.False -> (trace "X" (RCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" (t))))))))))}))));
4249                                          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_))))))
4250
4251 v2t :: TypeEnv -> HaskTyVar -> (InstantiatedTypeEnv a1) -> RawHaskType a1
4252 v2t __U0393_0 ec ite =
4253   (trace "X" (TVar (trace "X" (eCKind)) (trace "X" ((trace "X" ((unsafeCoerce (trace "X" (ec)) (trace "X" (__)) (trace "X" (ite)))))))))
4254
4255 levelMatch :: TypeEnv -> HaskLevel -> LeveledHaskType -> Prelude.Bool
4256 levelMatch __U0393_0 lev t =
4257   (trace "X" (case (trace "X" (t)) of {
4258                MkLeveledHaskType ttype tlev ->
4259                 (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 {
4260                              Prelude.True -> (trace "X" (Prelude.True));
4261                              Prelude.False -> (trace "X" (Prelude.False))}))}))
4262
4263 mkDropFlags :: TypeEnv -> HaskLevel -> (Tree (Prelude.Maybe LeveledHaskType)) -> TreeFlags (Prelude.Maybe LeveledHaskType)
4264 mkDropFlags __U0393_0 lev tt =
4265   (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))))))
4266
4267 drop_lev :: TypeEnv -> HaskLevel -> (Tree (Prelude.Maybe LeveledHaskType)) -> Tree (Prelude.Maybe LeveledHaskType)
4268 drop_lev __U0393_0 lev tt =
4269   (trace "X" ((trace "X" (dropT (trace "X" (tt)) (trace "X" ((trace "X" ((mkDropFlags (trace "X" (__U0393_0)) (trace "X" (lev)) (trace "X" (tt)))))))))))
4270
4271 mkTakeFlags :: TypeEnv -> HaskLevel -> (Tree (Prelude.Maybe LeveledHaskType)) -> TreeFlags (Prelude.Maybe LeveledHaskType)
4272 mkTakeFlags __U0393_0 lev tt =
4273   (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))))))
4274
4275 take_lev :: TypeEnv -> HaskLevel -> (Tree (Prelude.Maybe LeveledHaskType)) -> Tree (Prelude.Maybe LeveledHaskType)
4276 take_lev __U0393_0 lev tt =
4277   (trace "X" ((trace "X" (dropT (trace "X" (tt)) (trace "X" ((trace "X" ((mkTakeFlags (trace "X" (__U0393_0)) (trace "X" (lev)) (trace "X" (tt)))))))))))
4278
4279 ga_mk_tree' :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (RawHaskType a1) -> (Tree (Prelude.Maybe (RawHaskType a1))) -> RawHaskType a1
4280 ga_mk_tree' unitTy prodTy ec tr =
4281   (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))))))
4282
4283 ga_mk_tree :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> HaskType -> (Tree (Prelude.Maybe HaskType)) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
4284 ga_mk_tree unitTy prodTy __U0393_0 ec tr ite =
4285   (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)))))))))))
4286
4287 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
4288 ga_mk_raw unitTy prodTy gaTy ec ant suc =
4289   (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)))))))))))
4290
4291 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
4292 ga_mk unitTy prodTy gaTy __U0393_0 ec ant suc ite =
4293   (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)))))))))))
4294
4295 flatten_rawtype :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Kind -> (RawHaskType a1) -> RawHaskType a1
4296 flatten_rawtype unitTy prodTy gaTy __U03ba_ exp =
4297   (trace "X" ((trace "X" (let {
4298                            flatten_rawtype0 __U03ba_0 exp0 =
4299                              (trace "X" (case (trace "X" (exp0)) of {
4300                                           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)))))))));
4301                                           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)))))))));
4302                                           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))))))))))))))));
4303                                           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')))))))))))))))))));
4304                                           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)))))))));
4305                                           x -> (trace "X" (x))}));
4306                            flatten_rawtype_list _ lk exp0 =
4307                              (trace "X" (case (trace "X" (exp0)) of {
4308                                           TyFunApp_nil -> (trace "X" (TyFunApp_nil));
4309                                           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)))))))))}))}
4310                           in flatten_rawtype0 (trace "X" (__U03ba_)) (trace "X" (exp))))))
4311
4312 flatten_type :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> Kind -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
4313 flatten_type unitTy prodTy gaTy __U0393_0 __U03ba_ ht ite =
4314   (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)))))))))))
4315
4316 levels_to_tcode :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> HaskType -> HaskLevel -> (InstantiatedTypeEnv a1) -> RawHaskType a1
4317 levels_to_tcode unitTy prodTy gaTy __U0393_0 ht lev x =
4318   (trace "X" (case (trace "X" (lev)) of {
4319                ([]) -> (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))))));
4320                (:) 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))))))}))
4321
4322 flatten_leveled_type :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> LeveledHaskType -> LeveledHaskType
4323 flatten_leveled_type unitTy prodTy gaTy __U0393_0 ht =
4324   (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" ((getlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (ht)))))))))))))) (trace "X" (([])))))
4325
4326 getjlev0 :: TypeEnv -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskLevel
4327 getjlev0 __U0393_0 tt =
4328   (trace "X" (case (trace "X" (tt)) of {
4329                T_Leaf o ->
4330                 (trace "X" (case (trace "X" (o)) of {
4331                              Prelude.Just l -> (trace "X" (case (trace "X" (l)) of {
4332                                                             MkLeveledHaskType h lev -> (trace "X" (lev))}));
4333                              Prelude.Nothing -> (trace "X" (([])))}));
4334                T_Branch b1 b2 ->
4335                 (trace "X" (case (trace "X" ((trace "X" (getjlev0 (trace "X" (__U0393_0)) (trace "X" (b1)))))) of {
4336                              ([]) -> (trace "X" ((trace "X" (getjlev0 (trace "X" (__U0393_0)) (trace "X" (b2))))));
4337                              (:) h l -> (trace "X" ((:) (trace "X" (h)) (trace "X" (l))))}))}))
4338
4339 flatten_judgment :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Judg -> Judg
4340 flatten_judgment unitTy prodTy gaTy j =
4341   (trace "X" (case (trace "X" (j)) of {
4342                MkJudg __U0393_0 __U0394_0 ant suc ->
4343                 (trace "X" (case (trace "X" ((trace "X" (getjlev0 (trace "X" (__U0393_0)) (trace "X" (suc)))))) of {
4344                              ([]) -> (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" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (suc)))))))));
4345                              (:) 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" ((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" ((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" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" (suc)))))))))))))) (trace "X" (([]))))))))))))))}))}))
4346
4347 data Garrow =
4348    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)
4349
4350 ga_id :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4351 ga_id unitTy prodTy gaTy garrow =
4352   (trace "X" (case (trace "X" (garrow)) of {
4353                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))}))
4354
4355 ga_cancelr :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4356 ga_cancelr unitTy prodTy gaTy garrow =
4357   (trace "X" (case (trace "X" (garrow)) of {
4358                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))}))
4359
4360 ga_cancell :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4361 ga_cancell unitTy prodTy gaTy garrow =
4362   (trace "X" (case (trace "X" (garrow)) of {
4363                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))}))
4364
4365 ga_uncancelr :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4366 ga_uncancelr unitTy prodTy gaTy garrow =
4367   (trace "X" (case (trace "X" (garrow)) of {
4368                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))}))
4369
4370 ga_uncancell :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4371 ga_uncancell unitTy prodTy gaTy garrow =
4372   (trace "X" (case (trace "X" (garrow)) of {
4373                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))}))
4374
4375 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
4376 ga_assoc unitTy prodTy gaTy garrow =
4377   (trace "X" (case (trace "X" (garrow)) of {
4378                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))}))
4379
4380 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
4381 ga_unassoc unitTy prodTy gaTy garrow =
4382   (trace "X" (case (trace "X" (garrow)) of {
4383                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))}))
4384
4385 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
4386 ga_swap unitTy prodTy gaTy garrow =
4387   (trace "X" (case (trace "X" (garrow)) of {
4388                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))}))
4389
4390 ga_drop :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4391 ga_drop unitTy prodTy gaTy garrow =
4392   (trace "X" (case (trace "X" (garrow)) of {
4393                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))}))
4394
4395 ga_copy :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4396 ga_copy unitTy prodTy gaTy garrow =
4397   (trace "X" (case (trace "X" (garrow)) of {
4398                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))}))
4399
4400 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
4401 ga_first unitTy prodTy gaTy garrow =
4402   (trace "X" (case (trace "X" (garrow)) of {
4403                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))}))
4404
4405 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
4406 ga_second unitTy prodTy gaTy garrow =
4407   (trace "X" (case (trace "X" (garrow)) of {
4408                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))}))
4409
4410 ga_lit :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> Literal.Literal -> ND Judg Rule
4411 ga_lit unitTy prodTy gaTy garrow =
4412   (trace "X" (case (trace "X" (garrow)) of {
4413                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))}))
4414
4415 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
4416 ga_curry unitTy prodTy gaTy garrow =
4417   (trace "X" (case (trace "X" (garrow)) of {
4418                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))}))
4419
4420 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
4421 ga_comp unitTy prodTy gaTy garrow =
4422   (trace "X" (case (trace "X" (garrow)) of {
4423                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))}))
4424
4425 boost :: TypeEnv -> CoercionEnv -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskType -> HaskType -> HaskLevel -> (ND Judg Rule) -> ND Judg Rule
4426 boost __U0393_0 __U0394_0 ant x y lev x0 =
4427   (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" ((MkLeveledHaskType (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.Nothing))))) (trace "X" (ant))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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.Nothing))))) (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" ((MkLeveledHaskType (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" (ant))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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.Nothing))))) (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((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" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (ant)) (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" ((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" (x)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" (x)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" (x)) (trace "X" (lev)))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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.Nothing))))) (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" ((MkLeveledHaskType (trace "X" (y)) (trace "X" (lev))))))))))) (trace "X" ((RuCanL (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" ((MkLeveledHaskType (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.Nothing))))) (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" ((MkLeveledHaskType (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" (ant))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (y)) (trace "X" (lev)))))))))))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (ant)) (trace "X" (y)) (trace "X" (x)) (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" (ant))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" (y)) (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" (ant))))) (trace "X" (ant)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (y)) (trace "X" (lev))))))))))) (trace "X" ((RCanL (trace "X" (ant)))))))))))))
4428
4429 postcompose' :: (() -> (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
4430 postcompose' unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec lev a b c __U03a3_ x =
4431   (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" (b)) (trace "X" (c))))))))) (trace "X" (lev))))))))))) (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" (a)) (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.Just (trace "X" ((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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (c))))))))) (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.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" ((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" ((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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (b))))))))) (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" (a)) (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" (b)) (trace "X" (c))))))))) (trace "X" (lev))))))))))) (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" (a)) (trace "X" (c))))))))) (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" (__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" (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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (b))))))))) (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" (a)) (trace "X" (c))))))))) (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" (__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" (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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (b))))))))) (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" (a)) (trace "X" (c))))))))) (trace "X" (lev)))))))))))))))))))) (trace "X" (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.Just (trace "X" ((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" ((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" (b)) (trace "X" (c))))))))) (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" (a)) (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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (b))))))))) (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" (a)) (trace "X" (c))))))))) (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" (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" (ec)) (trace "X" (a)) (trace "X" (b))))))))) (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" (b)) (trace "X" (c))))))))) (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" (a)) (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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (b))))))))) (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" (a)) (trace "X" (c))))))))) (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" (a)) (trace "X" (b))))))))) (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" (b)) (trace "X" (c))))))))) (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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (b))))))))) (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" (a)) (trace "X" (c))))))))) (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" (b)) (trace "X" (c))))))))) (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" (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" ((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" ((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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (b))))))))) (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" (a)) (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" (b)) (trace "X" (c))))))))) (trace "X" (lev))))))))))) (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" (a)) (trace "X" (c))))))))) (trace "X" (lev)))))))))))))))))))) (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" (b)) (trace "X" (c))))))))) (trace "X" (lev))))))))))) (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" (a)) (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" (ec)) (trace "X" (a)) (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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" (b)) (trace "X" (c))))))))) (trace "X" (lev))))))))))) (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" (a)) (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.Just (trace "X" ((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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (c))))))))) (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" (b)) (trace "X" (c))))))))) (trace "X" (lev))))))))))) (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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (c))))))))) (trace "X" (lev))))))))))) (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" (b)) (trace "X" (c))))))))) (trace "X" (lev))))))))))))))))))))))
4432
4433 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
4434 precompose unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec a x y z lev =
4435   (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" ((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" ((MkJudg (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" ((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" (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" ((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" (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" ((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" ((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" (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.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" ((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" ((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" ((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" (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" ((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" (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" ((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.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" ((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" ((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" ((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" (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" ((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" ((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_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" (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" ((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" ((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" (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" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (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" (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" ((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" (z))))))))) (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" ((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" ((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" ((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" (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" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (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" (z))))))))) (trace "X" (lev)))))))))))))))))))) (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" (x)) (trace "X" (y))))))))) (trace "X" (lev))))))))))) (trace "X" (a)) (trace "X" ((\_ -> (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" ((\_ -> (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_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" (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" (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" ((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" (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" (a))))) (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" ((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" (z))))))))) (trace "X" (lev))))))))))) (trace "X" ((RExch (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))))))))))))))))))))))))))))
4436
4437 precompose' :: (() -> (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
4438 precompose' unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec lev a b c __U03a3_ x =
4439   (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" ((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" (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.Just (trace "X" ((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" ((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" (c))))))))) (trace "X" (lev)))))))))))))))))))) (trace "X" (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" (ec)) (trace "X" (__U03a3_)) (trace "X" (a)) (trace "X" (b)) (trace "X" (c)) (trace "X" (lev)))))))))
4440
4441 postcompose :: (() -> (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) -> ND Judg Rule
4442 postcompose unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec lev a b c x =
4443   (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" (b)) (trace "X" (c))))))))) (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" (a)) (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_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (c))))))))) (trace "X" (lev)))))))))))))))))))) (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" (lev)) (trace "X" (a)) (trace "X" (b)) (trace "X" (c)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (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" (b)) (trace "X" (c))))))))) (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" (a)) (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_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (c))))))))) (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" (b)) (trace "X" (c))))))))) (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" (b)) (trace "X" (c))))))))) (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" (a)) (trace "X" (c))))))))) (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" (b)) (trace "X" (c))))))))) (trace "X" (lev))))))))))))))))))))))
4444
4445 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
4446 firstify unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec lev a b c __U03a3_ x =
4447   (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" (__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_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" ((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" (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.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" ((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" ((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" (a)) (trace "X" (b))))))))) (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" ((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.Nothing))))) (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_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.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_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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" (a)) (trace "X" (b))))))))) (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" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))) (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" (__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" (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.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" (a)) (trace "X" (b))))))))) (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" ((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" ((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" ((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" (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.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" (a)) (trace "X" (b))))))))) (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" ((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" ((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" (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.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" (a)) (trace "X" (b))))))))) (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" ((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.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" (a)) (trace "X" (b))))))))) (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" ((T_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RuCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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" ((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" (a)) (trace "X" (b))))))))) (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" ((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.Nothing))))) (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_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" ((T_Leaf (trace "X" (Prelude.Nothing))))) (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" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (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" (ec)) (trace "X" (a)) (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" ((T_Leaf (trace "X" (Prelude.Nothing))))) (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_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" ((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" (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" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3_))))) (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_Branch (trace "X" (a)) (trace "X" (c))))) (trace "X" ((T_Branch (trace "X" (b)) (trace "X" (c)))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RCanL (trace "X" (__U03a3_)))))))))))))
4448
4449 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
4450 secondify unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec lev a b c __U03a3_ x =
4451   (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" (__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_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" ((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" (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.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" ((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" ((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" (a)) (trace "X" (b))))))))) (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" ((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.Nothing))))) (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_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.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_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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" (a)) (trace "X" (b))))))))) (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" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))) (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" (__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" (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.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" (a)) (trace "X" (b))))))))) (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" ((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" ((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" ((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" (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.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" (a)) (trace "X" (b))))))))) (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" ((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" ((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" (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.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" (a)) (trace "X" (b))))))))) (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" ((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.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" (a)) (trace "X" (b))))))))) (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" ((T_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RuCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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" ((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" (a)) (trace "X" (b))))))))) (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" ((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.Nothing))))) (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_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" ((T_Leaf (trace "X" (Prelude.Nothing))))) (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" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (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" (a)) (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" ((T_Leaf (trace "X" (Prelude.Nothing))))) (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_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" ((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" (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" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (__U03a3_))))) (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_Branch (trace "X" (c)) (trace "X" (a))))) (trace "X" ((T_Branch (trace "X" (c)) (trace "X" (b)))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RCanL (trace "X" (__U03a3_)))))))))))))
4452
4453 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
4454 ga_unkappa' unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec l a b __U03a3_ x =
4455   (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" ((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" (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" ((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" ((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_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" ((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" (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" ((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" (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" ((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" (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" ((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" (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" ((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" ((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_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" ((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" (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" ((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" (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" ((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" (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" ((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" ((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_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" ((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" (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" ((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" (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" ((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" ((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" ((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" (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_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" ((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" (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" ((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" (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" ((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" (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" ((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" ((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" ((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" (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" ((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" (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" ((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" (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" ((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" ((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" ((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" (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" (l)) (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" ((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" ((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_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" ((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" ((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" ((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" (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_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" ((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" (b))))))))) (trace "X" (l)))))))))))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (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_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" ((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" ((\_ -> (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" ((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" ((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" ((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_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" ((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" (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" ((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" (b))))))))) (trace "X" (l)))))))))))))))))))) (trace "X" ((RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (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" ((\_ -> (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" ((\_ -> (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))))))))))
4456
4457 ga_kappa' :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> CoercionEnv -> HaskType -> HaskLevel -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> (Tree (Prelude.Maybe HaskType)) -> ND Judg Rule
4458 ga_kappa' unitTy prodTy gaTy =
4459   (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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
4460
4461 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
4462 flatten_arrangement' unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec lev ant1 ant2 r =
4463   (trace "X" (case (trace "X" (r)) of {
4464                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))))))))))))))));
4465                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))))))))))))))));
4466                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))))))))))))))));
4467                RuCanL a ->
4468                 (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" (([])))
4469                                           (trace "X" ((trace "X" ((let {
4470                                                                     mapOptionTree0 f t =
4471                                                                       (trace "X" (case (trace "X" (t)) of {
4472                                                                                    T_Leaf o ->
4473                                                                                     (trace "X" (case (trace "X" (o)) of {
4474                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4475                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4476                                                                                    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)))))))))}))}
4477                                                                    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))))))))))))))))
4478                                                                         (trace "X" ((trace "X" ((let {
4479                                                                                                   dropT0 __U03a3_ tf =
4480                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4481                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4482                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4483                                                                                                                  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)))))))))}))}
4484                                                                                                  in dropT0 (trace "X" (a))
4485                                                                                                       (trace "X" ((trace "X" ((let {
4486                                                                                                                                 mkFlags0 f t =
4487                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4488                                                                                                                                                T_Leaf x ->
4489                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4490                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4491                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4492                                                                                                                                                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)))))))))}))}
4493                                                                                                                                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)))))))))))))))))))));
4494                RuCanR a ->
4495                 (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" (([])))
4496                                           (trace "X" ((trace "X" ((let {
4497                                                                     mapOptionTree0 f t =
4498                                                                       (trace "X" (case (trace "X" (t)) of {
4499                                                                                    T_Leaf o ->
4500                                                                                     (trace "X" (case (trace "X" (o)) of {
4501                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4502                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4503                                                                                    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)))))))))}))}
4504                                                                    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))))))))))))))))
4505                                                                         (trace "X" ((trace "X" ((let {
4506                                                                                                   dropT0 __U03a3_ tf =
4507                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4508                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4509                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4510                                                                                                                  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)))))))))}))}
4511                                                                                                  in dropT0 (trace "X" (a))
4512                                                                                                       (trace "X" ((trace "X" ((let {
4513                                                                                                                                 mkFlags0 f t =
4514                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4515                                                                                                                                                T_Leaf x ->
4516                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4517                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4518                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4519                                                                                                                                                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)))))))))}))}
4520                                                                                                                                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)))))))))))))))))))));
4521                RAssoc a b c ->
4522                 (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" (([])))
4523                                           (trace "X" ((trace "X" ((let {
4524                                                                     mapOptionTree0 f t =
4525                                                                       (trace "X" (case (trace "X" (t)) of {
4526                                                                                    T_Leaf o ->
4527                                                                                     (trace "X" (case (trace "X" (o)) of {
4528                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4529                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4530                                                                                    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)))))))))}))}
4531                                                                    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))))))))))))))))
4532                                                                         (trace "X" ((trace "X" ((let {
4533                                                                                                   dropT0 __U03a3_ tf =
4534                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4535                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4536                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4537                                                                                                                  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)))))))))}))}
4538                                                                                                  in dropT0 (trace "X" (a))
4539                                                                                                       (trace "X" ((trace "X" ((let {
4540                                                                                                                                 mkFlags0 f t =
4541                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4542                                                                                                                                                T_Leaf x ->
4543                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4544                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4545                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4546                                                                                                                                                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)))))))))}))}
4547                                                                                                                                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)))))))))))))))))
4548                                           (trace "X" ((trace "X" ((let {
4549                                                                     mapOptionTree0 f t =
4550                                                                       (trace "X" (case (trace "X" (t)) of {
4551                                                                                    T_Leaf o ->
4552                                                                                     (trace "X" (case (trace "X" (o)) of {
4553                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4554                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4555                                                                                    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)))))))))}))}
4556                                                                    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))))))))))))))))
4557                                                                         (trace "X" ((trace "X" ((let {
4558                                                                                                   dropT0 __U03a3_ tf =
4559                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4560                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4561                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4562                                                                                                                  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)))))))))}))}
4563                                                                                                  in dropT0 (trace "X" (b))
4564                                                                                                       (trace "X" ((trace "X" ((let {
4565                                                                                                                                 mkFlags0 f t =
4566                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4567                                                                                                                                                T_Leaf x ->
4568                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4569                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4570                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4571                                                                                                                                                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)))))))))}))}
4572                                                                                                                                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)))))))))))))))))
4573                                           (trace "X" ((trace "X" ((let {
4574                                                                     mapOptionTree0 f t =
4575                                                                       (trace "X" (case (trace "X" (t)) of {
4576                                                                                    T_Leaf o ->
4577                                                                                     (trace "X" (case (trace "X" (o)) of {
4578                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4579                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4580                                                                                    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)))))))))}))}
4581                                                                    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))))))))))))))))
4582                                                                         (trace "X" ((trace "X" ((let {
4583                                                                                                   dropT0 __U03a3_ tf =
4584                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4585                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4586                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4587                                                                                                                  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)))))))))}))}
4588                                                                                                  in dropT0 (trace "X" (c))
4589                                                                                                       (trace "X" ((trace "X" ((let {
4590                                                                                                                                 mkFlags0 f t =
4591                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4592                                                                                                                                                T_Leaf x ->
4593                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4594                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4595                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4596                                                                                                                                                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)))))))))}))}
4597                                                                                                                                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)))))))))))))))))))));
4598                RCossa a b c ->
4599                 (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" (([])))
4600                                           (trace "X" ((trace "X" ((let {
4601                                                                     mapOptionTree0 f t =
4602                                                                       (trace "X" (case (trace "X" (t)) of {
4603                                                                                    T_Leaf o ->
4604                                                                                     (trace "X" (case (trace "X" (o)) of {
4605                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4606                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4607                                                                                    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)))))))))}))}
4608                                                                    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))))))))))))))))
4609                                                                         (trace "X" ((trace "X" ((let {
4610                                                                                                   dropT0 __U03a3_ tf =
4611                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4612                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4613                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4614                                                                                                                  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)))))))))}))}
4615                                                                                                  in dropT0 (trace "X" (a))
4616                                                                                                       (trace "X" ((trace "X" ((let {
4617                                                                                                                                 mkFlags0 f t =
4618                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4619                                                                                                                                                T_Leaf x ->
4620                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4621                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4622                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4623                                                                                                                                                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)))))))))}))}
4624                                                                                                                                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)))))))))))))))))
4625                                           (trace "X" ((trace "X" ((let {
4626                                                                     mapOptionTree0 f t =
4627                                                                       (trace "X" (case (trace "X" (t)) of {
4628                                                                                    T_Leaf o ->
4629                                                                                     (trace "X" (case (trace "X" (o)) of {
4630                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4631                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4632                                                                                    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)))))))))}))}
4633                                                                    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))))))))))))))))
4634                                                                         (trace "X" ((trace "X" ((let {
4635                                                                                                   dropT0 __U03a3_ tf =
4636                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4637                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4638                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4639                                                                                                                  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)))))))))}))}
4640                                                                                                  in dropT0 (trace "X" (b))
4641                                                                                                       (trace "X" ((trace "X" ((let {
4642                                                                                                                                 mkFlags0 f t =
4643                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4644                                                                                                                                                T_Leaf x ->
4645                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4646                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4647                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4648                                                                                                                                                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)))))))))}))}
4649                                                                                                                                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)))))))))))))))))
4650                                           (trace "X" ((trace "X" ((let {
4651                                                                     mapOptionTree0 f t =
4652                                                                       (trace "X" (case (trace "X" (t)) of {
4653                                                                                    T_Leaf o ->
4654                                                                                     (trace "X" (case (trace "X" (o)) of {
4655                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4656                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4657                                                                                    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)))))))))}))}
4658                                                                    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))))))))))))))))
4659                                                                         (trace "X" ((trace "X" ((let {
4660                                                                                                   dropT0 __U03a3_ tf =
4661                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4662                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4663                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4664                                                                                                                  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)))))))))}))}
4665                                                                                                  in dropT0 (trace "X" (c))
4666                                                                                                       (trace "X" ((trace "X" ((let {
4667                                                                                                                                 mkFlags0 f t =
4668                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4669                                                                                                                                                T_Leaf x ->
4670                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4671                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4672                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4673                                                                                                                                                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)))))))))}))}
4674                                                                                                                                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)))))))))))))))))))));
4675                RExch a b ->
4676                 (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" (([])))
4677                                           (trace "X" ((trace "X" ((let {
4678                                                                     mapOptionTree0 f t =
4679                                                                       (trace "X" (case (trace "X" (t)) of {
4680                                                                                    T_Leaf o ->
4681                                                                                     (trace "X" (case (trace "X" (o)) of {
4682                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4683                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4684                                                                                    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)))))))))}))}
4685                                                                    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))))))))))))))))
4686                                                                         (trace "X" ((trace "X" ((let {
4687                                                                                                   dropT0 __U03a3_ tf =
4688                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4689                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4690                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4691                                                                                                                  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)))))))))}))}
4692                                                                                                  in dropT0 (trace "X" (a))
4693                                                                                                       (trace "X" ((trace "X" ((let {
4694                                                                                                                                 mkFlags0 f t =
4695                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4696                                                                                                                                                T_Leaf x ->
4697                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4698                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4699                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4700                                                                                                                                                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)))))))))}))}
4701                                                                                                                                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)))))))))))))))))
4702                                           (trace "X" ((trace "X" ((let {
4703                                                                     mapOptionTree0 f t =
4704                                                                       (trace "X" (case (trace "X" (t)) of {
4705                                                                                    T_Leaf o ->
4706                                                                                     (trace "X" (case (trace "X" (o)) of {
4707                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4708                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4709                                                                                    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)))))))))}))}
4710                                                                    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))))))))))))))))
4711                                                                         (trace "X" ((trace "X" ((let {
4712                                                                                                   dropT0 __U03a3_ tf =
4713                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4714                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4715                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4716                                                                                                                  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)))))))))}))}
4717                                                                                                  in dropT0 (trace "X" (b))
4718                                                                                                       (trace "X" ((trace "X" ((let {
4719                                                                                                                                 mkFlags0 f t =
4720                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4721                                                                                                                                                T_Leaf x ->
4722                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4723                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4724                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4725                                                                                                                                                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)))))))))}))}
4726                                                                                                                                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)))))))))))))))))))));
4727                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))))))))))))))));
4728                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))))))))))))))));
4729                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" ((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" ((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" ((MkLeveledHaskType (trace "X" ((\_ ->
4730                 (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (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
4731                                           (trace "X" ((trace "X" ((let {
4732                                                                     mapOptionTree0 f t =
4733                                                                       (trace "X" (case (trace "X" (t)) of {
4734                                                                                    T_Leaf o ->
4735                                                                                     (trace "X" (case (trace "X" (o)) of {
4736                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4737                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4738                                                                                    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)))))))))}))}
4739                                                                    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))))))))))))))))
4740                                                                         (trace "X" ((trace "X" ((let {
4741                                                                                                   dropT0 __U03a3_ tf =
4742                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4743                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4744                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4745                                                                                                                  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)))))))))}))}
4746                                                                                                  in dropT0 (trace "X" (c))
4747                                                                                                       (trace "X" ((trace "X" ((let {
4748                                                                                                                                 mkFlags0 f t =
4749                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4750                                                                                                                                                T_Leaf x ->
4751                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4752                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4753                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4754                                                                                                                                                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)))))))))}))}
4755                                                                                                                                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
4756                                           (trace "X" ((trace "X" ((let {
4757                                                                     mapOptionTree0 f t =
4758                                                                       (trace "X" (case (trace "X" (t)) of {
4759                                                                                    T_Leaf o ->
4760                                                                                     (trace "X" (case (trace "X" (o)) of {
4761                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4762                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4763                                                                                    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)))))))))}))}
4764                                                                    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))))))))))))))))
4765                                                                         (trace "X" ((trace "X" ((let {
4766                                                                                                   dropT0 __U03a3_ tf =
4767                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4768                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4769                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4770                                                                                                                  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)))))))))}))}
4771                                                                                                  in dropT0 (trace "X" (c))
4772                                                                                                       (trace "X" ((trace "X" ((let {
4773                                                                                                                                 mkFlags0 f t =
4774                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4775                                                                                                                                                T_Leaf x ->
4776                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4777                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4778                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4779                                                                                                                                                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)))))))))}))}
4780                                                                                                                                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')))))))
4781                 (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" ((\_ ->
4782                                           (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (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
4783                                                                     (trace "X" ((trace "X" ((let {
4784                                                                                               mapOptionTree0 f t =
4785                                                                                                 (trace "X" (case (trace "X" (t)) of {
4786                                                                                                              T_Leaf o ->
4787                                                                                                               (trace "X" (case (trace "X" (o)) of {
4788                                                                                                                            Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4789                                                                                                                            Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4790                                                                                                              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)))))))))}))}
4791                                                                                              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))))))))))))))))
4792                                                                                                   (trace "X" ((trace "X" ((let {
4793                                                                                                                             dropT0 __U03a3_ tf =
4794                                                                                                                               (trace "X" (case (trace "X" (tf)) of {
4795                                                                                                                                            Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4796                                                                                                                                            Tf_leaf_false x -> (trace "X" (__U03a3_));
4797                                                                                                                                            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)))))))))}))}
4798                                                                                                                            in dropT0 (trace "X" (c))
4799                                                                                                                                 (trace "X" ((trace "X" ((let {
4800                                                                                                                                                           mkFlags0 f t =
4801                                                                                                                                                             (trace "X" (case (trace "X" (t)) of {
4802                                                                                                                                                                          T_Leaf x ->
4803                                                                                                                                                                           (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4804                                                                                                                                                                                        Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4805                                                                                                                                                                                        Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4806                                                                                                                                                                          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)))))))))}))}
4807                                                                                                                                                          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
4808                                                                     (trace "X" ((trace "X" ((let {
4809                                                                                               mapOptionTree0 f t =
4810                                                                                                 (trace "X" (case (trace "X" (t)) of {
4811                                                                                                              T_Leaf o ->
4812                                                                                                               (trace "X" (case (trace "X" (o)) of {
4813                                                                                                                            Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4814                                                                                                                            Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4815                                                                                                              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)))))))))}))}
4816                                                                                              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))))))))))))))))
4817                                                                                                   (trace "X" ((trace "X" ((let {
4818                                                                                                                             dropT0 __U03a3_ tf =
4819                                                                                                                               (trace "X" (case (trace "X" (tf)) of {
4820                                                                                                                                            Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4821                                                                                                                                            Tf_leaf_false x -> (trace "X" (__U03a3_));
4822                                                                                                                                            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)))))))))}))}
4823                                                                                                                            in dropT0 (trace "X" (c))
4824                                                                                                                                 (trace "X" ((trace "X" ((let {
4825                                                                                                                                                           mkFlags0 f t =
4826                                                                                                                                                             (trace "X" (case (trace "X" (t)) of {
4827                                                                                                                                                                          T_Leaf x ->
4828                                                                                                                                                                           (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4829                                                                                                                                                                                        Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4830                                                                                                                                                                                        Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4831                                                                                                                                                                          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)))))))))}))}
4832                                                                                                                                                          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" (([])))
4833                                           (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))))))))))))
4834                                                                     (trace "X" ((trace "X" ((let {
4835                                                                                               mapOptionTree0 f t =
4836                                                                                                 (trace "X" (case (trace "X" (t)) of {
4837                                                                                                              T_Leaf o ->
4838                                                                                                               (trace "X" (case (trace "X" (o)) of {
4839                                                                                                                            Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4840                                                                                                                            Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4841                                                                                                              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)))))))))}))}
4842                                                                                              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))))))))))))))))
4843                                                                                                   (trace "X" ((trace "X" ((let {
4844                                                                                                                             dropT0 __U03a3_ tf =
4845                                                                                                                               (trace "X" (case (trace "X" (tf)) of {
4846                                                                                                                                            Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4847                                                                                                                                            Tf_leaf_false x -> (trace "X" (__U03a3_));
4848                                                                                                                                            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)))))))))}))}
4849                                                                                                                            in dropT0 (trace "X" (c))
4850                                                                                                                                 (trace "X" ((trace "X" ((let {
4851                                                                                                                                                           mkFlags0 f t =
4852                                                                                                                                                             (trace "X" (case (trace "X" (t)) of {
4853                                                                                                                                                                          T_Leaf x ->
4854                                                                                                                                                                           (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4855                                                                                                                                                                                        Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4856                                                                                                                                                                                        Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4857                                                                                                                                                                          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)))))))))}))}
4858                                                                                                                                                          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)))))))))))))))))))))))))))));
4859                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" ((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" ((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" ((MkLeveledHaskType (trace "X" ((\_ ->
4860                 (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (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))))))))))))
4861                                           (trace "X" ((trace "X" ((let {
4862                                                                     mapOptionTree0 f t =
4863                                                                       (trace "X" (case (trace "X" (t)) of {
4864                                                                                    T_Leaf o ->
4865                                                                                     (trace "X" (case (trace "X" (o)) of {
4866                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4867                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4868                                                                                    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)))))))))}))}
4869                                                                    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))))))))))))))))
4870                                                                         (trace "X" ((trace "X" ((let {
4871                                                                                                   dropT0 __U03a3_ tf =
4872                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4873                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4874                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4875                                                                                                                  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)))))))))}))}
4876                                                                                                  in dropT0 (trace "X" (c))
4877                                                                                                       (trace "X" ((trace "X" ((let {
4878                                                                                                                                 mkFlags0 f t =
4879                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4880                                                                                                                                                T_Leaf x ->
4881                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4882                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4883                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4884                                                                                                                                                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)))))))))}))}
4885                                                                                                                                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))))))))))))
4886                                           (trace "X" ((trace "X" ((let {
4887                                                                     mapOptionTree0 f t =
4888                                                                       (trace "X" (case (trace "X" (t)) of {
4889                                                                                    T_Leaf o ->
4890                                                                                     (trace "X" (case (trace "X" (o)) of {
4891                                                                                                  Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4892                                                                                                  Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4893                                                                                    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)))))))))}))}
4894                                                                    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))))))))))))))))
4895                                                                         (trace "X" ((trace "X" ((let {
4896                                                                                                   dropT0 __U03a3_ tf =
4897                                                                                                     (trace "X" (case (trace "X" (tf)) of {
4898                                                                                                                  Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4899                                                                                                                  Tf_leaf_false x -> (trace "X" (__U03a3_));
4900                                                                                                                  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)))))))))}))}
4901                                                                                                  in dropT0 (trace "X" (c))
4902                                                                                                       (trace "X" ((trace "X" ((let {
4903                                                                                                                                 mkFlags0 f t =
4904                                                                                                                                   (trace "X" (case (trace "X" (t)) of {
4905                                                                                                                                                T_Leaf x ->
4906                                                                                                                                                 (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4907                                                                                                                                                              Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4908                                                                                                                                                              Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4909                                                                                                                                                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)))))))))}))}
4910                                                                                                                                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')))))))
4911                 (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" ((\_ ->
4912                                           (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (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))))))))))))
4913                                                                     (trace "X" ((trace "X" ((let {
4914                                                                                               mapOptionTree0 f t =
4915                                                                                                 (trace "X" (case (trace "X" (t)) of {
4916                                                                                                              T_Leaf o ->
4917                                                                                                               (trace "X" (case (trace "X" (o)) of {
4918                                                                                                                            Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4919                                                                                                                            Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4920                                                                                                              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)))))))))}))}
4921                                                                                              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))))))))))))))))
4922                                                                                                   (trace "X" ((trace "X" ((let {
4923                                                                                                                             dropT0 __U03a3_ tf =
4924                                                                                                                               (trace "X" (case (trace "X" (tf)) of {
4925                                                                                                                                            Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4926                                                                                                                                            Tf_leaf_false x -> (trace "X" (__U03a3_));
4927                                                                                                                                            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)))))))))}))}
4928                                                                                                                            in dropT0 (trace "X" (c))
4929                                                                                                                                 (trace "X" ((trace "X" ((let {
4930                                                                                                                                                           mkFlags0 f t =
4931                                                                                                                                                             (trace "X" (case (trace "X" (t)) of {
4932                                                                                                                                                                          T_Leaf x ->
4933                                                                                                                                                                           (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4934                                                                                                                                                                                        Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4935                                                                                                                                                                                        Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4936                                                                                                                                                                          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)))))))))}))}
4937                                                                                                                                                          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))))))))))))
4938                                                                     (trace "X" ((trace "X" ((let {
4939                                                                                               mapOptionTree0 f t =
4940                                                                                                 (trace "X" (case (trace "X" (t)) of {
4941                                                                                                              T_Leaf o ->
4942                                                                                                               (trace "X" (case (trace "X" (o)) of {
4943                                                                                                                            Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4944                                                                                                                            Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4945                                                                                                              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)))))))))}))}
4946                                                                                              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))))))))))))))))
4947                                                                                                   (trace "X" ((trace "X" ((let {
4948                                                                                                                             dropT0 __U03a3_ tf =
4949                                                                                                                               (trace "X" (case (trace "X" (tf)) of {
4950                                                                                                                                            Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4951                                                                                                                                            Tf_leaf_false x -> (trace "X" (__U03a3_));
4952                                                                                                                                            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)))))))))}))}
4953                                                                                                                            in dropT0 (trace "X" (c))
4954                                                                                                                                 (trace "X" ((trace "X" ((let {
4955                                                                                                                                                           mkFlags0 f t =
4956                                                                                                                                                             (trace "X" (case (trace "X" (t)) of {
4957                                                                                                                                                                          T_Leaf x ->
4958                                                                                                                                                                           (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4959                                                                                                                                                                                        Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4960                                                                                                                                                                                        Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4961                                                                                                                                                                          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)))))))))}))}
4962                                                                                                                                                          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" (([])))
4963                                           (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))))))))))))
4964                                                                     (trace "X" ((trace "X" ((let {
4965                                                                                               mapOptionTree0 f t =
4966                                                                                                 (trace "X" (case (trace "X" (t)) of {
4967                                                                                                              T_Leaf o ->
4968                                                                                                               (trace "X" (case (trace "X" (o)) of {
4969                                                                                                                            Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
4970                                                                                                                            Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
4971                                                                                                              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)))))))))}))}
4972                                                                                              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))))))))))))))))
4973                                                                                                   (trace "X" ((trace "X" ((let {
4974                                                                                                                             dropT0 __U03a3_ tf =
4975                                                                                                                               (trace "X" (case (trace "X" (tf)) of {
4976                                                                                                                                            Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
4977                                                                                                                                            Tf_leaf_false x -> (trace "X" (__U03a3_));
4978                                                                                                                                            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)))))))))}))}
4979                                                                                                                            in dropT0 (trace "X" (c))
4980                                                                                                                                 (trace "X" ((trace "X" ((let {
4981                                                                                                                                                           mkFlags0 f t =
4982                                                                                                                                                             (trace "X" (case (trace "X" (t)) of {
4983                                                                                                                                                                          T_Leaf x ->
4984                                                                                                                                                                           (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
4985                                                                                                                                                                                        Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
4986                                                                                                                                                                                        Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
4987                                                                                                                                                                          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)))))))))}))}
4988                                                                                                                                                          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)))))))))))))))))))))))))))));
4989                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" ((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" (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" ((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" (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" ((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" ((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" ((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" (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" ((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" (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" ((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" ((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" ((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" (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" ((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" ((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" ((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" (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" ((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" (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" ((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" (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.Just (trace "X" ((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" ((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" (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" ((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" (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" ((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" ((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" ((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" (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" ((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" (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" ((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" ((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" ((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" (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" ((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" ((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" ((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" (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" ((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_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" ((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" ((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" ((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" (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" ((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" (c'))))))))) (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" ((\_ -> (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" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (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_mk (trace "X" (unitTy)) (trace "X" (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" ((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.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" (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" ((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" (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.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" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((RCanR (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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" (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" ((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" (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.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" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((RuCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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" ((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" ((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" (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" ((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" (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" (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" (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" ((T_Leaf (trace "X" (Prelude.Nothing))))) (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" (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" ((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" (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" ((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" (c'))))))))) (trace "X" (([])))))))))))) (trace "X" ((RCanL (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))))))))))))))))))))}))
4990
4991 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 LeveledHaskType)) -> ND Judg Rule
4992 flatten_arrangement unitTy prodTy gaTy gar __U0393_0 __U0394_0 n ec lev ant1 ant2 r succ =
4993   (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" ((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" ((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" ((\_ -> (trace "X" ((trace "X" (unlev (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" ((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" ((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" ((\_ -> (trace "X" ((trace "X" (unlev (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" ((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" ((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" (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" ((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" ((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" ((\_ -> (trace "X" ((trace "X" (unlev (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" ((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" ((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" ((\_ -> (trace "X" ((trace "X" (unlev (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" ((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" ((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" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" (succ)))))))))))))) (trace "X" (([]))))))))))))
4994     (trace "X" ((trace "X" ((let {
4995                               flatten ant3 ant4 r0 =
4996                                 (trace "X" (case (trace "X" (r0)) of {
4997                                              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))))))))))))));
4998                                              RCanL a -> (trace "X" (RCanL
4999                                               (trace "X" ((trace "X" ((let {
5000                                                                         mapOptionTree0 f t =
5001                                                                           (trace "X" (case (trace "X" (t)) of {
5002                                                                                        T_Leaf o ->
5003                                                                                         (trace "X" (case (trace "X" (o)) of {
5004                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5005                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5006                                                                                        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)))))))))}))}
5007                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5008                                                                             (trace "X" ((trace "X" ((let {
5009                                                                                                       dropT0 __U03a3_ tf =
5010                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5011                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5012                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5013                                                                                                                      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)))))))))}))}
5014                                                                                                      in dropT0 (trace "X" (a))
5015                                                                                                           (trace "X" ((trace "X" ((let {
5016                                                                                                                                     mkFlags0 f t =
5017                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5018                                                                                                                                                    T_Leaf x ->
5019                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5020                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5021                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5022                                                                                                                                                    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)))))))))}))}
5023                                                                                                                                    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)))))))))))))))))));
5024                                              RCanR a -> (trace "X" (RCanR
5025                                               (trace "X" ((trace "X" ((let {
5026                                                                         mapOptionTree0 f t =
5027                                                                           (trace "X" (case (trace "X" (t)) of {
5028                                                                                        T_Leaf o ->
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 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)))))))))}))}
5033                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
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" (a))
5041                                                                                                           (trace "X" ((trace "X" ((let {
5042                                                                                                                                     mkFlags0 f t =
5043                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5044                                                                                                                                                    T_Leaf x ->
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.False)) (trace "X" ((trace "X" ((levelMatch (trace "X" (__U0393_0)) (trace "X" (n)))))))))))) (trace "X" (a)))))))))))))))))));
5050                                              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))))))))))))));
5051                                              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))))))))))))));
5052                                              RAssoc a b c -> (trace "X" (RAssoc
5053                                               (trace "X" ((trace "X" ((let {
5054                                                                         mapOptionTree0 f t =
5055                                                                           (trace "X" (case (trace "X" (t)) of {
5056                                                                                        T_Leaf o ->
5057                                                                                         (trace "X" (case (trace "X" (o)) of {
5058                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5059                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5060                                                                                        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)))))))))}))}
5061                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5062                                                                             (trace "X" ((trace "X" ((let {
5063                                                                                                       dropT0 __U03a3_ tf =
5064                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5065                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5066                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5067                                                                                                                      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)))))))))}))}
5068                                                                                                      in dropT0 (trace "X" (a))
5069                                                                                                           (trace "X" ((trace "X" ((let {
5070                                                                                                                                     mkFlags0 f t =
5071                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5072                                                                                                                                                    T_Leaf x ->
5073                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5074                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5075                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5076                                                                                                                                                    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)))))))))}))}
5077                                                                                                                                    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)))))))))))))))))
5078                                               (trace "X" ((trace "X" ((let {
5079                                                                         mapOptionTree0 f t =
5080                                                                           (trace "X" (case (trace "X" (t)) of {
5081                                                                                        T_Leaf o ->
5082                                                                                         (trace "X" (case (trace "X" (o)) of {
5083                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5084                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5085                                                                                        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)))))))))}))}
5086                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5087                                                                             (trace "X" ((trace "X" ((let {
5088                                                                                                       dropT0 __U03a3_ tf =
5089                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5090                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5091                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5092                                                                                                                      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)))))))))}))}
5093                                                                                                      in dropT0 (trace "X" (b))
5094                                                                                                           (trace "X" ((trace "X" ((let {
5095                                                                                                                                     mkFlags0 f t =
5096                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5097                                                                                                                                                    T_Leaf x ->
5098                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5099                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5100                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5101                                                                                                                                                    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)))))))))}))}
5102                                                                                                                                    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)))))))))))))))))
5103                                               (trace "X" ((trace "X" ((let {
5104                                                                         mapOptionTree0 f t =
5105                                                                           (trace "X" (case (trace "X" (t)) of {
5106                                                                                        T_Leaf o ->
5107                                                                                         (trace "X" (case (trace "X" (o)) of {
5108                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5109                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5110                                                                                        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)))))))))}))}
5111                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5112                                                                             (trace "X" ((trace "X" ((let {
5113                                                                                                       dropT0 __U03a3_ tf =
5114                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5115                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5116                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5117                                                                                                                      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)))))))))}))}
5118                                                                                                      in dropT0 (trace "X" (c))
5119                                                                                                           (trace "X" ((trace "X" ((let {
5120                                                                                                                                     mkFlags0 f t =
5121                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5122                                                                                                                                                    T_Leaf x ->
5123                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5124                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5125                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5126                                                                                                                                                    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)))))))))}))}
5127                                                                                                                                    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)))))))))))))))))));
5128                                              RCossa a b c -> (trace "X" (RCossa
5129                                               (trace "X" ((trace "X" ((let {
5130                                                                         mapOptionTree0 f t =
5131                                                                           (trace "X" (case (trace "X" (t)) of {
5132                                                                                        T_Leaf o ->
5133                                                                                         (trace "X" (case (trace "X" (o)) of {
5134                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5135                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5136                                                                                        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)))))))))}))}
5137                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5138                                                                             (trace "X" ((trace "X" ((let {
5139                                                                                                       dropT0 __U03a3_ tf =
5140                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5141                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5142                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5143                                                                                                                      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)))))))))}))}
5144                                                                                                      in dropT0 (trace "X" (a))
5145                                                                                                           (trace "X" ((trace "X" ((let {
5146                                                                                                                                     mkFlags0 f t =
5147                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5148                                                                                                                                                    T_Leaf x ->
5149                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5150                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5151                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5152                                                                                                                                                    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)))))))))}))}
5153                                                                                                                                    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)))))))))))))))))
5154                                               (trace "X" ((trace "X" ((let {
5155                                                                         mapOptionTree0 f t =
5156                                                                           (trace "X" (case (trace "X" (t)) of {
5157                                                                                        T_Leaf o ->
5158                                                                                         (trace "X" (case (trace "X" (o)) of {
5159                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5160                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5161                                                                                        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)))))))))}))}
5162                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5163                                                                             (trace "X" ((trace "X" ((let {
5164                                                                                                       dropT0 __U03a3_ tf =
5165                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5166                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5167                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5168                                                                                                                      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)))))))))}))}
5169                                                                                                      in dropT0 (trace "X" (b))
5170                                                                                                           (trace "X" ((trace "X" ((let {
5171                                                                                                                                     mkFlags0 f t =
5172                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5173                                                                                                                                                    T_Leaf x ->
5174                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5175                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5176                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5177                                                                                                                                                    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)))))))))}))}
5178                                                                                                                                    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)))))))))))))))))
5179                                               (trace "X" ((trace "X" ((let {
5180                                                                         mapOptionTree0 f t =
5181                                                                           (trace "X" (case (trace "X" (t)) of {
5182                                                                                        T_Leaf o ->
5183                                                                                         (trace "X" (case (trace "X" (o)) of {
5184                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5185                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5186                                                                                        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)))))))))}))}
5187                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5188                                                                             (trace "X" ((trace "X" ((let {
5189                                                                                                       dropT0 __U03a3_ tf =
5190                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5191                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5192                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5193                                                                                                                      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)))))))))}))}
5194                                                                                                      in dropT0 (trace "X" (c))
5195                                                                                                           (trace "X" ((trace "X" ((let {
5196                                                                                                                                     mkFlags0 f t =
5197                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5198                                                                                                                                                    T_Leaf x ->
5199                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5200                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5201                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5202                                                                                                                                                    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)))))))))}))}
5203                                                                                                                                    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)))))))))))))))))));
5204                                              RExch a b -> (trace "X" (RExch
5205                                               (trace "X" ((trace "X" ((let {
5206                                                                         mapOptionTree0 f t =
5207                                                                           (trace "X" (case (trace "X" (t)) of {
5208                                                                                        T_Leaf o ->
5209                                                                                         (trace "X" (case (trace "X" (o)) of {
5210                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5211                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5212                                                                                        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)))))))))}))}
5213                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5214                                                                             (trace "X" ((trace "X" ((let {
5215                                                                                                       dropT0 __U03a3_ tf =
5216                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5217                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5218                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5219                                                                                                                      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)))))))))}))}
5220                                                                                                      in dropT0 (trace "X" (a))
5221                                                                                                           (trace "X" ((trace "X" ((let {
5222                                                                                                                                     mkFlags0 f t =
5223                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5224                                                                                                                                                    T_Leaf x ->
5225                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5226                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5227                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5228                                                                                                                                                    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)))))))))}))}
5229                                                                                                                                    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)))))))))))))))))
5230                                               (trace "X" ((trace "X" ((let {
5231                                                                         mapOptionTree0 f t =
5232                                                                           (trace "X" (case (trace "X" (t)) of {
5233                                                                                        T_Leaf o ->
5234                                                                                         (trace "X" (case (trace "X" (o)) of {
5235                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5236                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5237                                                                                        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)))))))))}))}
5238                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5239                                                                             (trace "X" ((trace "X" ((let {
5240                                                                                                       dropT0 __U03a3_ tf =
5241                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5242                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5243                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5244                                                                                                                      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)))))))))}))}
5245                                                                                                      in dropT0 (trace "X" (b))
5246                                                                                                           (trace "X" ((trace "X" ((let {
5247                                                                                                                                     mkFlags0 f t =
5248                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5249                                                                                                                                                    T_Leaf x ->
5250                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5251                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5252                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5253                                                                                                                                                    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)))))))))}))}
5254                                                                                                                                    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)))))))))))))))))));
5255                                              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))))))))))))));
5256                                              RCont a -> (trace "X" (RCont
5257                                               (trace "X" ((trace "X" ((let {
5258                                                                         mapOptionTree0 f t =
5259                                                                           (trace "X" (case (trace "X" (t)) of {
5260                                                                                        T_Leaf o ->
5261                                                                                         (trace "X" (case (trace "X" (o)) of {
5262                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5263                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5264                                                                                        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)))))))))}))}
5265                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5266                                                                             (trace "X" ((trace "X" ((let {
5267                                                                                                       dropT0 __U03a3_ tf =
5268                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5269                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5270                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5271                                                                                                                      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)))))))))}))}
5272                                                                                                      in dropT0 (trace "X" (a))
5273                                                                                                           (trace "X" ((trace "X" ((let {
5274                                                                                                                                     mkFlags0 f t =
5275                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5276                                                                                                                                                    T_Leaf x ->
5277                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5278                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5279                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5280                                                                                                                                                    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)))))))))}))}
5281                                                                                                                                    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)))))))))))))))))));
5282                                              RLeft a b c r' -> (trace "X" (RLeft
5283                                               (trace "X" ((trace "X" ((let {
5284                                                                         mapOptionTree0 f t =
5285                                                                           (trace "X" (case (trace "X" (t)) of {
5286                                                                                        T_Leaf o ->
5287                                                                                         (trace "X" (case (trace "X" (o)) of {
5288                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5289                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5290                                                                                        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)))))))))}))}
5291                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5292                                                                             (trace "X" ((trace "X" ((let {
5293                                                                                                       dropT0 __U03a3_ tf =
5294                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5295                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5296                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5297                                                                                                                      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)))))))))}))}
5298                                                                                                      in dropT0 (trace "X" (a))
5299                                                                                                           (trace "X" ((trace "X" ((let {
5300                                                                                                                                     mkFlags0 f t =
5301                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5302                                                                                                                                                    T_Leaf x ->
5303                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5304                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5305                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5306                                                                                                                                                    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)))))))))}))}
5307                                                                                                                                    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)))))))))))))))))
5308                                               (trace "X" ((trace "X" ((let {
5309                                                                         mapOptionTree0 f t =
5310                                                                           (trace "X" (case (trace "X" (t)) of {
5311                                                                                        T_Leaf o ->
5312                                                                                         (trace "X" (case (trace "X" (o)) of {
5313                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5314                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5315                                                                                        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)))))))))}))}
5316                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5317                                                                             (trace "X" ((trace "X" ((let {
5318                                                                                                       dropT0 __U03a3_ tf =
5319                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5320                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5321                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5322                                                                                                                      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)))))))))}))}
5323                                                                                                      in dropT0 (trace "X" (b))
5324                                                                                                           (trace "X" ((trace "X" ((let {
5325                                                                                                                                     mkFlags0 f t =
5326                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5327                                                                                                                                                    T_Leaf x ->
5328                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5329                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5330                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5331                                                                                                                                                    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)))))))))}))}
5332                                                                                                                                    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)))))))))))))))))
5333                                               (trace "X" ((trace "X" ((let {
5334                                                                         mapOptionTree0 f t =
5335                                                                           (trace "X" (case (trace "X" (t)) of {
5336                                                                                        T_Leaf o ->
5337                                                                                         (trace "X" (case (trace "X" (o)) of {
5338                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5339                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5340                                                                                        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)))))))))}))}
5341                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5342                                                                             (trace "X" ((trace "X" ((let {
5343                                                                                                       dropT0 __U03a3_ tf =
5344                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5345                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5346                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5347                                                                                                                      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)))))))))}))}
5348                                                                                                      in dropT0 (trace "X" (c))
5349                                                                                                           (trace "X" ((trace "X" ((let {
5350                                                                                                                                     mkFlags0 f t =
5351                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5352                                                                                                                                                    T_Leaf x ->
5353                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5354                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5355                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5356                                                                                                                                                    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)))))))))}))}
5357                                                                                                                                    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')))))))));
5358                                              RRight a b c r' -> (trace "X" (RRight
5359                                               (trace "X" ((trace "X" ((let {
5360                                                                         mapOptionTree0 f t =
5361                                                                           (trace "X" (case (trace "X" (t)) of {
5362                                                                                        T_Leaf o ->
5363                                                                                         (trace "X" (case (trace "X" (o)) of {
5364                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5365                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5366                                                                                        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)))))))))}))}
5367                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5368                                                                             (trace "X" ((trace "X" ((let {
5369                                                                                                       dropT0 __U03a3_ tf =
5370                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5371                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5372                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5373                                                                                                                      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)))))))))}))}
5374                                                                                                      in dropT0 (trace "X" (a))
5375                                                                                                           (trace "X" ((trace "X" ((let {
5376                                                                                                                                     mkFlags0 f t =
5377                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5378                                                                                                                                                    T_Leaf x ->
5379                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5380                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5381                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5382                                                                                                                                                    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)))))))))}))}
5383                                                                                                                                    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)))))))))))))))))
5384                                               (trace "X" ((trace "X" ((let {
5385                                                                         mapOptionTree0 f t =
5386                                                                           (trace "X" (case (trace "X" (t)) of {
5387                                                                                        T_Leaf o ->
5388                                                                                         (trace "X" (case (trace "X" (o)) of {
5389                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5390                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5391                                                                                        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)))))))))}))}
5392                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5393                                                                             (trace "X" ((trace "X" ((let {
5394                                                                                                       dropT0 __U03a3_ tf =
5395                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5396                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5397                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5398                                                                                                                      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)))))))))}))}
5399                                                                                                      in dropT0 (trace "X" (b))
5400                                                                                                           (trace "X" ((trace "X" ((let {
5401                                                                                                                                     mkFlags0 f t =
5402                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5403                                                                                                                                                    T_Leaf x ->
5404                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5405                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5406                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5407                                                                                                                                                    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)))))))))}))}
5408                                                                                                                                    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)))))))))))))))))
5409                                               (trace "X" ((trace "X" ((let {
5410                                                                         mapOptionTree0 f t =
5411                                                                           (trace "X" (case (trace "X" (t)) of {
5412                                                                                        T_Leaf o ->
5413                                                                                         (trace "X" (case (trace "X" (o)) of {
5414                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5415                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5416                                                                                        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)))))))))}))}
5417                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5418                                                                             (trace "X" ((trace "X" ((let {
5419                                                                                                       dropT0 __U03a3_ tf =
5420                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5421                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5422                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5423                                                                                                                      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)))))))))}))}
5424                                                                                                      in dropT0 (trace "X" (c))
5425                                                                                                           (trace "X" ((trace "X" ((let {
5426                                                                                                                                     mkFlags0 f t =
5427                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5428                                                                                                                                                    T_Leaf x ->
5429                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5430                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5431                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5432                                                                                                                                                    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)))))))))}))}
5433                                                                                                                                    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')))))))));
5434                                              RComp a b c r1 r2 -> (trace "X" (RComp
5435                                               (trace "X" ((trace "X" ((let {
5436                                                                         mapOptionTree0 f t =
5437                                                                           (trace "X" (case (trace "X" (t)) of {
5438                                                                                        T_Leaf o ->
5439                                                                                         (trace "X" (case (trace "X" (o)) of {
5440                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5441                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5442                                                                                        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)))))))))}))}
5443                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5444                                                                             (trace "X" ((trace "X" ((let {
5445                                                                                                       dropT0 __U03a3_ tf =
5446                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5447                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5448                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5449                                                                                                                      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)))))))))}))}
5450                                                                                                      in dropT0 (trace "X" (a))
5451                                                                                                           (trace "X" ((trace "X" ((let {
5452                                                                                                                                     mkFlags0 f t =
5453                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5454                                                                                                                                                    T_Leaf x ->
5455                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5456                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5457                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5458                                                                                                                                                    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)))))))))}))}
5459                                                                                                                                    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)))))))))))))))))
5460                                               (trace "X" ((trace "X" ((let {
5461                                                                         mapOptionTree0 f t =
5462                                                                           (trace "X" (case (trace "X" (t)) of {
5463                                                                                        T_Leaf o ->
5464                                                                                         (trace "X" (case (trace "X" (o)) of {
5465                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5466                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5467                                                                                        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)))))))))}))}
5468                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5469                                                                             (trace "X" ((trace "X" ((let {
5470                                                                                                       dropT0 __U03a3_ tf =
5471                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5472                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5473                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5474                                                                                                                      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)))))))))}))}
5475                                                                                                      in dropT0 (trace "X" (b))
5476                                                                                                           (trace "X" ((trace "X" ((let {
5477                                                                                                                                     mkFlags0 f t =
5478                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5479                                                                                                                                                    T_Leaf x ->
5480                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5481                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5482                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5483                                                                                                                                                    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)))))))))}))}
5484                                                                                                                                    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)))))))))))))))))
5485                                               (trace "X" ((trace "X" ((let {
5486                                                                         mapOptionTree0 f t =
5487                                                                           (trace "X" (case (trace "X" (t)) of {
5488                                                                                        T_Leaf o ->
5489                                                                                         (trace "X" (case (trace "X" (o)) of {
5490                                                                                                      Prelude.Just x -> (trace "X" (T_Leaf (trace "X" ((Prelude.Just (trace "X" ((trace "X" ((f (trace "X" (x))))))))))));
5491                                                                                                      Prelude.Nothing -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))))}));
5492                                                                                        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)))))))))}))}
5493                                                                        in mapOptionTree0 (trace "X" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)))))))
5494                                                                             (trace "X" ((trace "X" ((let {
5495                                                                                                       dropT0 __U03a3_ tf =
5496                                                                                                         (trace "X" (case (trace "X" (tf)) of {
5497                                                                                                                      Tf_leaf_true x -> (trace "X" (T_Leaf (trace "X" (Prelude.Nothing))));
5498                                                                                                                      Tf_leaf_false x -> (trace "X" (__U03a3_));
5499                                                                                                                      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)))))))))}))}
5500                                                                                                      in dropT0 (trace "X" (c))
5501                                                                                                           (trace "X" ((trace "X" ((let {
5502                                                                                                                                     mkFlags0 f t =
5503                                                                                                                                       (trace "X" (case (trace "X" (t)) of {
5504                                                                                                                                                    T_Leaf x ->
5505                                                                                                                                                     (trace "X" (case (trace "X" ((trace "X" (f (trace "X" (x)))))) of {
5506                                                                                                                                                                  Prelude.True -> (trace "X" (Tf_leaf_true (trace "X" (x))));
5507                                                                                                                                                                  Prelude.False -> (trace "X" (Tf_leaf_false (trace "X" (x))))}));
5508                                                                                                                                                    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)))))))))}))}
5509                                                                                                                                    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)))))))))}))}
5510                              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" ((\_ -> (trace "X" ((trace "X" (unlev (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" ((\_ -> (trace "X" ((trace "X" (unlev (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" ((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" ((\_ -> (trace "X" ((trace "X" (unlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (x)))))))))))))))) (trace "X" (succ))))))) (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)))))))))))))))))))
5511
5512 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 LeveledHaskType)) -> (Arrange LeveledHaskType) -> ND Judg Rule
5513 flatten_arrangement'' unitTy prodTy gaTy gar __U0393_0 __U0394_0 ant1 ant2 succ r =
5514   (trace "X" (let {succ_lev = (trace "X" ((trace "X" (getjlev0 (trace "X" (__U0393_0)) (trace "X" (succ))))))} in
5515               (trace "X" (case (trace "X" (succ_lev)) of {
5516                            ([]) -> (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" ((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" ((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" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (succ)))))))))))))))) (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" ((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" ((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))))))))))));
5517                            (:) h succ_lev0 -> (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" (succ_lev0))))) (trace "X" (h)) (trace "X" (succ_lev0)) (trace "X" (ant1)) (trace "X" (ant2)) (trace "X" (r)) (trace "X" (succ))))))}))))
5518
5519 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
5520 ga_join unitTy prodTy gaTy gar __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ a b ec pfa pfb =
5521   (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" (Nd_comp (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_Branch (trace "X" (__U03a3___U2081_)) (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" (b)))))))))))) (trace "X" (([]))))))))))))))))))))) (trace "X" ((trace "X" ((nd_id (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))))) (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___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_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___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" (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" ((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" (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" ((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" (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___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_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___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" (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" ((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" (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___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_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___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" (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" ((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" (b)))))))))))) (trace "X" (([]))))))))))))))))))))) (trace "X" (pfb0)) (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" (([]))) (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" (__U03a3___U2081_)) (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___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" (([]))))))))))))))))))))) (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" ((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" (pfa)) (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" (ec)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (trace "X" ((\_ -> (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_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_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (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_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_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (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_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" ((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" (([]))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a)) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (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" (a)))))))))))) (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_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (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_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_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (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_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_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (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_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (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_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_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" (a))))))))) (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___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_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___U2081_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" (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" ((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" (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" ((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" (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_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((T_Branch (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" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (trace "X" ((T_Branch (trace "X" (a)) (trace "X" (b)))))))))))) (trace "X" (([]))))))))))))))))
5522
5523 arrange_brak :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> Garrow -> TypeEnv -> CoercionEnv -> HaskTyVar -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskType -> ND Judg Rule
5524 arrange_brak unitTy prodTy gaTy gar __U0393_0 __U0394_0 ec succ t =
5525   (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
5526               (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
5527                           (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" ((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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((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" ((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" ((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.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" ((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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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" ((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" ((MkLeveledHaskType (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" ((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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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" ((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" ((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" ((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" ((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" ((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" ((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" ((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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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" ((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" ((MkLeveledHaskType (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" ((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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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" ((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" ((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" ((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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))))))))))))
5528                           (trace "X" ((trace "X" ((tree_rect (trace "X" ((\a ->
5529                                                     (trace "X" (case (trace "X" (a)) of {
5530                                                                  Prelude.Just l ->
5531                                                                   (trace "X" (case (trace "X" (l)) of {
5532                                                                                MkLeveledHaskType t' lev' ->
5533                                                                                 (trace "X" (case (trace "X" (lev')) of {
5534                                                                                              ([]) -> (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)))))))));
5535                                                                                              (:) ec' lev'0 ->
5536                                                                                               (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
5537                                                                                                           (trace "X" (case (trace "X" (q0)) of {
5538                                                                                                                        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" ((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" ((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" (__))))));
5539                                                                                                                        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)))))))))}))))}))}));
5540                                                                  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 -> (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" ((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" (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))))))))))))))))) (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" (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))))))) (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" ((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" ((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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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)) (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))))))))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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" ((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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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" ((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" ((MkLeveledHaskType (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" ((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" ((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)) (trace "X" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (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" ((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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" (y))))))))))))))
5541
5542 arrange_empty_tree :: (Tree a2) -> (Tree (Prelude.Maybe a1)) -> Arrange a1
5543 arrange_empty_tree q t =
5544   (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 _ ->
5545                             (trace "X" (case (trace "X" (t0)) of {
5546                                          T_Leaf o -> (trace "X" (false_rect));
5547                                          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" (__))))))
5548
5549 decide_tree_empty :: (Tree (Prelude.Maybe a1)) -> Prelude.Either (SigT (Tree ()) ()) ()
5550 decide_tree_empty t =
5551   (trace "X" (case (trace "X" (t)) of {
5552                T_Leaf x ->
5553                 (trace "X" (case (trace "X" (x)) of {
5554                              Prelude.Just t0 -> (trace "X" (Prelude.Right (trace "X" (()))));
5555                              Prelude.Nothing -> (trace "X" (Prelude.Left (trace "X" ((ExistT (trace "X" ((T_Leaf (trace "X" (()))))) (trace "X" (__)))))))}));
5556                T_Branch b1 b2 ->
5557                 (trace "X" (let {b1' = (trace "X" ((trace "X" (decide_tree_empty (trace "X" (b1))))))} in
5558                             (trace "X" (let {b2' = (trace "X" ((trace "X" (decide_tree_empty (trace "X" (b2))))))} in
5559                                         (trace "X" (case (trace "X" (b1')) of {
5560                                                      Prelude.Left s ->
5561                                                       (trace "X" (case (trace "X" (b2')) of {
5562                                                                    Prelude.Left s0 ->
5563                                                                     (trace "X" (case (trace "X" (s)) of {
5564                                                                                  ExistT x _ -> (trace "X" (case (trace "X" (s0)) of {
5565                                                                                                             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))))))}))}));
5566                                                                    Prelude.Right u -> (trace "X" (Prelude.Right (trace "X" (u))))}));
5567                                                      Prelude.Right u -> (trace "X" (Prelude.Right (trace "X" (u))))}))))))}))
5568
5569 arrange_esc :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> CoercionEnv -> HaskTyVar -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskType -> ND Judg Rule
5570 arrange_esc unitTy prodTy gaTy __U0393_0 __U0394_0 ec succ t =
5571   (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
5572               (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
5573                           (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
5574                                       (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
5575                                                   (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((\x _ -> (trace "X" ((trace "X" (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (trace "X" (y))))))))
5576                                                   (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
5577                                                                (trace "X" (let {s = (trace "X" ((trace "X" (decide_tree_empty (trace "X" (q1))))))} in
5578                                                                            (trace "X" (case (trace "X" (s)) of {
5579                                                                                         Prelude.Left s0 -> (trace "X" (case (trace "X" (s0)) of {
5580                                                                                                                         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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([]))))))))))))))))))))) (trace "X" ((let {q'' = (trace "X" (\z z' -> (trace "X" (RLet (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (z)) (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)) (trace "X" (z')) (trace "X" (([])))))))} 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" ((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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((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" (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((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" ((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" ((MkLeveledHaskType (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" ((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" (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((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" (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((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" (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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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" ((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" (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" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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.Nothing))))) (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" ((\_ -> (trace "X" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (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" ((RuCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([]))))))))))))))) (trace "X" ((RRight (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" ((MkLeveledHaskType (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" ((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" (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" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([]))))))))))))))))))))) (trace "X" ((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" ((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" ((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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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.Just (trace "X" ((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_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" ((MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))))))))) (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" (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" (([])))))))))))))))))))))))}));
5581                                                                                         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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))})))))))))))))))))
5582
5583 tree_of_nothing :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> HaskTyVar -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> Arrange LeveledHaskType
5584 tree_of_nothing unitTy prodTy gaTy __U0393_0 ec t a =
5585   (trace "X" ((trace "X" (tree_rect (trace "X" ((\a0 ->
5586                             (trace "X" (case (trace "X" (a0)) of {
5587                                          Prelude.Just h -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((RCanR (trace "X" (a))))) (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" (([]))))))))))))))))))))))));
5588                                          Prelude.Nothing -> (trace "X" (RCanR (trace "X" (a))))}))))) (trace "X" ((\t1 iHt1 t2 iHt2 -> (trace "X" (RComp (trace "X" ((T_Branch (trace "X" (a)) (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" ((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" (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" ((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" (a)) (trace "X" ((RComp (trace "X" ((T_Branch (trace "X" (a)) (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" ((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_Branch (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" ((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" ((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" (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" ((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" ((RAssoc (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" ((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" ((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" ((RRight (trace "X" ((T_Branch (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" ((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" (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" ((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" (iHt2))))))) (trace "X" (t))))))
5589
5590 tree_of_nothing' :: (() -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> (() -> (RawHaskType ()) -> (RawHaskType ()) -> (RawHaskType ()) -> RawHaskType ()) -> TypeEnv -> HaskTyVar -> (Tree (Prelude.Maybe HaskType)) -> (Tree (Prelude.Maybe LeveledHaskType)) -> Arrange LeveledHaskType
5591 tree_of_nothing' unitTy prodTy gaTy __U0393_0 ec t a =
5592   (trace "X" ((trace "X" (tree_rect (trace "X" ((\a0 ->
5593                             (trace "X" (case (trace "X" (a0)) of {
5594                                          Prelude.Just h -> (trace "X" ((trace "X" (eq_rect_r (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing))))) (trace "X" ((RuCanR (trace "X" (a))))) (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" (([]))))))))))))))))))))))));
5595                                          Prelude.Nothing -> (trace "X" (RuCanR (trace "X" (a))))}))))) (trace "X" ((\t1 iHt1 t2 iHt2 -> (trace "X" (RComp (trace "X" (a)) (trace "X" ((T_Branch (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" ((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" (a)) (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" ((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" (iHt2)) (trace "X" ((RComp (trace "X" ((T_Branch (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" ((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_Branch (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" ((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" ((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" (a)) (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" ((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" ((RRight (trace "X" (a)) (trace "X" ((T_Branch (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" ((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" ((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" ((RCossa (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" ((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" ((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))))))
5596
5597 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
5598 flatten_proof hetmet_flatten hetmet_unflatten hetmet_id unitTy prodTy gaTy gar h c x =
5599   (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 ->
5600                             (trace "X" (case (trace "X" (x0)) of {
5601                                          SFlat h1 c1 r ->
5602                                           (trace "X" (case (trace "X" (r)) of {
5603                                                        RArrange __U0393_0 __U0394_0 a b x1 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" (d))))));
5604                                                        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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
5605                                                        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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
5606                                                        RNote __U0393_0 __U0394_0 __U03a3_ __U03c4_ l n ->
5607                                                         (trace "X" (case (trace "X" (l)) of {
5608                                                                      ([]) -> (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" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (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" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (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" (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" (__U03c4_)) (trace "X" (([]))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (([])))))))))))))))))) (trace "X" (([]))) (trace "X" (n)))))));
5609                                                                      (:) 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" ((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" (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" ((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" (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)))))))}));
5610                                                        RLit __U0393_0 __U0394_0 l l0 ->
5611                                                         (trace "X" (case (trace "X" (l0)) of {
5612                                                                      ([]) -> (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" ((MkLeveledHaskType (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))))))))))))))))))));
5613                                                                      (:) 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))))))))))))))))))))}));
5614                                                        RVar __U0393_0 __U0394_0 __U03c3_ lev ->
5615                                                         (trace "X" (case (trace "X" (lev)) of {
5616                                                                      ([]) -> (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" ((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" ((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" ((getlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (([])))))))))))))))))) (trace "X" (([]))))))));
5617                                                                      (:) 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)))))))))))))))))))))))}));
5618                                                        RGlobal __U0393_0 __U0394_0 __U03c3_ l wev ->
5619                                                         (trace "X" (case (trace "X" (__U03c3_)) of {
5620                                                                      ([]) ->
5621                                                                       (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
5622                                                                                   (trace "X" (case (trace "X" (s)) of {
5623                                                                                                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" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))) (trace "X" (([])))))))))))))))))))))))))) (trace "X" ((trace "X" ((q (trace "X" (INil)))))))))))));
5624                                                                                                Prelude.False ->
5625                                                                                                 (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
5626                                                                                                             (trace "X" (case (trace "X" (s0)) of {
5627                                                                                                                          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" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (glob_tf (trace "X" (__U0393_0)) (trace "X" (l)) (trace "X" (wev))))))))) (trace "X" (([])))))))))))))))))))))))))) (trace "X" ((trace "X" ((q (trace "X" (INil)))))))))))));
5628                                                                                                                          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" ((MkLeveledHaskType (trace "X" ((\_ -> (trace "X" ((trace "X" (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)))))))))))))))))))))))}))))}))));
5629                                                                      (:) 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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
5630                                                        RLam __U0393_0 __U0394_0 __U03a3_ tx te lev ->
5631                                                         (trace "X" (case (trace "X" (lev)) of {
5632                                                                      ([]) -> (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" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (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" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_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" ((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" ((getlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (tx)) (trace "X" (([])))))))))))))))))) (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" (te)) (trace "X" (([]))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (te)) (trace "X" (([])))))))))))))))))) (trace "X" (([]))))))));
5633                                                                      (:) 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" ((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" ((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" ((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" ((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" ((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" ((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" ((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" ((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" ((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" ((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" ((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" ((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)))))))))))))))))))))))}));
5634                                                        RCast __U0393_0 __U0394_0 __U03a3_ __U03c3_ __U03c4_ lev ->
5635                                                         (trace "X" (case (trace "X" (lev)) of {
5636                                                                      ([]) -> (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" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (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" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (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" (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" ((getlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3_)) (trace "X" (([])))))))))))))))))) (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" (__U03c4_)) (trace "X" (([]))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c4_)) (trace "X" (([])))))))))))))))))) (trace "X" (([]))))))));
5637                                                                      (:) 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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
5638                                                        RJoin __U0393_0 p lri m x1 q ->
5639                                                         (trace "X" (let {h2 = (trace "X" ((trace "X" (getjlev0 (trace "X" (__U0393_0)) (trace "X" (x1))))))} in
5640                                                                     (trace "X" (case (trace "X" (h2)) of {
5641                                                                                  ([]) ->
5642                                                                                   (trace "X" (let {h3 = (trace "X" ((trace "X" (getjlev0 (trace "X" (__U0393_0)) (trace "X" (q))))))} in
5643                                                                                               (trace "X" (case (trace "X" (h3)) of {
5644                                                                                                            ([]) -> (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" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (x1)))))))))))))))) (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" ((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" ((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" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (x1))))))) (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" ((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" ((trace "X" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0))))))) (trace "X" (x1))))))) (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))))))))))));
5645                                                                                                            (:) h4 h5 -> (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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))));
5646                                                                                  (:) h3 h4 -> (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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))));
5647                                                        RApp __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ tx te lev ->
5648                                                         (trace "X" (case (trace "X" (lev)) of {
5649                                                                      ([]) -> (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" ((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" ((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" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_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" ((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" ((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" ((flatten_leveled_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" ((MkLeveledHaskType (trace "X" (te)) (trace "X" (([])))))))))))))))))))))))))) (trace "X" ((trace "X" ((eq_rect (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" ((flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (tx)) (trace "X" (env)))))))))) (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" (env)))))))))))) (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" (([])))))) (trace "X" ((\_ -> (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))))))))))))))))))))))))));
5650                                                                      (:) 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" ((eq_rect (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" ((flatten_type (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" (tx)) (trace "X" (env)))))))))) (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" (env)))))))))))) (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" ((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" ((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_)))))))))))))))))))}));
5651                                                        RLet __U0393_0 __U0394_0 __U03a3___U2081_ __U03a3___U2082_ __U03c3___U2081_ __U03c3___U2082_ lev ->
5652                                                         (trace "X" (case (trace "X" (lev)) of {
5653                                                                      ([]) -> (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___U2082_))))))) (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___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" ((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___U2082_)) (trace "X" (([])))))))))))))))))))) (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" ((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" ((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" ((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" (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___U2081_)) (trace "X" (([]))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2081_)) (trace "X" (([])))))))))))))))))) (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___U2082_)) (trace "X" (([]))))))))))))) (trace "X" ((trace "X" ((getlev (trace "X" (__U0393_0)) (trace "X" (KindStar)) (trace "X" ((MkLeveledHaskType (trace "X" (__U03c3___U2082_)) (trace "X" (([])))))))))))))))))) (trace "X" (([]))))))));
5654                                                                      (:) 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___U2082_)) (trace "X" (((:) (trace "X" (ec)) (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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (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_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" (lev0))))) (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___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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___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" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (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_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" (lev0))))) (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___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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" ((Nd_prod (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___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" ((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_)))))))))))) (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" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (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_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" (lev0))))) (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___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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___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" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (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_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" (lev0))))) (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___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" ((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___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" ((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_)))))))))))) (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" (ga_mk (trace "X" (unitTy)) (trace "X" (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" (lev0))))) (trace "X" (__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___U2082_))))))))))))))) (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" (lev0))))) (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___U2082_))))))))))))))))))))))))) (trace "X" (([]))) (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" ((\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_)))))))))))) (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" ((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_)))))))))))))))))))))) (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" ((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" ((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_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" (lev0))))) (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___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" ((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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___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" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (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_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" (lev0))))) (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___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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___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" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___U2082_))))))))))))))))))))))))) (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_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" (lev0))))) (trace "X" (__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___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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" ((Nd_prod (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___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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___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" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (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_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" (lev0))))) (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___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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___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" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___U2082_))))))))))))))))))))))))) (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_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" (lev0))))) (trace "X" (__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___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" ((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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___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" ((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" ((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_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" (lev0))))) (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___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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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" ((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" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___U2082_))))))))))))))))))))))))) (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_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" (lev0))))) (trace "X" (__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___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" ((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" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (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_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" (lev0))))) (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___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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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" ((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" ((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" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (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___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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" ((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" ((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___U2081_))))))))))))))))))))) (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" ((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" ((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" (lev0))))) (trace "X" (__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___U2082_))))))))))))))) (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" (lev0))))) (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___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" ((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" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___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" ((trace "X" ((drop_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0))))) (trace "X" (__U03a3___U2081_)))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" (lev0))))) (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___U2082_))))))))))))))))))))))))) (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_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" (lev0))))) (trace "X" (__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___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" ((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" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((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" ((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_)))))))))))) (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_))))))))))))))) (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" ((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" ((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" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (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" (lev0))))) (trace "X" (__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___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" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (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" (lev0))))) (trace "X" (__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___U2082_))))))))))))))) (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" (lev0))))) (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___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___U2082_)) (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___U2082_)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (lev0)))))))))))))))))))))))}));
5655                                                        RVoid __U0393_0 __U0394_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.Nothing)))))))))))))) (trace "X" ((RVoid (trace "X" (__U0393_0)) (trace "X" (__U0394_0)))))));
5656                                                        RAppT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ __U03c4_ lev ->
5657                                                         (trace "X" (case (trace "X" (lev)) of {
5658                                                                      ([]) -> (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" ((getlev (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" ((MkLeveledHaskType (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" ((getlev (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" ((MkLeveledHaskType (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" ((getlev (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_))))))))))))))))))));
5659                                                                      (:) 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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
5660                                                        RAbsT __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ lev ->
5661                                                         (trace "X" (case (trace "X" (lev)) of {
5662                                                                      ([]) -> (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" ((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" ((\_ 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" ((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" ((\_ 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" ((MkLeveledHaskType (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" ((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" ((\_ 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" ((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" ((\_ 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" ((MkLeveledHaskType (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_))))))))))))))))))));
5663                                                                      (:) 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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
5664                                                        RAppCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3___U2081_ __U03c3___U2082_ __U03c3_ lev ->
5665                                                         (trace "X" (case (trace "X" (lev)) of {
5666                                                                      ([]) -> (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" ((MkLeveledHaskType (trace "X" ((\_ -> (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" (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" ((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" ((MkLeveledHaskType (trace "X" ((\_ -> (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" ((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 ->
5667                                                                       (trace "X" ((trace "X" (let {
5668                                                                                                flatten_rawtype0 __U03ba_0 exp =
5669                                                                                                  (trace "X" (case (trace "X" (exp)) of {
5670                                                                                                               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)))))))));
5671                                                                                                               TApp __U03ba___U2081_ __U03ba___U2082_ x1 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" (x1))))))) (trace "X" ((trace "X" ((flatten_rawtype0 (trace "X" (__U03ba___U2082_)) (trace "X" (y)))))))));
5672                                                                                                               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))))))))))))))));
5673                                                                                                               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')))))))))))))))))));
5674                                                                                                               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)))))))));
5675                                                                                                               x1 -> (trace "X" (x1))}));
5676                                                                                                flatten_rawtype_list _ lk exp =
5677                                                                                                  (trace "X" (case (trace "X" (exp)) of {
5678                                                                                                               TyFunApp_nil -> (trace "X" (TyFunApp_nil));
5679                                                                                                               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)))))))))}))}
5680                                                                                               in flatten_rawtype0 (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2081_ (trace "X" (__)) (trace "X" (env)))))))))))))) (trace "X" ((\_ env ->
5681                                                                       (trace "X" ((trace "X" (let {
5682                                                                                                flatten_rawtype0 __U03ba_0 exp =
5683                                                                                                  (trace "X" (case (trace "X" (exp)) of {
5684                                                                                                               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)))))))));
5685                                                                                                               TApp __U03ba___U2081_ __U03ba___U2082_ x1 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" (x1))))))) (trace "X" ((trace "X" ((flatten_rawtype0 (trace "X" (__U03ba___U2082_)) (trace "X" (y)))))))));
5686                                                                                                               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))))))))))))))));
5687                                                                                                               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')))))))))))))))))));
5688                                                                                                               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)))))))));
5689                                                                                                               x1 -> (trace "X" (x1))}));
5690                                                                                                flatten_rawtype_list _ lk exp =
5691                                                                                                  (trace "X" (case (trace "X" (exp)) of {
5692                                                                                                               TyFunApp_nil -> (trace "X" (TyFunApp_nil));
5693                                                                                                               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)))))))))}))}
5694                                                                                               in flatten_rawtype0 (trace "X" (__U03ba_)) (trace "X" ((trace "X" ((__U03c3___U2082_ (trace "X" (__)) (trace "X" (env)))))))))))))) (trace "X" ((\_ -> (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" (([]))))))));
5695                                                                      (:) 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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
5696                                                        RAbsCo __U0393_0 __U0394_0 __U03a3_ __U03ba_ __U03c3_ __U03c3___U2081_ __U03c3___U2082_ lev ->
5697                                                         (trace "X" (case (trace "X" (lev)) of {
5698                                                                      ([]) -> (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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
5699                                                                      (:) 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" ([])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
5700                                                        RLetRec __U0393_0 __U0394_0 lri x1 y t -> (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" ('(')) (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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
5701                                                        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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
5702                                          SBrak __U0393_0 __U0394_0 t ec succ lev ->
5703                                           (trace "X" (case (trace "X" (lev)) of {
5704                                                        ([]) -> (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" ((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" (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" ((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" (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" ((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" (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" ((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" (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" ((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" (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" (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_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" ((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" (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" ((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" (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" ((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" (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" ((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" (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" ((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)))))))))))))))))))));
5705                                                        (:) 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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}));
5706                                          SEsc __U0393_0 __U0394_0 t ec succ lev ->
5707                                           (trace "X" (case (trace "X" (lev)) of {
5708                                                        ([]) ->
5709                                                         (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)))))))))))))))))))))))))))))
5710                                                                                   (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" ((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" ((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" ((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_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" ((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" ((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" ((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" ((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" (([])))))))))))))))))))))
5711                                                                                                             (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))))))))))))
5712                                                                                                                                       (trace "X" ((trace "X" ((eq_rect_r (trace "X" ((trace "X" ((take_arg_types_as_tree (trace "X" (__U0393_0)) (trace "X" (t)))))))
5713                                                                                                                                                                 (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" ((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" ((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" ((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" ((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" ((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" ((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_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))))))))))))))))))))))))))))))))))
5714                                                                                                                                                                                           (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
5715                                                                                                                                                                                                        (trace "X" (case (trace "X" (q')) of {
5716                                                                                                                                                                                                                     Prelude.Left s -> (trace "X" (case (trace "X" (s)) of {
5717                                                                                                                                                                                                                                                    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" (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" ((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" ((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" (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" ((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" ((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" (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_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" (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" ((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" ((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" (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" ((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" ((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" ((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" ((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" ((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" (succ_host)) (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_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" (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" ((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" ((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" (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" (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" ((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" ((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" (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" ((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" ((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" ((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" ((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" ((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" (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" ((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" ((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" (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" (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" ((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" ((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" (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" ((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" ((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" ((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" ((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" ((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" ((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" ((\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" ((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" ((\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" ((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" ((\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" ((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" ((\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" ((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" ((\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" ((RCanR (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" (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" ((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" ((trace "X" (ga_mk (trace "X" (unitTy)) (trace "X" (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" (([]))) (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" ((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" ((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" ((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" ((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" ((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" (([]))) (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" ((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" ((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" ((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" ((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" ((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" (([]))) (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" ((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" ((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" ((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" ((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" ((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" (([]))) (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" ((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" ((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" ((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" ((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" ((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" ((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" (succ_host)) (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_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" (succ_host)) (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" ((\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" (ga_mk (trace "X" (unitTy)) (trace "X" (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" ((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" ((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" ((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" (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_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" (succ_host)) (trace "X" ((T_Leaf (trace "X" (Prelude.Nothing)))))))) (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_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" ((RCanR (trace "X" (succ_host)))))))))))))))))) (trace "X" ((trace "X" ((take_lev (trace "X" (__U0393_0)) (trace "X" (((:) (trace "X" (ec)) (trace "X" (([])))))) (trace "X" (succ)))))))))))}));
5718                                                                                                                                                                                                                     Prelude.Right u -> (trace "X" ((trace "X" (ga_kappa' (trace "X" (unitTy)) (trace "X" (prodTy)) (trace "X" (gaTy)) (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" (([])))))) (trace "X" (succ)))))))))))) (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" ((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" ((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" ((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" ((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_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" ((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" ((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" ((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" ((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" ((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_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" ((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" ((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" ((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" ((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" ((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" ((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))))))))))))))))))));
5719                                                        (:) 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))))))
5720
5721 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
5722 skolemize_and_flatten_proof hetmet_flatten hetmet_unflatten hetmet_id unitTy prodTy gaTy gar h c x =
5723   (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)))))))))))
5724
5725 __U0393_ :: TypeEnv
5726 __U0393_ =
5727   (trace "X" (([])))
5728
5729 __U0394_ :: CoercionEnv
5730 __U0394_ =
5731   (trace "X" (([])))
5732
5733 __U03c6_ :: TyVarResolver
5734 __U03c6_ cv =
5735   (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))))))))))))))))))))))
5736
5737 __U03c8_ :: CoVarResolver
5738 __U03c8_ cv =
5739   (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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
5740
5741 __U03be_ :: Var.Var -> LeveledHaskType
5742 __U03be_ cv =
5743   (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (cv)))))) of {
5744                WExprVar wev ->
5745                 (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 {
5746                              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)))))))))));
5747                              OK t -> (trace "X" (MkLeveledHaskType (trace "X" (t)) (trace "X" (([])))))}));
5748                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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
5749                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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))
5750
5751 header :: Prelude.String
5752 header =
5753   (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))))))
5754
5755 footer :: Prelude.String
5756 footer =
5757   (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))))))
5758
5759 coreToStringExpr' :: (CoreSyn.Expr Var.Var) -> OrError Prelude.String
5760 coreToStringExpr' ce =
5761   (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" ((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)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
5762
5763 coreToStringExpr :: (CoreSyn.Expr Var.Var) -> Prelude.String
5764 coreToStringExpr ce =
5765   (trace "X" (case (trace "X" ((trace "X" (coreToStringExpr' (trace "X" (ce)))))) of {
5766                Error s -> (trace "X" ((trace "X" (Prelude.error (trace "X" (s))))));
5767                OK x -> (trace "X" (x))}))
5768
5769 coreToStringBind :: (CoreSyn.Bind Var.Var) -> Prelude.String
5770 coreToStringBind binds =
5771   (trace "X" (case (trace "X" (binds)) of {
5772                CoreSyn.NonRec c e -> (trace "X" ((trace "X" (coreToStringExpr (trace "X" (e))))));
5773                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" ([]))))))}))
5774
5775 coqPassCoreToString :: (([]) (CoreSyn.Bind Var.Var)) -> Prelude.String
5776 coqPassCoreToString lbinds =
5777   (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))))))
5778
5779 mkWeakTypeVar0 :: Unique.Unique -> Kind -> WeakTypeVar0
5780 mkWeakTypeVar0 u k =
5781   (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))))
5782
5783 mkWeakCoerVar0 :: Unique.Unique -> Kind -> WeakType -> WeakType -> WeakCoerVar0
5784 mkWeakCoerVar0 u k t1 t2 =
5785   (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))))
5786
5787 mkWeakExprVar0 :: Unique.Unique -> WeakType -> WeakExprVar0
5788 mkWeakExprVar0 u t =
5789   (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))))
5790
5791 larger :: (([]) Nat) -> SigT Nat ()
5792 larger ln =
5793   (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 {
5794                                                                                                                                     ExistT n _ -> (trace "X" (ExistT (trace "X" ((trace "X" ((plus (trace "X" ((S (trace "X" (n))))) (trace "X" (a))))))) (trace "X" (__))))}))))) (trace "X" (ln))))))
5795
5796 freshNat :: FreshMonad Nat
5797 freshNat =
5798   (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 {
5799                                                                                                                                                                                                                                                                                                                                                                         (,) 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 {
5800                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ExistT n' _ -> (trace "X" (ExistT (trace "X" (n')) (trace "X" (__))))})))))))))))))))))
5801
5802 coreVarToWeakExprVarOrError :: Var.Var -> WeakExprVar0
5803 coreVarToWeakExprVarOrError cv =
5804   (trace "X" (case (trace "X" ((trace "X" (coreVarToWeakVar (trace "X" (cv)))))) of {
5805                WExprVar wv -> (trace "X" (wv));
5806                _ -> (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" ([]))))))))))))))))))))))))))))))))))))}))
5807
5808 curry :: TypeEnv -> CoercionEnv -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> (Tree (Prelude.Maybe LeveledHaskType)) -> HaskLevel -> ND Judg Rule
5809 curry __U0393_0 __U0394_0 a s __U03a3_ lev =
5810   (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" ((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" ((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" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" (__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" ((MkLeveledHaskType (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" ((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" ((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" ((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" ((MkLeveledHaskType (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" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (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" ((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" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (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" ((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" ((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.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" ((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" ((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" ((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" ((MkLeveledHaskType (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" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (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" ((a (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))))))))))))))))))))) (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" ((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" ((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.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" ((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" ((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" ((MkLeveledHaskType (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" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (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" ((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" ((MkLeveledHaskType (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" ((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" ((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" ((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_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" (a)) (trace "X" (lev))))))))))) (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" ((MkJudg (trace "X" (__U0393_0)) (trace "X" (__U0394_0)) (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (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" ((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" (__U03a3_))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (s)) (trace "X" (lev)))))))))))))))))))) (trace "X" ((RApp (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" (__U03a3_)) (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" ((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" ((MkLeveledHaskType (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" (__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" ((MkLeveledHaskType (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" (__U03a3_))))) (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" ((MkLeveledHaskType (trace "X" (s)) (trace "X" (lev))))))))))) (trace "X" ((RExch (trace "X" (__U03a3_)) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))))))))))))))
5811
5812 fToC1 :: TypeEnv -> CoercionEnv -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> HaskLevel -> (ND Judg Rule) -> ND Judg Rule
5813 fToC1 __U0393_0 __U0394_0 a s lev pf =
5814   (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" ((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" ((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" ((MkLeveledHaskType (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" ((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" ((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.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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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.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" ((MkLeveledHaskType (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" ((MkLeveledHaskType (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.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" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (s)) (trace "X" (lev))))))))))) (trace "X" ((RCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a)) (trace "X" (lev)))))))))))))))))))))))))
5815
5816 fToC2 :: TypeEnv -> CoercionEnv -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> (() -> (InstantiatedTypeEnv ()) -> RawHaskType ()) -> HaskLevel -> (ND Judg Rule) -> ND Judg Rule
5817 fToC2 __U0393_0 __U0394_0 a1 a2 s lev pf =
5818   (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" ((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" ((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" ((MkLeveledHaskType (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" ((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" ((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.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" ((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" ((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" ((MkLeveledHaskType (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.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" ((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" ((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" ((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" ((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" ((MkLeveledHaskType (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.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" ((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" ((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" ((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" ((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.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" ((MkLeveledHaskType (trace "X" (a1)) (trace "X" (lev))))))))))) (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (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" ((a2 (trace "X" (__)) (trace "X" (env)))))))))) (trace "X" ((trace "X" ((s (trace "X" (__)) (trace "X" (env)))))))))))) (trace "X" (lev))))))))))) (trace "X" ((RCanL (trace "X" ((T_Leaf (trace "X" ((Prelude.Just (trace "X" ((MkLeveledHaskType (trace "X" (a1)) (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)))))))))))))))
5819
5820 ga_unit :: TyCon.TyCon -> (RawHaskType a1) -> RawHaskType a1
5821 ga_unit hetmet_PGArrow_unit_TyCon ec =
5822   (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)))))))
5823
5824 ga_prod :: TyCon.TyCon -> (RawHaskType a1) -> (RawHaskType a1) -> (RawHaskType a1) -> RawHaskType a1
5825 ga_prod hetmet_PGArrow_tensor_TyCon ec a b =
5826   (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)))))))))))))
5827
5828 ga_type :: TyCon.TyCon -> (RawHaskType a1) -> (RawHaskType a1) -> (RawHaskType a1) -> RawHaskType a1
5829 ga_type hetmet_PGArrowTyCon a b c =
5830   (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))))
5831
5832 ga_type' :: TyCon.TyCon -> TypeEnv -> HaskType -> HaskType -> HaskType -> (InstantiatedTypeEnv a1) -> RawHaskType a1
5833 ga_type' hetmet_PGArrowTyCon __U0393_0 a b c ite =
5834   (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)))))))))
5835
5836 mkGlob2' :: TypeEnv -> Kind -> Kind -> (HaskType -> HaskType -> HaskType) -> (IList Kind HaskType) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
5837 mkGlob2' __U0393_0 __U03ba___U2081_ __U03ba___U2082_ f x x0 =
5838   (trace "X" (let {
5839                x1 = (trace "X" (\_ ->
5840                 (trace "X" (case (trace "X" (x)) of {
5841                              INil -> (trace "X" (false_rect));
5842                              ICons i is x1 x2 ->
5843                               (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2081_)) (trace "X" ((\_ ->
5844                                                         (trace "X" ((trace "X" (eq_rect (trace "X" (((:) (trace "X" (__U03ba___U2082_)) (trace "X" (([])))))) (trace "X" ((\x3 x4 ->
5845                                                                                   (trace "X" (case (trace "X" (x4)) of {
5846                                                                                                INil -> (trace "X" (false_rect));
5847                                                                                                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))))))}))))}
5848               in
5849               (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x1)) (trace "X" (__)) (trace "X" (__)) (trace "X" (x0))))))))
5850
5851 mkGlob2 :: TypeEnv -> CoercionEnv -> HaskLevel -> Kind -> Kind -> Var.Var -> (HaskType -> HaskType -> HaskType) -> HaskType -> HaskType -> ND Judg Rule
5852 mkGlob2 __U0393_0 __U0394_0 l __U03ba___U2081_ __U03ba___U2082_ cv f x y =
5853   (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" ((MkLeveledHaskType (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)))))))))))))
5854
5855 mkGlob3' :: TypeEnv -> Kind -> Kind -> Kind -> (HaskType -> HaskType -> HaskType -> HaskType) -> (IList Kind HaskType) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
5856 mkGlob3' __U0393_0 __U03ba___U2081_ __U03ba___U2082_ __U03ba___U2083_ f x x0 =
5857   (trace "X" (let {
5858                x1 = (trace "X" (\_ ->
5859                 (trace "X" (case (trace "X" (x)) of {
5860                              INil -> (trace "X" (false_rect));
5861                              ICons i is x1 x2 ->
5862                               (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2081_)) (trace "X" ((\_ ->
5863                                                         (trace "X" ((trace "X" (eq_rect (trace "X" (((:) (trace "X" (__U03ba___U2082_)) (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (([]))))))))) (trace "X" ((\x3 x4 ->
5864                                                                                   (trace "X" (case (trace "X" (x4)) of {
5865                                                                                                INil -> (trace "X" (false_rect));
5866                                                                                                ICons i0 is0 x5 x6 ->
5867                                                                                                 (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2082_)) (trace "X" ((\_ ->
5868                                                                                                                           (trace "X" ((trace "X" (eq_rect (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (([])))))) (trace "X" ((\x7 x8 ->
5869                                                                                                                                                     (trace "X" (case (trace "X" (x8)) of {
5870                                                                                                                                                                  INil -> (trace "X" (false_rect));
5871                                                                                                                                                                  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))))))}))))}
5872               in
5873               (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x1)) (trace "X" (__)) (trace "X" (__)) (trace "X" (x0))))))))
5874
5875 mkGlob3 :: TypeEnv -> CoercionEnv -> HaskLevel -> Kind -> Kind -> Kind -> Var.Var -> (HaskType -> HaskType -> HaskType -> HaskType) -> HaskType -> HaskType -> HaskType -> ND Judg Rule
5876 mkGlob3 __U0393_0 __U0394_0 l __U03ba___U2081_ __U03ba___U2082_ __U03ba___U2083_ cv f x y z =
5877   (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" ((MkLeveledHaskType (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))))))))))))))))
5878
5879 mkGlob4' :: TypeEnv -> Kind -> Kind -> Kind -> Kind -> (HaskType -> HaskType -> HaskType -> HaskType -> HaskType) -> (IList Kind HaskType) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
5880 mkGlob4' __U0393_0 __U03ba___U2081_ __U03ba___U2082_ __U03ba___U2083_ __U03ba___U2084_ f x x0 =
5881   (trace "X" (let {
5882                x1 = (trace "X" (\_ ->
5883                 (trace "X" (case (trace "X" (x)) of {
5884                              INil -> (trace "X" (false_rect));
5885                              ICons i is x1 x2 ->
5886                               (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2081_)) (trace "X" ((\_ ->
5887                                                         (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 ->
5888                                                                                   (trace "X" (case (trace "X" (x4)) of {
5889                                                                                                INil -> (trace "X" (false_rect));
5890                                                                                                ICons i0 is0 x5 x6 ->
5891                                                                                                 (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2082_)) (trace "X" ((\_ ->
5892                                                                                                                           (trace "X" ((trace "X" (eq_rect (trace "X" (((:) (trace "X" (__U03ba___U2083_)) (trace "X" (((:) (trace "X" (__U03ba___U2084_)) (trace "X" (([]))))))))) (trace "X" ((\x7 x8 ->
5893                                                                                                                                                     (trace "X" (case (trace "X" (x8)) of {
5894                                                                                                                                                                  INil -> (trace "X" (false_rect));
5895                                                                                                                                                                  ICons i1 is1 x9 x10 ->
5896                                                                                                                                                                   (trace "X" ((trace "X" (eq_rect (trace "X" (__U03ba___U2083_)) (trace "X" ((\_ ->
5897                                                                                                                                                                                             (trace "X" ((trace "X" (eq_rect (trace "X" (((:) (trace "X" (__U03ba___U2084_)) (trace "X" (([])))))) (trace "X" ((\x11 x12 ->
5898                                                                                                                                                                                                                       (trace "X" (case (trace "X" (x12)) of {
5899                                                                                                                                                                                                                                    INil -> (trace "X" (false_rect));
5900                                                                                                                                                                                                                                    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))))))}))))}
5901               in
5902               (trace "X" ((trace "X" (unsafeCoerce (trace "X" (x1)) (trace "X" (__)) (trace "X" (__)) (trace "X" (x0))))))))
5903
5904 mkGlob4 :: TypeEnv -> CoercionEnv -> HaskLevel -> Kind -> Kind -> Kind -> Kind -> Var.Var -> (HaskType -> HaskType -> HaskType -> HaskType -> HaskType) -> HaskType -> HaskType -> HaskType -> HaskType -> ND Judg Rule
5905 mkGlob4 __U0393_0 __U0394_0 l __U03ba___U2081_ __U03ba___U2082_ __U03ba___U2083_ __U03ba___U2084_ cv f x y z q =
5906   (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" ((MkLeveledHaskType (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)))))))))))))))))))
5907
5908 gat :: TyCon.TyCon -> TyCon.TyCon -> TypeEnv -> HaskType -> (Tree (Prelude.Maybe HaskType)) -> (InstantiatedTypeEnv a1) -> RawHaskType a1
5909 gat hetmet_PGArrow_unit_TyCon hetmet_PGArrow_tensor_TyCon __U0393_0 ec x x0 =
5910   (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))))))
5911
5912 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
5913 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 =
5914   (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" ([])))))))))))))))))))))))))))))))))))
5915
5916 hetmet_brak' :: Var.Var -> WeakExprVar0
5917 hetmet_brak' hetmet_brak =
5918   (trace "X" ((trace "X" (coreVarToWeakExprVarOrError (trace "X" (hetmet_brak))))))
5919
5920 hetmet_esc' :: Var.Var -> WeakExprVar0
5921 hetmet_esc' hetmet_esc =
5922   (trace "X" ((trace "X" (coreVarToWeakExprVarOrError (trace "X" (hetmet_esc))))))
5923
5924 hetmet_flatten' :: Var.Var -> WeakExprVar0
5925 hetmet_flatten' hetmet_flatten =
5926   (trace "X" ((trace "X" (coreVarToWeakExprVarOrError (trace "X" (hetmet_flatten))))))
5927
5928 hetmet_unflatten' :: Var.Var -> WeakExprVar0
5929 hetmet_unflatten' hetmet_unflatten =
5930   (trace "X" ((trace "X" (coreVarToWeakExprVarOrError (trace "X" (hetmet_unflatten))))))
5931
5932 hetmet_flattened_id' :: Var.Var -> WeakExprVar0
5933 hetmet_flattened_id' hetmet_flattened_id =
5934   (trace "X" ((trace "X" (coreVarToWeakExprVarOrError (trace "X" (hetmet_flattened_id))))))
5935
5936 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)
5937 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 =
5938   (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" (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" ((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" ((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" ((MkLeveledHaskType (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" ((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" ((MkLeveledHaskType (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))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
5939
5940 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
5941 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 =
5942   (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 {
5943                Error s -> (trace "X" ((trace "X" (Prelude.error (trace "X" (s))))));
5944                OK x -> (trace "X" (x))}))
5945
5946 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
5947 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 =
5948   (trace "X" (case (trace "X" (binds)) of {
5949                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'))))));
5950                CoreSyn.Rec lbe -> (trace "X" (CoreSyn.Rec (trace "X" ((trace "X" ((map (trace "X" ((\ve -> (trace "X" (case (trace "X" (ve)) of {
5951                                                                                                                         (,) 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)))))))))}))
5952
5953 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)
5954 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 =
5955   (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))))))
5956
5957 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)
5958 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 =
5959   (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))))))
5960