+take_arrange :: TypeEnv -> HaskType -> HaskType -> HaskLevel -> Arrange LeveledHaskType
+take_arrange __U0393_0 tx te lev =
+ (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
+ (trace "X" (case (trace "X" (s)) of {
+ 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)))))))))))))))))))));
+ Prelude.False ->
+ (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
+ (trace "X" (case (trace "X" (n0)) of {
+ 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))))));
+ 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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))))}))))
+
+take_unarrange :: TypeEnv -> HaskType -> HaskType -> HaskLevel -> Arrange LeveledHaskType
+take_unarrange __U0393_0 tx te lev =
+ (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
+ (trace "X" (case (trace "X" (s)) of {
+ 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)))))))))))))))))))));
+ Prelude.False ->
+ (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
+ (trace "X" (case (trace "X" (n0)) of {
+ 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))))));
+ 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" ([]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}))))}))))
+