Haskellのインクリメント

Haskellでインクリメントする関数を書いてアセンブリを吐かせて読み取るも挫折.
まずはホームグラウンドから.
int yar(int a)
{
return a+1;
}

.file "tester.c"
.text
.globl yar
.type yar, @function
yar:
.LFB0:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
movl 8(%ebp), %eax
addl $1, %eax
popl %ebp
.cfi_def_cfa 4, 4
.cfi_restore 5
ret
.cfi_endproc
.LFE0:
.size yar, .-yar
.ident "GCC: (Debian 4.6.1-4) 4.6.1"
.section .note.GNU-stack,"",@progbits
になります.

これと等化のHaskellコード.
module Hac where
hac a = a+1

楽でいいねえ.
からの!!!!!
.data
.align 4
.globl Hac_hac1_closure
.type Hac_hac1_closure, @object
Hac_hac1_closure:
.long integerzmgmp_GHCziIntegerziType_Szh_static_info
.long 1
.data
.align 4
.globl Hac_hac_closure
.type Hac_hac_closure, @object
Hac_hac_closure:
.long Hac_hac_info
.text
.align 4,0x90
.long 1
.long 17
slZ_info:
.Lcme:
leal -20(%ebp),%eax
cmpl 84(%ebx),%eax
jb .Lcmg
movl $stg_upd_frame_info,-8(%ebp)
movl %esi,-4(%ebp)
movl $Hac_hac1_closure+1,-12(%ebp)
movl $stg_ap_p_info,-16(%ebp)
movl 8(%esi),%eax
movl %eax,-20(%ebp)
addl $-20,%ebp
jmp base_GHCziNum_fromInteger_info
.Lcmg:
jmp *-8(%ebx)
.text
.align 4,0x90
.long 131084
.long 0
.long 15
.globl Hac_hac_info
.type Hac_hac_info, @object
Hac_hac_info:
.Lcmr:
leal -8(%ebp),%eax
cmpl 84(%ebx),%eax
jb .Lcmt
addl $12,%edi
cmpl 92(%ebx),%edi
ja .Lcmv
movl $slZ_info,-8(%edi)
movl 0(%ebp),%eax
movl %eax,0(%edi)
movl $stg_ap_pp_info,-4(%ebp)
movl 0(%ebp),%eax
movl %eax,-8(%ebp)
movl 4(%ebp),%eax
movl %eax,0(%ebp)
leal -8(%edi),%eax
movl %eax,4(%ebp)
addl $-8,%ebp
jmp base_GHCziNum_zp_info
.Lcmv:
movl $12,112(%ebx)
.Lcmt:
movl $Hac_hac_closure,%esi
jmp *-4(%ebx)
.data
.align 4
_module_registered:
.long 0
.text
.align 4,0x90
.globl __stginit_Hac_
.type __stginit_Hac_, @object
__stginit_Hac_:
.LcmK:
cmpl $0,_module_registered
jne .LcmL
.LcmM:
movl $1,_module_registered
addl $-4,%ebp
movl $__stginit_base_Prelude_,(%ebp)
.LcmL:
addl $4,%ebp
jmp *-4(%ebp)
.text
.align 4,0x90
.globl __stginit_Hac
.type __stginit_Hac, @object
__stginit_Hac:
.LcmQ:
jmp __stginit_Hac_
.section .note.GNU-stack,"",@progbits
.ident "GHC 7.0.4"



…どうしてこうなった