Skip to content

Instantly share code, notes, and snippets.

@master-q
Created December 17, 2013 01:56
Show Gist options
  • Save master-q/7998665 to your computer and use it in GitHub Desktop.
Save master-q/7998665 to your computer and use it in GitHub Desktop.
char jhc_c_compile[] = "gcc tdir/rts/profile.c tdir/rts/rts_support.c tdir/rts/gc_none.c tdir/rts/jhc_rts.c tdir/lib/lib_cbits.c tdir/rts/gc_jgc.c tdir/rts/stableptr.c tdir/rts/conc.c -Itdir/cbits -Itdir tdir/main_code.c -o hs.out '-std=gnu99' -D_GNU_SOURCE '-falign-functions=4' -ffast-math -Wextra -Wall -Wno-unused-parameter -fno-strict-aliasing -g -lm '-D_JHC_GC=_JHC_GC_JGC' '-D_JHC_CONC=_JHC_CONC_NONE'";
char jhc_command[] = "ajhc Main.hs -fdebug --tdir=tdir";
char jhc_version[] = "ajhc 0.8.0.10 (ef04922345d3503235620c86405af838f0271347)";
#include "jhc_rts_header.h"
struct s_caches_pub {
struct s_cache *cCJhc_Type_Basic_Integer;
struct s_cache *cCJhc_Prim_Prim_$x3a;
struct s_cache *cCJhc_Prim_Prim_$LccR;
struct s_cache *cFtheMain$d4;
struct s_cache *cFtheMain$d3;
struct s_cache *cFtheMain$d5;
struct s_cache *cFtheMain$d2;
struct s_cache *cFR$__fJhc_Basics_$pp;
struct s_cache *cFJhc_Show_shows;
struct s_cache *cFW$__fJhc_Inst_Show_showWordMax;
};
#include <stdio.h>
#include <wchar.h>
enum {
CJhc_Prim_Prim_$BE = 1,
CJhc_Prim_Prim_$LR = 0,
CJhc_Prim_Prim_$x3a = 0,
CJhc_Type_Basic_Char = 0,
CJhc_Type_Basic_Integer = 0,
CJhc_Type_Word_Int = 0,
TJhc_Prim_Prim_$LccR = 0,
TJhc_Prim_Prim_Bool = 1,
TJhc_Type_Basic_Integer = 2
};
struct sCJhc_Prim_Prim_$LccR A_ALIGNED;
struct sCJhc_Prim_Prim_$x3a A_ALIGNED;
struct sCJhc_Type_Basic_Integer A_ALIGNED;
struct sCJhc_Type_Word_Int A_ALIGNED;
struct sFJhc_Show_shows A_ALIGNED;
struct sFR$__fJhc_Basics_$pp A_ALIGNED;
struct sFW$__fJhc_Inst_Show_showWordMax A_ALIGNED;
struct sFtheMain$d2 A_ALIGNED;
struct sFtheMain$d3 A_ALIGNED;
struct sFtheMain$d4 A_ALIGNED;
struct sFtheMain$d5 A_ALIGNED;
struct sTJhc_Prim_Prim_$LccR A_ALIGNED;
struct sCJhc_Prim_Prim_$LccR {
sptr_t a1;
sptr_t a2;
sptr_t a3;
};
struct sCJhc_Prim_Prim_$x3a {
sptr_t a1;
sptr_t a2;
};
struct sCJhc_Type_Basic_Integer {
uintmax_t a1;
};
struct sCJhc_Type_Word_Int {
uint32_t a1;
};
struct sFJhc_Show_shows {
fptr_t head;
wptr_t a1;
sptr_t a2;
wptr_t a3;
};
struct sFR$__fJhc_Basics_$pp {
fptr_t head;
sptr_t a1;
wptr_t a2;
};
struct sFW$__fJhc_Inst_Show_showWordMax {
fptr_t head;
wptr_t a2;
uintmax_t a1;
};
struct sFtheMain$d2 {
fptr_t head;
};
struct sFtheMain$d3 {
fptr_t head;
};
struct sFtheMain$d4 {
fptr_t head;
wptr_t a1;
};
struct sFtheMain$d5 {
fptr_t head;
sptr_t a1;
};
struct sTJhc_Prim_Prim_$LccR {
what_t what;
wptr_t a1;
wptr_t a2;
wptr_t a3;
};
void jhc_hs_init(gc_t gc,arena_t arena) ;
static wptr_t E__fJhc_Show_shows(gc_t gc,arena_t arena,struct sFJhc_Show_shows* arg) A_STD A_FALIGNED;
static wptr_t E__fR$__fJhc_Basics_$pp(gc_t gc,arena_t arena,struct sFR$__fJhc_Basics_$pp* arg) A_STD A_FALIGNED;
static wptr_t E__fW$__fJhc_Inst_Show_showWordMax(gc_t gc,arena_t arena,struct sFW$__fJhc_Inst_Show_showWordMax* arg) A_STD A_FALIGNED;
static wptr_t E__ftheMain$d2(gc_t gc,arena_t arena,struct sFtheMain$d2* arg) A_STD A_FALIGNED;
static wptr_t E__ftheMain$d3(gc_t gc,arena_t arena,struct sFtheMain$d3* arg) A_STD A_FALIGNED;
static wptr_t E__ftheMain$d4(gc_t gc,arena_t arena,struct sFtheMain$d4* arg) A_STD A_FALIGNED;
static wptr_t E__ftheMain$d5(gc_t gc,arena_t arena,struct sFtheMain$d5* arg) A_STD A_FALIGNED;
void _amain(void) ;
static struct tup1 bRfW$__fR$__fMain_wwc(gc_t gc,arena_t arena,uintmax_t v135371087,wptr_t v29375222,wptr_t v44000781,sptr_t v215884592) A_STD;
static struct tup1 bRfW$__fW$__fData_List_610__lgo(gc_t gc,arena_t arena,wptr_t v209623990,sptr_t v227981241,wptr_t v105553558,sptr_t v61835305) A_STD;
static void b__main(gc_t gc,arena_t arena) A_STD;
static wptr_t fJhc_Basics_$pp(gc_t gc,arena_t arena,wptr_t v132,wptr_t v134) A_STD A_MALLOC;
static wptr_t fJhc_Show_shows(gc_t gc,arena_t arena,wptr_t v1462509595,sptr_t v80100070,wptr_t v216085086) A_STD A_MALLOC;
static wptr_t fJhc_Show_showsPrec(gc_t gc,arena_t arena,wptr_t v1333402651,wptr_t v194508206,sptr_t v80256462,wptr_t v75583672) A_STD A_MALLOC;
static wptr_t fJhc_Show_showsPrec$d2(gc_t gc,arena_t arena,uintmax_t v80100076,wptr_t v123872602) A_STD A_MALLOC;
static wptr_t fPrelude_IO_10__getContents$t(gc_t gc,arena_t arena) A_STD A_MALLOC;
static wptr_t fR$__fJhc_Basics_$pp(gc_t gc,arena_t arena,sptr_t v110947982,wptr_t v29534740) A_STD A_MALLOC;
static wptr_t fW$__fJhc_Inst_Show_showWordMax(gc_t gc,arena_t arena,uintmax_t v1817845811,wptr_t v1821122605) A_STD A_MALLOC;
static struct tup1 fW$__fR$__fMain_wwc(gc_t gc,arena_t arena,uintmax_t v135370990,wptr_t v29375124,wptr_t v44000682,sptr_t v215884492) A_STD;
static uint16_t fW$__fSpec$__Jhc_List_217_fJhc_List_elem(gc_t gc,arena_t arena,wptr_t v454,wptr_t v457) A_STD;
static struct tup1 fW$__fW$__fData_List_610__lgo(gc_t gc,arena_t arena,wptr_t v209623812,wptr_t v227981062,wptr_t v105553378,sptr_t v61835124) A_STD;
static void ftheMain(gc_t gc,arena_t arena) A_STD;
static wptr_t ftheMain$d2(gc_t gc,arena_t arena) A_STD A_MALLOC;
static wptr_t ftheMain$d3(gc_t gc,arena_t arena) A_STD A_MALLOC;
static wptr_t ftheMain$d4(gc_t gc,arena_t arena,wptr_t v29375120) A_STD A_MALLOC;
static wptr_t ftheMain$d5(gc_t gc,arena_t arena,sptr_t v29042940) A_STD A_MALLOC;
struct tup5 {
sptr_t t0;
sptr_t t1;
};
struct tup3 {
sptr_t t0;
sptr_t t1;
sptr_t t2;
};
struct tup1 {
wptr_t t0;
sptr_t t1;
wptr_t t2;
};
/* CAFS */
/* (HcNode CJhc.Type.Basic.Integer [Left 0],1) */
static const struct sCJhc_Type_Basic_Integer _c1 = {.a1 = 0};
#define c1 (TO_SPTR_C(P_WHNF, (sptr_t)&_c1))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 160),Left &("CJhc.Prim.Prim.[]")],2) */
static const struct sCJhc_Prim_Prim_$x3a _c2 = {.a1 = (sptr_t)RAW_SET_UF(160), .a2 = (sptr_t)SET_RAW_TAG(CJhc_Prim_Prim_$BE)};
#define c2 (TO_SPTR_C(P_WHNF, (sptr_t)&_c2))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 11),Right 2],3) */
static const struct sCJhc_Prim_Prim_$x3a _c3 = {.a1 = (sptr_t)RAW_SET_UF(11), .a2 = c2};
#define c3 (TO_SPTR_C(P_WHNF, (sptr_t)&_c3))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 12),Right 3],4) */
static const struct sCJhc_Prim_Prim_$x3a _c4 = {.a1 = (sptr_t)RAW_SET_UF(12), .a2 = c3};
#define c4 (TO_SPTR_C(P_WHNF, (sptr_t)&_c4))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 13),Right 4],5) */
static const struct sCJhc_Prim_Prim_$x3a _c5 = {.a1 = (sptr_t)RAW_SET_UF(13), .a2 = c4};
#define c5 (TO_SPTR_C(P_WHNF, (sptr_t)&_c5))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 10),Right 5],6) */
static const struct sCJhc_Prim_Prim_$x3a _c6 = {.a1 = (sptr_t)RAW_SET_UF(10), .a2 = c5};
#define c6 (TO_SPTR_C(P_WHNF, (sptr_t)&_c6))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 9),Right 6],7) */
static const struct sCJhc_Prim_Prim_$x3a _c7 = {.a1 = (sptr_t)RAW_SET_UF(9), .a2 = c6};
#define c7 (TO_SPTR_C(P_WHNF, (sptr_t)&_c7))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 32),Right 7],8) */
static const struct sCJhc_Prim_Prim_$x3a _c8 = {.a1 = (sptr_t)RAW_SET_UF(' '), .a2 = c7};
#define c8 (TO_SPTR_C(P_WHNF, (sptr_t)&_c8))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 101),Left &("CJhc.Prim.Prim.[]")],9) */
static const struct sCJhc_Prim_Prim_$x3a _c9 = {.a1 = (sptr_t)RAW_SET_UF('e'), .a2 = (sptr_t)SET_RAW_TAG(CJhc_Prim_Prim_$BE)};
#define c9 (TO_SPTR_C(P_WHNF, (sptr_t)&_c9))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 115),Right 9],10) */
static const struct sCJhc_Prim_Prim_$x3a _c10 = {.a1 = (sptr_t)RAW_SET_UF('s'), .a2 = c9};
#define c10 (TO_SPTR_C(P_WHNF, (sptr_t)&_c10))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 108),Right 10],11) */
static const struct sCJhc_Prim_Prim_$x3a _c11 = {.a1 = (sptr_t)RAW_SET_UF('l'), .a2 = c10};
#define c11 (TO_SPTR_C(P_WHNF, (sptr_t)&_c11))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 97),Right 11],12) */
static const struct sCJhc_Prim_Prim_$x3a _c12 = {.a1 = (sptr_t)RAW_SET_UF('a'), .a2 = c11};
#define c12 (TO_SPTR_C(P_WHNF, (sptr_t)&_c12))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 70),Right 12],13) */
static const struct sCJhc_Prim_Prim_$x3a _c13 = {.a1 = (sptr_t)RAW_SET_UF('F'), .a2 = c12};
#define c13 (TO_SPTR_C(P_WHNF, (sptr_t)&_c13))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 117),Right 9],14) */
static const struct sCJhc_Prim_Prim_$x3a _c14 = {.a1 = (sptr_t)RAW_SET_UF('u'), .a2 = c9};
#define c14 (TO_SPTR_C(P_WHNF, (sptr_t)&_c14))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 114),Right 14],15) */
static const struct sCJhc_Prim_Prim_$x3a _c15 = {.a1 = (sptr_t)RAW_SET_UF('r'), .a2 = c14};
#define c15 (TO_SPTR_C(P_WHNF, (sptr_t)&_c15))
/* (HcNode CJhc.Prim.Prim.: [Left &("CJhc.Type.Basic.Char" 84),Right 15],16) */
static const struct sCJhc_Prim_Prim_$x3a _c16 = {.a1 = (sptr_t)RAW_SET_UF('T'), .a2 = c15};
#define c16 (TO_SPTR_C(P_WHNF, (sptr_t)&_c16))
/* (HcNode TJhc.Prim.Prim.(,,) [Left ("TJhc.Type.Basic.Integer"),Left ("TJhc.Type.Basic.Integer"),Left ("TJhc.Prim.Prim.Bool")],18) */
static const struct sTJhc_Prim_Prim_$LccR _c18 = {.what = (what_t)SET_RAW_TAG(TJhc_Prim_Prim_$LccR), .a1 = SET_RAW_TAG(TJhc_Type_Basic_Integer), .a2 = SET_RAW_TAG(TJhc_Type_Basic_Integer), .a3 = SET_RAW_TAG(TJhc_Prim_Prim_Bool)};
#define c18 (TO_SPTR_C(P_WHNF, (sptr_t)&_c18))
/* (HcNode CJhc.Type.Word.Int [Left 0],17) */
static const struct sCJhc_Type_Word_Int _c17 = {.a1 = 0};
#define c17 (TO_SPTR_C(P_WHNF, (sptr_t)&_c17))
const void * const nh_stuff[] = {
&_c1, &_c2, &_c3, &_c4, &_c5, &_c6, &_c7, &_c8, &_c9, &_c10, &_c11,
&_c12, &_c13, &_c14, &_c15, &_c16, &_c17, &_c18, NULL
};
void
jhc_hs_init(gc_t gc,arena_t arena)
{
alloc_public_caches(arena,sizeof(struct s_caches_pub));
find_cache(&public_caches(arena)->cCJhc_Type_Basic_Integer,arena,TO_BLOCKS(sizeof(struct sCJhc_Type_Basic_Integer)),0);
find_cache(&public_caches(arena)->cCJhc_Prim_Prim_$x3a,arena,TO_BLOCKS(sizeof(struct sCJhc_Prim_Prim_$x3a)),2);
find_cache(&public_caches(arena)->cCJhc_Prim_Prim_$LccR,arena,TO_BLOCKS(sizeof(struct sCJhc_Prim_Prim_$LccR)),3);
find_cache(&public_caches(arena)->cFtheMain$d4,arena,TO_BLOCKS(sizeof(struct sFtheMain$d4)),2);
find_cache(&public_caches(arena)->cFtheMain$d3,arena,TO_BLOCKS(sizeof(struct sFtheMain$d3)),1);
find_cache(&public_caches(arena)->cFtheMain$d5,arena,TO_BLOCKS(sizeof(struct sFtheMain$d5)),2);
find_cache(&public_caches(arena)->cFtheMain$d2,arena,TO_BLOCKS(sizeof(struct sFtheMain$d2)),1);
find_cache(&public_caches(arena)->cFR$__fJhc_Basics_$pp,arena,TO_BLOCKS(sizeof(struct sFR$__fJhc_Basics_$pp)),3);
find_cache(&public_caches(arena)->cFJhc_Show_shows,arena,TO_BLOCKS(sizeof(struct sFJhc_Show_shows)),4);
find_cache(&public_caches(arena)->cFW$__fJhc_Inst_Show_showWordMax,arena,TO_BLOCKS(sizeof(struct sFW$__fJhc_Inst_Show_showWordMax)),2);
}
static wptr_t A_STD A_FALIGNED
E__fJhc_Show_shows(gc_t gc,arena_t arena,struct sFJhc_Show_shows* arg)
{
{ wptr_t r;
gc_frame0(gc,1,MKLAZY(arg));
r = fJhc_Show_shows(gc,arena,arg->a1,arg->a2,arg->a3);
update(arg,r);
return r;
}
}
static wptr_t A_STD A_FALIGNED
E__fR$__fJhc_Basics_$pp(gc_t gc,arena_t arena,struct sFR$__fJhc_Basics_$pp* arg)
{
{ wptr_t r;
gc_frame0(gc,1,MKLAZY(arg));
r = fR$__fJhc_Basics_$pp(gc,arena,arg->a1,arg->a2);
update(arg,r);
return r;
}
}
static wptr_t A_STD A_FALIGNED
E__fW$__fJhc_Inst_Show_showWordMax(gc_t gc,arena_t arena,struct sFW$__fJhc_Inst_Show_showWordMax* arg)
{
{ wptr_t r;
gc_frame0(gc,1,MKLAZY(arg));
r = fW$__fJhc_Inst_Show_showWordMax(gc,arena,arg->a1,arg->a2);
update(arg,r);
return r;
}
}
static wptr_t A_STD A_FALIGNED
E__ftheMain$d2(gc_t gc,arena_t arena,struct sFtheMain$d2* arg)
{
{ wptr_t r;
gc_frame0(gc,1,MKLAZY(arg));
r = ftheMain$d2(gc,arena);
update(arg,r);
return r;
}
}
static wptr_t A_STD A_FALIGNED
E__ftheMain$d3(gc_t gc,arena_t arena,struct sFtheMain$d3* arg)
{
{ wptr_t r;
gc_frame0(gc,1,MKLAZY(arg));
r = ftheMain$d3(gc,arena);
update(arg,r);
return r;
}
}
static wptr_t A_STD A_FALIGNED
E__ftheMain$d4(gc_t gc,arena_t arena,struct sFtheMain$d4* arg)
{
{ wptr_t r;
gc_frame0(gc,1,MKLAZY(arg));
r = ftheMain$d4(gc,arena,arg->a1);
update(arg,r);
return r;
}
}
static wptr_t A_STD A_FALIGNED
E__ftheMain$d5(gc_t gc,arena_t arena,struct sFtheMain$d5* arg)
{
{ wptr_t r;
gc_frame0(gc,1,MKLAZY(arg));
r = ftheMain$d5(gc,arena,arg->a1);
update(arg,r);
return r;
}
}
void
_amain(void)
{
arena_t arena;
gc_t gc;
gc = NULL;
arena = NULL;
jhc_alloc_init(&gc,&arena);
jhc_hs_init(gc,arena);
b__main(gc,arena);
jhc_alloc_fini(gc,arena);
}
static struct tup1 A_STD
bRfW$__fR$__fMain_wwc(gc_t gc,arena_t arena,uintmax_t v135371087,wptr_t v29375222,wptr_t v44000781,sptr_t v215884592)
{
sptr_t v239;
sptr_t v241;
sptr_t v243;
struct tup1 _t2;
struct tup3 x2;
sptr_t v29375349 = demote(v29375222);
if (0 == v135371087) {
uintmax_t v260457468;
v260457468 = ((struct sCJhc_Type_Basic_Integer*)v29375222)->a1;
if (0 == v260457468) {
uint16_t v42;
v42 = ((uint16_t)RAW_GET_UF(v44000781));
switch (v42) {
case 0:
{ wptr_t v281;
sptr_t v286;
wptr_t v289;
struct tup1 x3;
{ gc_frame0(gc,1,v215884592);
x3 = bRfW$__fR$__fMain_wwc(gc,arena,1,PROMOTE(c1),RAW_SET_UF(0),v215884592);
}
v281 = x3.t0;
v286 = x3.t1;
v289 = x3.t2;
sptr_t v147 = demote(v281);
sptr_t v150 = demote(v289);
x2.t0 = v147;
x2.t1 = v286;
x2.t2 = v150;
}
break;
default:
{ uint16_t v153480246;
v153480246 = v42;
{ uint32_t v115160450;
gc_frame0(gc,1,v29375349);
wptr_t v100004 = eval(gc,arena,v215884592);
v115160450 = ((uint32_t)RAW_GET_UF(v100004));
if (10 == v115160450) {
uintmax_t v260457474 = (1 + v135371087);
wptr_t x4 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x4)->a1 = v260457474;
wptr_t v273 = x4;
sptr_t v181754690 = demote(v273);
x2.t0 = v181754690;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(0));
} else {
if (0 == v153480246) {
uint16_t v100006;
{ gc_frame0(gc,1,v100004);
v100006 = fW$__fSpec$__Jhc_List_217_fJhc_List_elem(gc,arena,v100004,PROMOTE(c8));
}
if (0 == v100006) {
uintmax_t v29375122 = (1 + v260457468);
wptr_t x5 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x5)->a1 = v29375122;
wptr_t v448 = x5;
sptr_t v201839438 = demote(v448);
{ gc_frame0(gc,1,v201839438);
wptr_t x6 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x6)->a1 = v135371087;
wptr_t v263 = x6;
sptr_t v90861648 = demote(v263);
x2.t0 = v90861648;
x2.t1 = v201839438;
x2.t2 = ((sptr_t)RAW_SET_UF(1));
}
} else {
/* 1 */
assert(1 == v100006);
wptr_t x7 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x7)->a1 = v135371087;
wptr_t v127 = x7;
sptr_t v127754094 = demote(v127);
x2.t0 = v127754094;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(0));
}
} else {
uint16_t v100008;
{ gc_frame0(gc,1,v100004);
v100008 = fW$__fSpec$__Jhc_List_217_fJhc_List_elem(gc,arena,v100004,PROMOTE(c8));
}
if (0 == v100008) {
wptr_t x8 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x8)->a1 = v135371087;
wptr_t v275 = x8;
sptr_t v240673846 = demote(v275);
x2.t0 = v240673846;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(1));
} else {
/* 1 */
assert(1 == v100008);
wptr_t x9 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x9)->a1 = v135371087;
wptr_t v271 = x9;
sptr_t v59069478 = demote(v271);
x2.t0 = v59069478;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(0));
}
}
}
}
}
break;
}
} else {
{ uint32_t v59150084;
gc_frame0(gc,2,v29375349,v44000781);
wptr_t v100010 = eval(gc,arena,v215884592);
v59150084 = ((uint32_t)RAW_GET_UF(v100010));
if (10 == v59150084) {
uintmax_t v256943490 = (1 + v135371087);
wptr_t x10 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x10)->a1 = v256943490;
wptr_t v325 = x10;
sptr_t v124235150 = demote(v325);
x2.t0 = v124235150;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(0));
} else {
uint16_t v34;
v34 = ((uint16_t)RAW_GET_UF(v44000781));
if (0 == v34) {
uint16_t v100014;
{ gc_frame0(gc,1,v100010);
v100014 = fW$__fSpec$__Jhc_List_217_fJhc_List_elem(gc,arena,v100010,PROMOTE(c8));
}
if (0 == v100014) {
uintmax_t v1674606 = (1 + v260457468);
wptr_t x11 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x11)->a1 = v1674606;
wptr_t v348 = x11;
sptr_t v158113096 = demote(v348);
{ gc_frame0(gc,1,v158113096);
wptr_t x12 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x12)->a1 = v135371087;
wptr_t v157 = x12;
sptr_t v1780406 = demote(v157);
x2.t0 = v1780406;
x2.t1 = v158113096;
x2.t2 = ((sptr_t)RAW_SET_UF(1));
}
} else {
/* 1 */
assert(1 == v100014);
wptr_t x13 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x13)->a1 = v135371087;
wptr_t v152 = x13;
sptr_t v110207572 = demote(v152);
x2.t0 = v110207572;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(0));
}
} else {
uint16_t v100016;
{ gc_frame0(gc,1,v100010);
v100016 = fW$__fSpec$__Jhc_List_217_fJhc_List_elem(gc,arena,v100010,PROMOTE(c8));
}
if (0 == v100016) {
wptr_t x14 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x14)->a1 = v135371087;
wptr_t v163 = x14;
sptr_t v21055632 = demote(v163);
x2.t0 = v21055632;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(1));
} else {
/* 1 */
assert(1 == v100016);
wptr_t x15 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x15)->a1 = v135371087;
wptr_t v161 = x15;
sptr_t v66102156 = demote(v161);
x2.t0 = v66102156;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(0));
}
}
}
}
}
} else {
{ uint32_t v215350916;
gc_frame0(gc,3,v29375222,v29375349,v44000781);
wptr_t v100018 = eval(gc,arena,v215884592);
v215350916 = ((uint32_t)RAW_GET_UF(v100018));
if (10 == v215350916) {
uintmax_t v209623816 = (1 + v135371087);
wptr_t x16 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x16)->a1 = v209623816;
wptr_t v170 = x16;
sptr_t v45052584 = demote(v170);
x2.t0 = v45052584;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(0));
} else {
uint16_t v68216828;
v68216828 = ((uint16_t)RAW_GET_UF(v44000781));
if (0 == v68216828) {
uint16_t v100022;
{ gc_frame0(gc,1,v100018);
v100022 = fW$__fSpec$__Jhc_List_217_fJhc_List_elem(gc,arena,v100018,PROMOTE(c8));
}
if (0 == v100022) {
sptr_t x17 = s_alloc(gc,arena,public_caches(arena)->cFtheMain$d4);
((struct sFtheMain$d4*)x17)->head = TO_FPTR(&E__ftheMain$d4);
((struct sFtheMain$d4*)x17)->a1 = v29375222;
sptr_t v172090968 = MKLAZY(x17);
{ gc_frame0(gc,1,v172090968);
wptr_t x18 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x18)->a1 = v135371087;
wptr_t v391 = x18;
sptr_t v237992580 = demote(v391);
x2.t0 = v237992580;
x2.t1 = v172090968;
x2.t2 = ((sptr_t)RAW_SET_UF(1));
}
} else {
/* 1 */
assert(1 == v100022);
wptr_t x19 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x19)->a1 = v135371087;
wptr_t v177 = x19;
sptr_t v187526658 = demote(v177);
x2.t0 = v187526658;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(0));
}
} else {
uint16_t v100024;
{ gc_frame0(gc,1,v100018);
v100024 = fW$__fSpec$__Jhc_List_217_fJhc_List_elem(gc,arena,v100018,PROMOTE(c8));
}
if (0 == v100024) {
wptr_t x20 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x20)->a1 = v135371087;
wptr_t v422 = x20;
sptr_t v2998634 = demote(v422);
x2.t0 = v2998634;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(1));
} else {
/* 1 */
assert(1 == v100024);
wptr_t x21 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x21)->a1 = v135371087;
wptr_t v184 = x21;
sptr_t v202961034 = demote(v184);
x2.t0 = v202961034;
x2.t1 = v29375349;
x2.t2 = ((sptr_t)RAW_SET_UF(0));
}
}
}
}
}
v239 = x2.t0;
v241 = x2.t1;
v243 = x2.t2;
wptr_t v245 = promote(v239);
wptr_t v247 = promote(v243);
return (_t2.t0 = v245,_t2.t1 = v241,_t2.t2 = v247,_t2);
}
static struct tup1 A_STD
bRfW$__fW$__fData_List_610__lgo(gc_t gc,arena_t arena,wptr_t v209623990,sptr_t v227981241,wptr_t v105553558,sptr_t v61835305)
{
sptr_t v209624050 = demote(v209623990);
sptr_t v105553619 = demote(v105553558);
{ sptr_t v196;
sptr_t v199;
sptr_t v455;
struct tup1 _t4;
struct tup3 x22;
gc_frame0(gc,5,v105553558,v105553619,v209623990,v209624050,v227981241);
wptr_t v100084 = eval(gc,arena,v61835305);
if (SET_RAW_TAG(CJhc_Prim_Prim_$BE) == v100084) {
x22.t0 = v209624050;
x22.t1 = v227981241;
x22.t2 = v105553619;
} else {
sptr_t v826;
sptr_t v828;
uintmax_t v115160442;
/* ("CJhc.Prim.Prim.:" ni826 ni828) */
v826 = ((struct sCJhc_Prim_Prim_$x3a*)v100084)->a1;
v828 = ((struct sCJhc_Prim_Prim_$x3a*)v100084)->a2;
v115160442 = ((struct sCJhc_Type_Basic_Integer*)v209623990)->a1;
{ wptr_t v155;
wptr_t v183;
wptr_t v334;
sptr_t v352;
sptr_t v80;
wptr_t v96;
struct tup1 x23;
struct tup1 x24;
gc_frame0(gc,2,v826,v828);
wptr_t v100088 = eval(gc,arena,v227981241);
{ gc_frame0(gc,1,v100088);
x23 = fW$__fR$__fMain_wwc(gc,arena,v115160442,v100088,v105553558,v826);
}
v155 = x23.t0;
v80 = x23.t1;
v334 = x23.t2;
{ gc_frame0(gc,3,v80,v155,v334);
x24 = bRfW$__fW$__fData_List_610__lgo(gc,arena,v155,v80,v334,v828);
}
v183 = x24.t0;
v352 = x24.t1;
v96 = x24.t2;
sptr_t v98 = demote(v183);
sptr_t v101 = demote(v96);
x22.t0 = v98;
x22.t1 = v352;
x22.t2 = v101;
}
}
v455 = x22.t0;
v196 = x22.t1;
v199 = x22.t2;
wptr_t v202 = promote(v455);
wptr_t v5 = promote(v199);
return (_t4.t0 = v202,_t4.t1 = v196,_t4.t2 = v5,_t4);
}
}
static void A_STD
b__main(gc_t gc,arena_t arena)
{
ftheMain(gc,arena);
return;
}
static wptr_t A_STD A_MALLOC
fJhc_Basics_$pp(gc_t gc,arena_t arena,wptr_t v132,wptr_t v134)
{
sptr_t v470 = demote(v132);
{ gc_frame0(gc,2,v134,v470);
return fR$__fJhc_Basics_$pp(gc,arena,v470,v134);
}
}
static wptr_t A_STD A_MALLOC
fJhc_Show_shows(gc_t gc,arena_t arena,wptr_t v1462509595,sptr_t v80100070,wptr_t v216085086)
{
{ gc_frame0(gc,3,v80100070,v216085086,v1462509595);
return fJhc_Show_showsPrec(gc,arena,v1462509595,PROMOTE(c17),v80100070,v216085086);
}
}
static wptr_t A_STD A_MALLOC
fJhc_Show_showsPrec(gc_t gc,arena_t arena,wptr_t v1333402651,wptr_t v194508206,sptr_t v80256462,wptr_t v75583672)
{
sptr_t v75583952 = demote(v75583672);
switch (FETCH_TAG(v1333402651)) {
case TJhc_Prim_Prim_$LccR:
{ { sptr_t v115160438;
sptr_t v124940228;
sptr_t v216085094;
gc_frame0(gc,1,v75583952);
wptr_t v100058 = eval(gc,arena,v80256462);
v115160438 = ((struct sCJhc_Prim_Prim_$LccR*)v100058)->a1;
v124940228 = ((struct sCJhc_Prim_Prim_$LccR*)v100058)->a2;
v216085094 = ((struct sCJhc_Prim_Prim_$LccR*)v100058)->a3;
{ gc_frame0(gc,3,v115160438,v124940228,v216085094);
wptr_t x34 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$x3a);
((struct sCJhc_Prim_Prim_$x3a*)x34)->a1 = ((sptr_t)RAW_SET_UF(')'));
((struct sCJhc_Prim_Prim_$x3a*)x34)->a2 = v75583952;
wptr_t v64 = x34;
{ gc_frame0(gc,1,v64);
sptr_t x35 = s_alloc(gc,arena,public_caches(arena)->cFJhc_Show_shows);
((struct sFJhc_Show_shows*)x35)->head = TO_FPTR(&E__fJhc_Show_shows);
((struct sFJhc_Show_shows*)x35)->a1 = SET_RAW_TAG(TJhc_Prim_Prim_Bool);
((struct sFJhc_Show_shows*)x35)->a2 = v216085094;
((struct sFJhc_Show_shows*)x35)->a3 = v64;
sptr_t v10527818 = MKLAZY(x35);
{ gc_frame0(gc,1,v10527818);
wptr_t x36 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$x3a);
((struct sCJhc_Prim_Prim_$x3a*)x36)->a1 = ((sptr_t)RAW_SET_UF(','));
((struct sCJhc_Prim_Prim_$x3a*)x36)->a2 = v10527818;
wptr_t v67 = x36;
{ gc_frame0(gc,1,v67);
sptr_t x37 = s_alloc(gc,arena,public_caches(arena)->cFJhc_Show_shows);
((struct sFJhc_Show_shows*)x37)->head = TO_FPTR(&E__fJhc_Show_shows);
((struct sFJhc_Show_shows*)x37)->a1 = SET_RAW_TAG(TJhc_Type_Basic_Integer);
((struct sFJhc_Show_shows*)x37)->a2 = v124940228;
((struct sFJhc_Show_shows*)x37)->a3 = v67;
sptr_t v253468956 = MKLAZY(x37);
{ gc_frame0(gc,1,v253468956);
wptr_t x38 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$x3a);
((struct sCJhc_Prim_Prim_$x3a*)x38)->a1 = ((sptr_t)RAW_SET_UF(','));
((struct sCJhc_Prim_Prim_$x3a*)x38)->a2 = v253468956;
wptr_t v70 = x38;
{ gc_frame0(gc,1,v70);
sptr_t x39 = s_alloc(gc,arena,public_caches(arena)->cFJhc_Show_shows);
((struct sFJhc_Show_shows*)x39)->head = TO_FPTR(&E__fJhc_Show_shows);
((struct sFJhc_Show_shows*)x39)->a1 = SET_RAW_TAG(TJhc_Type_Basic_Integer);
((struct sFJhc_Show_shows*)x39)->a2 = v115160438;
((struct sFJhc_Show_shows*)x39)->a3 = v70;
sptr_t v209623814 = MKLAZY(x39);
{ gc_frame0(gc,1,v209623814);
wptr_t x40 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$x3a);
((struct sCJhc_Prim_Prim_$x3a*)x40)->a1 = ((sptr_t)RAW_SET_UF('('));
((struct sCJhc_Prim_Prim_$x3a*)x40)->a2 = v209623814;
return x40;
}
}
}
}
}
}
}
}
}
break;
case TJhc_Prim_Prim_Bool:
{ { sptr_t v133;
sptr_t v314;
uint16_t v29534746;
struct tup5 x41;
gc_frame0(gc,1,v75583952);
wptr_t v100060 = eval(gc,arena,v80256462);
v29534746 = ((uint16_t)RAW_GET_UF(v100060));
if (0 == v29534746) {
x41.t0 = c13;
x41.t1 = v75583952;
} else {
/* 1 */
assert(1 == v29534746);
x41.t0 = c16;
x41.t1 = v75583952;
}
v133 = x41.t0;
v314 = x41.t1;
wptr_t v631 = promote(v133);
wptr_t v318 = promote(v314);
{ gc_frame0(gc,2,v318,v631);
return fJhc_Basics_$pp(gc,arena,v631,v318);
}
}
}
break;
case TJhc_Type_Basic_Integer:
{ uint32_t v68216832;
v68216832 = ((struct sCJhc_Type_Word_Int*)v194508206)->a1;
{ uintmax_t v227981058;
gc_frame0(gc,2,v75583672,v75583952);
wptr_t v100064 = eval(gc,arena,v80256462);
v227981058 = ((struct sCJhc_Type_Basic_Integer*)v100064)->a1;
uint16_t v100066 = (((intmax_t)0) > ((intmax_t)v227981058));
if (0 == v100066) {
return fW$__fJhc_Inst_Show_showWordMax(gc,arena,v227981058,v75583672);
} else {
/* 1 */
assert(1 == v100066);
uint16_t v100068 = (((int32_t)6) < ((int32_t)v68216832));
if (0 == v100068) {
return fJhc_Show_showsPrec$d2(gc,arena,v227981058,v75583672);
} else {
wptr_t v657;
/* 1 */
assert(1 == v100068);
wptr_t x42 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$x3a);
((struct sCJhc_Prim_Prim_$x3a*)x42)->a1 = ((sptr_t)RAW_SET_UF(')'));
((struct sCJhc_Prim_Prim_$x3a*)x42)->a2 = v75583952;
wptr_t v407 = x42;
{ gc_frame0(gc,1,v407);
v657 = fJhc_Show_showsPrec$d2(gc,arena,v227981058,v407);
}
sptr_t v217269554 = demote(v657);
{ gc_frame0(gc,1,v217269554);
wptr_t x43 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$x3a);
((struct sCJhc_Prim_Prim_$x3a*)x43)->a1 = ((sptr_t)RAW_SET_UF('('));
((struct sCJhc_Prim_Prim_$x3a*)x43)->a2 = v217269554;
return x43;
}
}
}
}
}
break;
default: jhc_case_fell_off(__LINE__);
}
}
static wptr_t A_STD A_MALLOC
fJhc_Show_showsPrec$d2(gc_t gc,arena_t arena,uintmax_t v80100076,wptr_t v123872602)
{
uintmax_t v189927408 = (-((intmax_t)v80100076));
{ gc_frame0(gc,1,v123872602);
sptr_t x30 = s_alloc(gc,arena,public_caches(arena)->cFW$__fJhc_Inst_Show_showWordMax);
((struct sFW$__fJhc_Inst_Show_showWordMax*)x30)->head = TO_FPTR(&E__fW$__fJhc_Inst_Show_showWordMax);
((struct sFW$__fJhc_Inst_Show_showWordMax*)x30)->a1 = v189927408;
((struct sFW$__fJhc_Inst_Show_showWordMax*)x30)->a2 = v123872602;
sptr_t v245354002 = MKLAZY(x30);
{ gc_frame0(gc,1,v245354002);
wptr_t x31 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$x3a);
((struct sCJhc_Prim_Prim_$x3a*)x31)->a1 = ((sptr_t)RAW_SET_UF('-'));
((struct sCJhc_Prim_Prim_$x3a*)x31)->a2 = v245354002;
return x31;
}
}
}
static wptr_t A_STD A_MALLOC
fPrelude_IO_10__getContents$t(gc_t gc,arena_t arena)
{
uint32_t v224 = ((uint32_t)jhc_utf8_getchar());
if (-1 == v224) {
return SET_RAW_TAG(CJhc_Prim_Prim_$BE);
} else {
uint32_t v250262368 = v224;
sptr_t x44 = s_alloc(gc,arena,public_caches(arena)->cFtheMain$d2);
((struct sFtheMain$d2*)x44)->head = TO_FPTR(&E__ftheMain$d2);
sptr_t v76563860 = MKLAZY(x44);
{ gc_frame0(gc,1,v76563860);
wptr_t v356 = RAW_SET_UF(v250262368);
sptr_t v6646424 = demote(v356);
{ gc_frame0(gc,1,v6646424);
wptr_t x45 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$x3a);
((struct sCJhc_Prim_Prim_$x3a*)x45)->a1 = v6646424;
((struct sCJhc_Prim_Prim_$x3a*)x45)->a2 = v76563860;
return x45;
}
}
}
}
static wptr_t A_STD A_MALLOC
fR$__fJhc_Basics_$pp(gc_t gc,arena_t arena,sptr_t v110947982,wptr_t v29534740)
{
{ gc_frame0(gc,1,v29534740);
wptr_t v100048 = eval(gc,arena,v110947982);
if (SET_RAW_TAG(CJhc_Prim_Prim_$BE) == v100048) {
return v29534740;
} else {
sptr_t v136;
sptr_t v659;
/* ("CJhc.Prim.Prim.:" ni136 ni659) */
v136 = ((struct sCJhc_Prim_Prim_$x3a*)v100048)->a1;
v659 = ((struct sCJhc_Prim_Prim_$x3a*)v100048)->a2;
{ gc_frame0(gc,2,v136,v659);
sptr_t x32 = s_alloc(gc,arena,public_caches(arena)->cFR$__fJhc_Basics_$pp);
((struct sFR$__fJhc_Basics_$pp*)x32)->head = TO_FPTR(&E__fR$__fJhc_Basics_$pp);
((struct sFR$__fJhc_Basics_$pp*)x32)->a1 = v659;
((struct sFR$__fJhc_Basics_$pp*)x32)->a2 = v29534740;
sptr_t v123730148 = MKLAZY(x32);
{ gc_frame0(gc,1,v123730148);
wptr_t x33 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$x3a);
((struct sCJhc_Prim_Prim_$x3a*)x33)->a1 = v136;
((struct sCJhc_Prim_Prim_$x3a*)x33)->a2 = v123730148;
return x33;
}
}
}
}
}
static wptr_t A_STD A_MALLOC
fW$__fJhc_Inst_Show_showWordMax(gc_t gc,arena_t arena,uintmax_t v1817845811,wptr_t v1821122605)
{
{ wptr_t v227981060;
uintmax_t v209623818;
gc_frame0(gc,1,v1821122605);
{ gc_frame0(gc,1,v1821122605);
v209623818 = v1817845811;
v227981060 = v1821122605;
goto fW$__fR$__fJhc_Inst_Show_showWordMax__27;
}
/* [bm209623818,nd227981060] */
fW$__fR$__fJhc_Inst_Show_showWordMax__27:;
{ sptr_t v227981429 = demote(v227981060);
uintmax_t v40405740 = (v209623818 / 10);
uintmax_t v253468954 = (v209623818 % 10);
uint32_t v132127022 = ((uint32_t)v253468954);
uint32_t v187576970 = (48 + v132127022);
uint32_t v230710704 = v187576970;
{ gc_frame0(gc,1,v227981429);
wptr_t v189 = RAW_SET_UF(v230710704);
sptr_t v204193218 = demote(v189);
if (0 == v40405740) {
{ gc_frame0(gc,1,v204193218);
wptr_t x28 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$x3a);
((struct sCJhc_Prim_Prim_$x3a*)x28)->a1 = v204193218;
((struct sCJhc_Prim_Prim_$x3a*)x28)->a2 = v227981429;
return x28;
}
} else {
{ gc_frame0(gc,1,v204193218);
wptr_t x29 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$x3a);
((struct sCJhc_Prim_Prim_$x3a*)x29)->a1 = v204193218;
((struct sCJhc_Prim_Prim_$x3a*)x29)->a2 = v227981429;
wptr_t v414 = x29;
{ gc_frame0(gc,1,v414);
v209623818 = v40405740;
v227981060 = v414;
goto fW$__fR$__fJhc_Inst_Show_showWordMax__27;
}
}
}
}
}
}
}
static struct tup1 A_STD
fW$__fR$__fMain_wwc(gc_t gc,arena_t arena,uintmax_t v135370990,wptr_t v29375124,wptr_t v44000682,sptr_t v215884492)
{
{ gc_frame0(gc,3,v29375124,v44000682,v215884492);
return bRfW$__fR$__fMain_wwc(gc,arena,v135370990,v29375124,v44000682,v215884492);
}
}
static uint16_t A_STD
fW$__fSpec$__Jhc_List_217_fJhc_List_elem(gc_t gc,arena_t arena,wptr_t v454,wptr_t v457)
{
if (SET_RAW_TAG(CJhc_Prim_Prim_$BE) == v457) {
return 0;
} else {
sptr_t v479;
sptr_t v482;
uint32_t v44725398;
/* ("CJhc.Prim.Prim.:" ni479 ni482) */
v479 = ((struct sCJhc_Prim_Prim_$x3a*)v457)->a1;
v482 = ((struct sCJhc_Prim_Prim_$x3a*)v457)->a2;
v44725398 = ((uint32_t)RAW_GET_UF(v454));
{ uint32_t v228308038;
gc_frame0(gc,1,v482);
wptr_t v100074 = eval(gc,arena,v479);
v228308038 = ((uint32_t)RAW_GET_UF(v100074));
uint16_t v100076 = (v44725398 == v228308038);
if (0 == v100076) {
sptr_t v256943492;
uint32_t v154420598;
v154420598 = v228308038;
v256943492 = v482;
fW$__fJhc_List_213__f__26:;
{ uint16_t v100078 = (v44725398 == v154420598);
if (0 == v100078) {
wptr_t v100080 = eval(gc,arena,v256943492);
if (SET_RAW_TAG(CJhc_Prim_Prim_$BE) == v100080) {
return 0;
} else {
sptr_t v489;
sptr_t v62470114;
/* ("CJhc.Prim.Prim.:" ni62470114 ni489) */
v62470114 = ((struct sCJhc_Prim_Prim_$x3a*)v100080)->a1;
v489 = ((struct sCJhc_Prim_Prim_$x3a*)v100080)->a2;
{ uint32_t v59380245;
gc_frame0(gc,1,v489);
wptr_t v100082 = eval(gc,arena,v62470114);
v59380245 = ((uint32_t)RAW_GET_UF(v100082));
v154420598 = v59380245;
v256943492 = v489;
goto fW$__fJhc_List_213__f__26;
}
}
} else {
/* 1 */
assert(1 == v100078);
return 1;
}
}
} else {
/* 1 */
assert(1 == v100076);
return 1;
}
}
}
}
static struct tup1 A_STD
fW$__fW$__fData_List_610__lgo(gc_t gc,arena_t arena,wptr_t v209623812,wptr_t v227981062,wptr_t v105553378,sptr_t v61835124)
{
sptr_t v227981105 = demote(v227981062);
{ gc_frame0(gc,4,v61835124,v105553378,v209623812,v227981105);
return bRfW$__fW$__fData_List_610__lgo(gc,arena,v209623812,v227981105,v105553378,v61835124);
}
}
static void A_STD
ftheMain(gc_t gc,arena_t arena)
{
sptr_t x49 = s_alloc(gc,arena,public_caches(arena)->cFtheMain$d3);
((struct sFtheMain$d3*)x49)->head = TO_FPTR(&E__ftheMain$d3);
sptr_t v44725400 = MKLAZY(x49);
{ wptr_t v100034;
gc_frame0(gc,1,v44725400);
sptr_t x50 = s_alloc(gc,arena,public_caches(arena)->cFtheMain$d5);
((struct sFtheMain$d5*)x50)->head = TO_FPTR(&E__ftheMain$d5);
((struct sFtheMain$d5*)x50)->a1 = v44725400;
sptr_t v210467880 = MKLAZY(x50);
{ gc_frame0(gc,1,v210467880);
v100034 = fJhc_Show_showsPrec(gc,arena,PROMOTE(c18),PROMOTE(c17),v210467880,SET_RAW_TAG(CJhc_Prim_Prim_$BE));
}
sptr_t v2163366 = demote(v100034);
{ sptr_t v10;
gc_frame0(gc,1,v2163366);
{ gc_frame0(gc,1,v2163366);
v10 = v2163366;
goto fJhc_Monad_72__go__51;
}
goto done51;
fJhc_Monad_72__go__51:;
{ wptr_t v100047 = eval(gc,arena,v10);
if (SET_RAW_TAG(CJhc_Prim_Prim_$BE) == v100047) {
SET_RAW_TAG(CJhc_Prim_Prim_$LR);
} else {
sptr_t v14;
sptr_t v313;
/* ("CJhc.Prim.Prim.:" ni313 ni14) */
v313 = ((struct sCJhc_Prim_Prim_$x3a*)v100047)->a1;
v14 = ((struct sCJhc_Prim_Prim_$x3a*)v100047)->a2;
{ uint32_t v10527822;
gc_frame0(gc,1,v14);
wptr_t v100040 = eval(gc,arena,v313);
v10527822 = ((uint32_t)RAW_GET_UF(v100040));
uint32_t v112839540 = v10527822;
jhc_utf8_putchar((int)v112839540);
v10 = v14;
goto fJhc_Monad_72__go__51;
}
}
}
}
done51:;
return;
}
}
static wptr_t A_STD A_MALLOC
ftheMain$d2(gc_t gc,arena_t arena)
{
return fPrelude_IO_10__getContents$t(gc,arena);
}
static wptr_t A_STD A_MALLOC
ftheMain$d3(gc_t gc,arena_t arena)
{
return fPrelude_IO_10__getContents$t(gc,arena);
}
static wptr_t A_STD A_MALLOC
ftheMain$d4(gc_t gc,arena_t arena,wptr_t v29375120)
{
uintmax_t v137248436;
v137248436 = ((struct sCJhc_Type_Basic_Integer*)v29375120)->a1;
uintmax_t v235511026 = (1 + v137248436);
wptr_t x46 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Type_Basic_Integer);
((struct sCJhc_Type_Basic_Integer*)x46)->a1 = v235511026;
return x46;
}
static wptr_t A_STD A_MALLOC
ftheMain$d5(gc_t gc,arena_t arena,sptr_t v29042940)
{
wptr_t v31;
sptr_t v33;
wptr_t v35;
struct tup1 x47;
{ gc_frame0(gc,1,v29042940);
x47 = fW$__fW$__fData_List_610__lgo(gc,arena,PROMOTE(c1),PROMOTE(c1),RAW_SET_UF(0),v29042940);
}
v31 = x47.t0;
v33 = x47.t1;
v35 = x47.t2;
sptr_t v37 = demote(v31);
sptr_t v6 = demote(v35);
{ gc_frame0(gc,3,v6,v33,v37);
wptr_t x48 = s_alloc(gc,arena,public_caches(arena)->cCJhc_Prim_Prim_$LccR);
((struct sCJhc_Prim_Prim_$LccR*)x48)->a1 = v37;
((struct sCJhc_Prim_Prim_$LccR*)x48)->a2 = v33;
((struct sCJhc_Prim_Prim_$LccR*)x48)->a3 = v6;
return x48;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment