length of module name affecting performance??

Don Stewart dons at galois.com
Mon Dec 15 16:53:43 EST 2008


dgorin:
> Hi
> 
> While trying to see if I could make some code run faster I stumbled  
> upon something that looks weird to me: 2x-3x performance loss when a  
> module is renamed to a longer name!
> 
> Here's what I see with the attached examples:
> 
> #diff long-modname-ver.hs short-modname-ver.hs
> 2c2
> < import VeryLongModuleName
> ---
> > import ShortM
> 
> #diff VeryLongModuleName.hs ShortM.hs
> 1c1
> < module VeryLongModuleName
> ---
> > module ShortM
> 
> #ghc --make -O2 -Wall long-modname-ver.hs
> 
> #ghc --make -O2 -Wall short-modname-ver.hs
> 
> #time -p ./long-modname-ver > /dev/null
> real 55.90
> user 55.17
> sys 0.51
> 
> #time -p ./short-modname-ver > /dev/null
> real 22.23
> user 21.97
> sys 0.10
> 
> I'm using GHC 6.10.1 on OS X. Any ideas on what may be going on?

Wow. Awesome bug! Got lots of discussion at Galois :)

I can confirm a difference in running time, we also tested with 6.8.x and 6.10,
with similar results.


./short-modname-ver > /dev/null  21.55s user 0.02s system 99% cpu 21.573
total
./long-modname-ver > /dev/null  53.79s user 0.14s system 99% cpu 54.113
total

    $ diff -a short-modname-ver.hs long-modname-ver.hs 
    2c2
    < import ShortM
    ---
    > import VeryLongModuleName


    $ diff -u ShortM.hs VeryLongModuleName.hs
    --- ShortM.hs   2008-12-15 12:00:53.000000000 -0800
    +++ VeryLongModuleName.hs   2008-12-15 12:39:33.000000000 -0800
    @@ -1,4 +1,4 @@
    -module ShortM
    +module VeryLongModuleName
     
     where

Looking at the core (GHC has a hard time with that huge constant), we don't see
anything, but the assembly is surprisingly different!

    http://galois.com/~dons/tmp/asm.diff

The interesting parts are the indirect jumps that appear, and some extra
indirection closures are constructed:

    +VeryLongModuleName_zdsadd_srt:
    +   .quad   VeryLongModuleName_lvl2_closure
    +   .quad   VeryLongModuleName_zdsadd_closure
    +   .quad   VeryLongModuleName_lvl_closure
    +   .quad   VeryLongModuleName_lvl1_closure
    +   .quad   VeryLongModuleName_zdsadd1_closure
    +   .quad   VeryLongModuleName_lvl3_closure
    +.section .data
    +   .align 8
    +VeryLongModuleName_zdsadd1_srt:
    +   .quad   VeryLongModuleName_lvl2_closure
    +   .quad   VeryLongModuleName_zdsadd_closure
    +   .quad   VeryLongModuleName_lvl_closure
    +   .quad   VeryLongModuleName_lvl1_closure
    +   .quad   VeryLongModuleName_zdsadd1_closure
    +   .quad   VeryLongModuleName_lvl3_closure


And

    -   movq 24(%rbp),%rbx
    -   addq $40,%rbp
    -   andq $-8,%rbx
    -   jmp *(%rbx)

    +   movq 16(%rbp),%rsi
    +   addq $24,%rbp
    +   jmp VeryLongModuleName_right_info


So we get some indirection through an info table that we didn't have before.    

My guess is there's some jump table heuristic/cost function that for some
reason includes the size of data in those error strings? The error strings
which go over the limit, when they've big strings in them

This is a job for Simon^2.

-- Don


------------------------------------------------------------------------

Attached below is the asm diffs:


--- /tmp/ghc5331_0/ghc5331_0.s	2008-12-15 13:28:36.000000000 -0800
+++ /tmp/ghc5324_0/ghc5324_0.s	2008-12-15 13:28:22.000000000 -0800
@@ -1,13 +1,13 @@
 .section .data
 	.align 8
-ShortM_lvl_srt:
+VeryLongModuleName_lvl_srt:
 	.quad	base_ControlziExceptionziBase_recSelError_closure
 .data
 	.align 8
-.globl ShortM_lvl_closure
-.type ShortM_lvl_closure, @object
-ShortM_lvl_closure:
-	.quad	ShortM_lvl_info
+.globl VeryLongModuleName_lvl_closure
+.type VeryLongModuleName_lvl_closure, @object
+VeryLongModuleName_lvl_closure:
+	.quad	VeryLongModuleName_lvl_info
 	.quad	0
 	.quad	0
 	.quad	0
@@ -42,12 +42,24 @@
 	.byte	111
 	.byte	114
 	.byte	32
-	.byte	83
-	.byte	104
-	.byte	111
+	.byte	86
+	.byte	101
 	.byte	114
-	.byte	116
+	.byte	121
+	.byte	76
+	.byte	111
+	.byte	110
+	.byte	103
 	.byte	77
+	.byte	111
+	.byte	100
+	.byte	117
+	.byte	108
+	.byte	101
+	.byte	78
+	.byte	97
+	.byte	109
+	.byte	101
 	.byte	46
 	.byte	110
 	.byte	101
@@ -56,13 +68,13 @@
 	.byte	0
 .text
 	.align 8
-	.long	ShortM_lvl_srt-(ShortM_lvl_info)+0
+	.long	VeryLongModuleName_lvl_srt-(VeryLongModuleName_lvl_info)+0
 	.long	0
 	.quad	0
 	.quad	4294967318
-.globl ShortM_lvl_info
-.type ShortM_lvl_info, @object
-ShortM_lvl_info:
+.globl VeryLongModuleName_lvl_info
+.type VeryLongModuleName_lvl_info, @object
+VeryLongModuleName_lvl_info:
 .L:
 	leaq -16(%rbp),%rax
 	cmpq %r14,%rax
@@ -88,14 +100,14 @@
 	jmp *-16(%r13)
 .section .data
 	.align 8
-ShortM_lvl1_srt:
+VeryLongModuleName_lvl1_srt:
 	.quad	base_ControlziExceptionziBase_recSelError_closure
 .data
 	.align 8
-.globl ShortM_lvl1_closure
-.type ShortM_lvl1_closure, @object
-ShortM_lvl1_closure:
-	.quad	ShortM_lvl1_info
+.globl VeryLongModuleName_lvl1_closure
+.type VeryLongModuleName_lvl1_closure, @object
+VeryLongModuleName_lvl1_closure:
+	.quad	VeryLongModuleName_lvl1_info
 	.quad	0
 	.quad	0
 	.quad	0
@@ -130,12 +142,24 @@
 	.byte	111
 	.byte	114
 	.byte	32
-	.byte	83
-	.byte	104
-	.byte	111
+	.byte	86
+	.byte	101
 	.byte	114
-	.byte	116
+	.byte	121
+	.byte	76
+	.byte	111
+	.byte	110
+	.byte	103
 	.byte	77
+	.byte	111
+	.byte	100
+	.byte	117
+	.byte	108
+	.byte	101
+	.byte	78
+	.byte	97
+	.byte	109
+	.byte	101
 	.byte	46
 	.byte	114
 	.byte	105
@@ -145,13 +169,13 @@
 	.byte	0
 .text
 	.align 8
-	.long	ShortM_lvl1_srt-(ShortM_lvl1_info)+0
+	.long	VeryLongModuleName_lvl1_srt-(VeryLongModuleName_lvl1_info)+0
 	.long	0
 	.quad	0
 	.quad	4294967318
-.globl ShortM_lvl1_info
-.type ShortM_lvl1_info, @object
-ShortM_lvl1_info:
+.globl VeryLongModuleName_lvl1_info
+.type VeryLongModuleName_lvl1_info, @object
+VeryLongModuleName_lvl1_info:
 .L:
 	leaq -16(%rbp),%rax
 	cmpq %r14,%rax
@@ -177,14 +201,14 @@
 	jmp *-16(%r13)
 .section .data
 	.align 8
-ShortM_lvl2_srt:
+VeryLongModuleName_lvl2_srt:
 	.quad	base_ControlziExceptionziBase_recSelError_closure
 .data
 	.align 8
-.globl ShortM_lvl2_closure
-.type ShortM_lvl2_closure, @object
-ShortM_lvl2_closure:
-	.quad	ShortM_lvl2_info
+.globl VeryLongModuleName_lvl2_closure
+.type VeryLongModuleName_lvl2_closure, @object
+VeryLongModuleName_lvl2_closure:
+	.quad	VeryLongModuleName_lvl2_info
 	.quad	0
 	.quad	0
 	.quad	0
@@ -219,12 +243,24 @@
 	.byte	111
 	.byte	114
 	.byte	32
-	.byte	83
-	.byte	104
-	.byte	111
+	.byte	86
+	.byte	101
 	.byte	114
-	.byte	116
+	.byte	121
+	.byte	76
+	.byte	111
+	.byte	110
+	.byte	103
 	.byte	77
+	.byte	111
+	.byte	100
+	.byte	117
+	.byte	108
+	.byte	101
+	.byte	78
+	.byte	97
+	.byte	109
+	.byte	101
 	.byte	46
 	.byte	108
 	.byte	101
@@ -233,13 +269,13 @@
 	.byte	0
 .text
 	.align 8
-	.long	ShortM_lvl2_srt-(ShortM_lvl2_info)+0
+	.long	VeryLongModuleName_lvl2_srt-(VeryLongModuleName_lvl2_info)+0
 	.long	0
 	.quad	0
 	.quad	4294967318
-.globl ShortM_lvl2_info
-.type ShortM_lvl2_info, @object
-ShortM_lvl2_info:
+.globl VeryLongModuleName_lvl2_info
+.type VeryLongModuleName_lvl2_info, @object
+VeryLongModuleName_lvl2_info:
 .L:
 	leaq -16(%rbp),%rax
 	cmpq %r14,%rax
@@ -265,14 +301,14 @@
 	jmp *-16(%r13)
 .section .data
 	.align 8
-ShortM_lvl3_srt:
+VeryLongModuleName_lvl3_srt:
 	.quad	base_ControlziExceptionziBase_recSelError_closure
 .data
 	.align 8
-.globl ShortM_lvl3_closure
-.type ShortM_lvl3_closure, @object
-ShortM_lvl3_closure:
-	.quad	ShortM_lvl3_info
+.globl VeryLongModuleName_lvl3_closure
+.type VeryLongModuleName_lvl3_closure, @object
+VeryLongModuleName_lvl3_closure:
+	.quad	VeryLongModuleName_lvl3_info
 	.quad	0
 	.quad	0
 	.quad	0
@@ -307,12 +343,24 @@
 	.byte	111
 	.byte	114
 	.byte	32
-	.byte	83
-	.byte	104
-	.byte	111
+	.byte	86
+	.byte	101
 	.byte	114
-	.byte	116
+	.byte	121
+	.byte	76
+	.byte	111
+	.byte	110
+	.byte	103
 	.byte	77
+	.byte	111
+	.byte	100
+	.byte	117
+	.byte	108
+	.byte	101
+	.byte	78
+	.byte	97
+	.byte	109
+	.byte	101
 	.byte	46
 	.byte	118
 	.byte	97
@@ -320,13 +368,13 @@
 	.byte	0
 .text
 	.align 8
-	.long	ShortM_lvl3_srt-(ShortM_lvl3_info)+0
+	.long	VeryLongModuleName_lvl3_srt-(VeryLongModuleName_lvl3_info)+0
 	.long	0
 	.quad	0
 	.quad	4294967318
-.globl ShortM_lvl3_info
-.type ShortM_lvl3_info, @object
-ShortM_lvl3_info:
+.globl VeryLongModuleName_lvl3_info
+.type VeryLongModuleName_lvl3_info, @object
+VeryLongModuleName_lvl3_info:
 .L:
 	leaq -16(%rbp),%rax
 	cmpq %r14,%rax
@@ -352,10 +400,10 @@
 	jmp *-16(%r13)
 .data
 	.align 8
-.globl ShortM_zdWNode_closure
-.type ShortM_zdWNode_closure, @object
-ShortM_zdWNode_closure:
-	.quad	ShortM_zdWNode_info
+.globl VeryLongModuleName_zdWNode_closure
+.type VeryLongModuleName_zdWNode_closure, @object
+VeryLongModuleName_zdWNode_closure:
+	.quad	VeryLongModuleName_zdWNode_info
 .text
 	.align 8
 	.quad	259
@@ -365,7 +413,7 @@
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
 	movq 16(%rbp),%rax
 	movq %rax,-24(%r12)
 	movq 8(%rbp),%rax
@@ -424,9 +472,9 @@
 	.quad	17179869205
 	.quad	0
 	.quad	15
-.globl ShortM_zdWNode_info
-.type ShortM_zdWNode_info, @object
-ShortM_zdWNode_info:
+.globl VeryLongModuleName_zdWNode_info
+.type VeryLongModuleName_zdWNode_info, @object
+VeryLongModuleName_zdWNode_info:
 .L:
 	leaq -32(%rbp),%rax
 	cmpq %r14,%rax
@@ -441,78 +489,96 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_zdWNode_closure,%ebx
+	movl $VeryLongModuleName_zdWNode_closure,%ebx
 	jmp *-8(%r13)
+.section .data
+	.align 8
+VeryLongModuleName_nodeFor_srt:
+	.quad	VeryLongModuleName_left_closure
+	.quad	VeryLongModuleName_right_closure
+	.quad	VeryLongModuleName_val_closure
 .data
 	.align 8
-.globl ShortM_nodeFor_closure
-.type ShortM_nodeFor_closure, @object
-ShortM_nodeFor_closure:
-	.quad	ShortM_nodeFor_info
+.globl VeryLongModuleName_nodeFor_closure
+.type VeryLongModuleName_nodeFor_closure, @object
+VeryLongModuleName_nodeFor_closure:
+	.quad	VeryLongModuleName_nodeFor_info
+	.quad	0
 .text
 	.align 8
-	.quad	516
-	.quad	34
+	.long	VeryLongModuleName_nodeFor_srt-(_info)+0
+	.long	0
+	.quad	66
+	.quad	12884901922
 _info:
 .L:
-	movq 7(%rbx),%rax
-	cmpq 32(%rbp),%rax
+	movq 8(%rbp),%rax
+	cmpq 7(%rbx),%rax
 	jl .L
-	movq 7(%rbx),%rax
-	cmpq 32(%rbp),%rax
+	movq 8(%rbp),%rax
+	cmpq 7(%rbx),%rax
 	je .L
-	movq 24(%rbp),%rbx
-	addq $40,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
+	movq 16(%rbp),%rsi
+	addq $24,%rbp
+	jmp VeryLongModuleName_right_info
 .L:
-	movq 8(%rbp),%rbx
-	addq $40,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
+	movq 16(%rbp),%rsi
+	addq $24,%rbp
+	jmp VeryLongModuleName_left_info
 .L:
 	movq 16(%rbp),%rbx
-	addq $40,%rbp
+	addq $24,%rbp
 	andq $-8,%rbx
 	jmp *(%rbx)
 .text
 	.align 8
+	.long	VeryLongModuleName_nodeFor_srt-(_info)+0
+	.long	0
 	.quad	1
-	.quad	34
+	.quad	30064771106
+_info:
+.L:
+	movq 7(%rbx),%rax
+	movq %rax,(%rbp)
+	movq 8(%rbp),%rsi
+	movq $_info,-8(%rbp)
+	addq $-8,%rbp
+	jmp VeryLongModuleName_val_info
+.text
+	.align 8
+	.long	VeryLongModuleName_nodeFor_srt-(_info)+0
+	.long	0
+	.quad	1
+	.quad	30064771106
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movl $ShortM_Nil_closure+1,%ebx
+	movl $VeryLongModuleName_Nil_closure+1,%ebx
 	addq $16,%rbp
 	jmp *(%rbp)
 .L:
-	movq 6(%rbx),%rax
-	movq %rax,-16(%rbp)
-	movq %rbx,-8(%rbp)
-	movq 14(%rbx),%rax
-	movq %rax,(%rbp)
 	movq 8(%rbp),%rax
-	movq 30(%rbx),%rcx
-	movq %rcx,8(%rbp)
+	movq %rbx,8(%rbp)
 	movq %rax,%rbx
-	movq $_info,-24(%rbp)
-	addq $-24,%rbp
+	movq $_info,(%rbp)
 	testq $7,%rbx
 	jne _info
 	jmp *(%rbx)
 .text
 	.align 8
+	.long	VeryLongModuleName_nodeFor_srt-(VeryLongModuleName_nodeFor_info)+0
+	.long	0
 	.quad	8589934604
 	.quad	0
-	.quad	15
-.globl ShortM_nodeFor_info
-.type ShortM_nodeFor_info, @object
-ShortM_nodeFor_info:
+	.quad	30064771087
+.globl VeryLongModuleName_nodeFor_info
+.type VeryLongModuleName_nodeFor_info, @object
+VeryLongModuleName_nodeFor_info:
 .L:
-	leaq -40(%rbp),%rax
+	leaq -24(%rbp),%rax
 	cmpq %r14,%rax
 	jb .L
 	movq %rsi,-8(%rbp)
@@ -523,14 +589,14 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_nodeFor_closure,%ebx
+	movl $VeryLongModuleName_nodeFor_closure,%ebx
 	jmp *-8(%r13)
 .data
 	.align 8
-.globl ShortM_isNil_closure
-.type ShortM_isNil_closure, @object
-ShortM_isNil_closure:
-	.quad	ShortM_isNil_info
+.globl VeryLongModuleName_isNil_closure
+.type VeryLongModuleName_isNil_closure, @object
+VeryLongModuleName_isNil_closure:
+	.quad	VeryLongModuleName_isNil_info
 .text
 	.align 8
 	.quad	0
@@ -553,9 +619,9 @@
 	.quad	4294967301
 	.quad	0
 	.quad	15
-.globl ShortM_isNil_info
-.type ShortM_isNil_info, @object
-ShortM_isNil_info:
+.globl VeryLongModuleName_isNil_info
+.type VeryLongModuleName_isNil_info, @object
+VeryLongModuleName_isNil_info:
 .L:
 	leaq -8(%rbp),%rax
 	cmpq %r14,%rax
@@ -567,28 +633,28 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_isNil_closure,%ebx
+	movl $VeryLongModuleName_isNil_closure,%ebx
 	jmp *-8(%r13)
 .data
 	.align 8
-.globl ShortM_empty_closure
-.type ShortM_empty_closure, @object
-ShortM_empty_closure:
-	.quad	ShortM_Nil_static_info
+.globl VeryLongModuleName_empty_closure
+.type VeryLongModuleName_empty_closure, @object
+VeryLongModuleName_empty_closure:
+	.quad	VeryLongModuleName_Nil_static_info
 .section .data
 	.align 8
-ShortM_next_srt:
-	.quad	ShortM_lvl_closure
+VeryLongModuleName_val_srt:
+	.quad	VeryLongModuleName_lvl3_closure
 .data
 	.align 8
-.globl ShortM_next_closure
-.type ShortM_next_closure, @object
-ShortM_next_closure:
-	.quad	ShortM_next_info
+.globl VeryLongModuleName_val_closure
+.type VeryLongModuleName_val_closure, @object
+VeryLongModuleName_val_closure:
+	.quad	VeryLongModuleName_val_info
 	.quad	0
 .text
 	.align 8
-	.long	ShortM_next_srt-(_info)+0
+	.long	VeryLongModuleName_val_srt-(_info)+0
 	.long	0
 	.quad	0
 	.quad	4294967330
@@ -598,25 +664,33 @@
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movl $ShortM_lvl_closure,%ebx
+	movl $VeryLongModuleName_lvl3_closure,%ebx
 	addq $8,%rbp
 	andq $-8,%rbx
 	jmp *(%rbx)
 .L:
-	movq 22(%rbx),%rbx
+	addq $16,%r12
+	cmpq %r15,%r12
+	ja .L
+	movq $ghczmprim_GHCziTypes_Izh_con_info,-8(%r12)
+	movq 30(%rbx),%rax
+	movq %rax,(%r12)
+	leaq -7(%r12),%rbx
 	addq $8,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
+	jmp *(%rbp)
+.L:
+	movq $16,184(%r13)
+	jmp *-16(%r13)
 .text
 	.align 8
-	.long	ShortM_next_srt-(ShortM_next_info)+0
+	.long	VeryLongModuleName_val_srt-(VeryLongModuleName_val_info)+0
 	.long	0
 	.quad	4294967301
 	.quad	0
 	.quad	4294967311
-.globl ShortM_next_info
-.type ShortM_next_info, @object
-ShortM_next_info:
+.globl VeryLongModuleName_val_info
+.type VeryLongModuleName_val_info, @object
+VeryLongModuleName_val_info:
 .L:
 	leaq -8(%rbp),%rax
 	cmpq %r14,%rax
@@ -628,22 +702,22 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_next_closure,%ebx
+	movl $VeryLongModuleName_val_closure,%ebx
 	jmp *-8(%r13)
 .section .data
 	.align 8
-ShortM_right_srt:
-	.quad	ShortM_lvl1_closure
+VeryLongModuleName_right_srt:
+	.quad	VeryLongModuleName_lvl1_closure
 .data
 	.align 8
-.globl ShortM_right_closure
-.type ShortM_right_closure, @object
-ShortM_right_closure:
-	.quad	ShortM_right_info
+.globl VeryLongModuleName_right_closure
+.type VeryLongModuleName_right_closure, @object
+VeryLongModuleName_right_closure:
+	.quad	VeryLongModuleName_right_info
 	.quad	0
 .text
 	.align 8
-	.long	ShortM_right_srt-(_info)+0
+	.long	VeryLongModuleName_right_srt-(_info)+0
 	.long	0
 	.quad	0
 	.quad	4294967330
@@ -653,7 +727,7 @@
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movl $ShortM_lvl1_closure,%ebx
+	movl $VeryLongModuleName_lvl1_closure,%ebx
 	addq $8,%rbp
 	andq $-8,%rbx
 	jmp *(%rbx)
@@ -664,14 +738,14 @@
 	jmp *(%rbx)
 .text
 	.align 8
-	.long	ShortM_right_srt-(ShortM_right_info)+0
+	.long	VeryLongModuleName_right_srt-(VeryLongModuleName_right_info)+0
 	.long	0
 	.quad	4294967301
 	.quad	0
 	.quad	4294967311
-.globl ShortM_right_info
-.type ShortM_right_info, @object
-ShortM_right_info:
+.globl VeryLongModuleName_right_info
+.type VeryLongModuleName_right_info, @object
+VeryLongModuleName_right_info:
 .L:
 	leaq -8(%rbp),%rax
 	cmpq %r14,%rax
@@ -683,22 +757,22 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_right_closure,%ebx
+	movl $VeryLongModuleName_right_closure,%ebx
 	jmp *-8(%r13)
 .section .data
 	.align 8
-ShortM_left_srt:
-	.quad	ShortM_lvl2_closure
+VeryLongModuleName_next_srt:
+	.quad	VeryLongModuleName_lvl_closure
 .data
 	.align 8
-.globl ShortM_left_closure
-.type ShortM_left_closure, @object
-ShortM_left_closure:
-	.quad	ShortM_left_info
+.globl VeryLongModuleName_next_closure
+.type VeryLongModuleName_next_closure, @object
+VeryLongModuleName_next_closure:
+	.quad	VeryLongModuleName_next_info
 	.quad	0
 .text
 	.align 8
-	.long	ShortM_left_srt-(_info)+0
+	.long	VeryLongModuleName_next_srt-(_info)+0
 	.long	0
 	.quad	0
 	.quad	4294967330
@@ -708,25 +782,25 @@
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movl $ShortM_lvl2_closure,%ebx
+	movl $VeryLongModuleName_lvl_closure,%ebx
 	addq $8,%rbp
 	andq $-8,%rbx
 	jmp *(%rbx)
 .L:
-	movq 6(%rbx),%rbx
+	movq 22(%rbx),%rbx
 	addq $8,%rbp
 	andq $-8,%rbx
 	jmp *(%rbx)
 .text
 	.align 8
-	.long	ShortM_left_srt-(ShortM_left_info)+0
+	.long	VeryLongModuleName_next_srt-(VeryLongModuleName_next_info)+0
 	.long	0
 	.quad	4294967301
 	.quad	0
 	.quad	4294967311
-.globl ShortM_left_info
-.type ShortM_left_info, @object
-ShortM_left_info:
+.globl VeryLongModuleName_next_info
+.type VeryLongModuleName_next_info, @object
+VeryLongModuleName_next_info:
 .L:
 	leaq -8(%rbp),%rax
 	cmpq %r14,%rax
@@ -738,22 +812,22 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_left_closure,%ebx
+	movl $VeryLongModuleName_next_closure,%ebx
 	jmp *-8(%r13)
 .section .data
 	.align 8
-ShortM_val_srt:
-	.quad	ShortM_lvl3_closure
+VeryLongModuleName_left_srt:
+	.quad	VeryLongModuleName_lvl2_closure
 .data
 	.align 8
-.globl ShortM_val_closure
-.type ShortM_val_closure, @object
-ShortM_val_closure:
-	.quad	ShortM_val_info
+.globl VeryLongModuleName_left_closure
+.type VeryLongModuleName_left_closure, @object
+VeryLongModuleName_left_closure:
+	.quad	VeryLongModuleName_left_info
 	.quad	0
 .text
 	.align 8
-	.long	ShortM_val_srt-(_info)+0
+	.long	VeryLongModuleName_left_srt-(_info)+0
 	.long	0
 	.quad	0
 	.quad	4294967330
@@ -763,33 +837,25 @@
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movl $ShortM_lvl3_closure,%ebx
+	movl $VeryLongModuleName_lvl2_closure,%ebx
 	addq $8,%rbp
 	andq $-8,%rbx
 	jmp *(%rbx)
 .L:
-	addq $16,%r12
-	cmpq %r15,%r12
-	ja .L
-	movq $ghczmprim_GHCziTypes_Izh_con_info,-8(%r12)
-	movq 30(%rbx),%rax
-	movq %rax,(%r12)
-	leaq -7(%r12),%rbx
+	movq 6(%rbx),%rbx
 	addq $8,%rbp
-	jmp *(%rbp)
-.L:
-	movq $16,184(%r13)
-	jmp *-16(%r13)
+	andq $-8,%rbx
+	jmp *(%rbx)
 .text
 	.align 8
-	.long	ShortM_val_srt-(ShortM_val_info)+0
+	.long	VeryLongModuleName_left_srt-(VeryLongModuleName_left_info)+0
 	.long	0
 	.quad	4294967301
 	.quad	0
 	.quad	4294967311
-.globl ShortM_val_info
-.type ShortM_val_info, @object
-ShortM_val_info:
+.globl VeryLongModuleName_left_info
+.type VeryLongModuleName_left_info, @object
+VeryLongModuleName_left_info:
 .L:
 	leaq -8(%rbp),%rax
 	cmpq %r14,%rax
@@ -801,14 +867,14 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_val_closure,%ebx
+	movl $VeryLongModuleName_left_closure,%ebx
 	jmp *-8(%r13)
 .data
 	.align 8
-.globl ShortM_go_closure
-.type ShortM_go_closure, @object
-ShortM_go_closure:
-	.quad	ShortM_go_info
+.globl VeryLongModuleName_go_closure
+.type VeryLongModuleName_go_closure, @object
+VeryLongModuleName_go_closure:
+	.quad	VeryLongModuleName_go_info
 .text
 	.align 8
 	.quad	65
@@ -818,9 +884,9 @@
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
-	movq $ShortM_Nil_closure+1,-24(%r12)
-	movq $ShortM_Nil_closure+1,-16(%r12)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
+	movq $VeryLongModuleName_Nil_closure+1,-24(%r12)
+	movq $VeryLongModuleName_Nil_closure+1,-16(%r12)
 	movq %rbx,-8(%r12)
 	movq 8(%rbp),%rax
 	movq %rax,(%r12)
@@ -840,7 +906,7 @@
 	movq 7(%rbx),%rax
 	movq %rax,8(%rbp)
 	movq $_info,(%rbp)
-	jmp ShortM_go_info
+	jmp VeryLongModuleName_go_info
 .text
 	.align 8
 	.quad	0
@@ -851,7 +917,7 @@
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movl $ShortM_Nil_closure+1,%ebx
+	movl $VeryLongModuleName_Nil_closure+1,%ebx
 	addq $8,%rbp
 	jmp *(%rbp)
 .L:
@@ -868,9 +934,9 @@
 	.quad	4294967301
 	.quad	0
 	.quad	15
-.globl ShortM_go_info
-.type ShortM_go_info, @object
-ShortM_go_info:
+.globl VeryLongModuleName_go_info
+.type VeryLongModuleName_go_info, @object
+VeryLongModuleName_go_info:
 .L:
 	leaq -16(%rbp),%rax
 	cmpq %r14,%rax
@@ -882,37 +948,87 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_go_closure,%ebx
+	movl $VeryLongModuleName_go_closure,%ebx
 	jmp *-8(%r13)
+.section .data
+	.align 8
+VeryLongModuleName_zdsadd_srt:
+	.quad	VeryLongModuleName_lvl2_closure
+	.quad	VeryLongModuleName_zdsadd_closure
+	.quad	VeryLongModuleName_lvl_closure
+	.quad	VeryLongModuleName_lvl1_closure
+	.quad	VeryLongModuleName_zdsadd1_closure
+	.quad	VeryLongModuleName_lvl3_closure
+.section .data
+	.align 8
+VeryLongModuleName_zdsadd1_srt:
+	.quad	VeryLongModuleName_lvl2_closure
+	.quad	VeryLongModuleName_zdsadd_closure
+	.quad	VeryLongModuleName_lvl_closure
+	.quad	VeryLongModuleName_lvl1_closure
+	.quad	VeryLongModuleName_zdsadd1_closure
+	.quad	VeryLongModuleName_lvl3_closure
 .data
 	.align 8
-.globl ShortM_zdsadd_closure
-.type ShortM_zdsadd_closure, @object
-ShortM_zdsadd_closure:
-	.quad	ShortM_zdsadd_info
+.globl VeryLongModuleName_zdsadd_closure
+.type VeryLongModuleName_zdsadd_closure, @object
+VeryLongModuleName_zdsadd_closure:
+	.quad	VeryLongModuleName_zdsadd_info
+	.quad	0
 .text
 	.align 8
-.globl ShortM_zdsadd_slow
-.type ShortM_zdsadd_slow, @object
-ShortM_zdsadd_slow:
+.globl VeryLongModuleName_zdsadd_slow
+.type VeryLongModuleName_zdsadd_slow, @object
+VeryLongModuleName_zdsadd_slow:
 .L:
 	movq (%rbp),%rsi
 	movq 8(%rbp),%rdi
 	movq 16(%rbp),%r8
 	movq 24(%rbp),%r9
 	addq $32,%rbp
-	jmp ShortM_zdsadd_info
+	jmp VeryLongModuleName_zdsadd_info
 .text
 	.align 8
-	.quad	772
+	.long	VeryLongModuleName_zdsadd_srt-(_info)+24
+	.long	0
+	.quad	4294967299
+	.quad	4294967312
+_info:
+.L:
+	leaq -16(%rbp),%rax
+	cmpq %r14,%rax
+	jb .L
+	addq $40,%r12
+	cmpq %r15,%r12
+	ja .L
+	movq $stg_upd_frame_info,-16(%rbp)
+	movq %rbx,-8(%rbp)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
+	movq 16(%rbx),%rax
+	movq %rax,-24(%r12)
+	movq 24(%rbx),%rax
+	movq %rax,-16(%r12)
+	movq 32(%rbx),%rax
+	movq %rax,-8(%r12)
+	movq 40(%rbx),%rax
+	movq %rax,(%r12)
+	leaq -30(%r12),%rsi
+	addq $-16,%rbp
+	jmp VeryLongModuleName_right_info
+.L:
+	movq $40,184(%r13)
+	jmp *-16(%r13)
+.text
+	.align 8
+	.quad	644
 	.quad	34
 _info:
 .L:
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
-	movq 16(%rbp),%rax
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
+	movq 24(%rbp),%rax
 	movq %rax,-24(%r12)
 	movq %rbx,-16(%r12)
 	movq 8(%rbp),%rax
@@ -934,10 +1050,10 @@
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
-	movq 8(%rbp),%rax
-	movq %rax,-24(%r12)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
 	movq 16(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 8(%rbp),%rax
 	movq %rax,-16(%r12)
 	movq %rbx,-8(%r12)
 	movq 24(%rbp),%rax
@@ -950,8 +1066,10 @@
 	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	1157
-	.quad	34
+	.long	VeryLongModuleName_zdsadd_srt-(_info)+8
+	.long	0
+	.quad	1029
+	.quad	4294967330
 _info:
 .L:
 	movq %rbx,%rax
@@ -961,12 +1079,13 @@
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
-	movq 24(%rbp),%rax
-	movq %rax,-24(%r12)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
 	movq 32(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 24(%rbp),%rax
 	movq %rax,-16(%r12)
-	movq $ShortM_Nil_closure+1,-8(%r12)
+	movq 16(%rbp),%rax
+	movq %rax,-8(%r12)
 	movq 40(%rbp),%rax
 	movq %rax,(%r12)
 	leaq -30(%r12),%rbx
@@ -979,22 +1098,53 @@
 	movq 30(%rbx),%r9
 	movq $_info,16(%rbp)
 	addq $8,%rbp
-	jmp ShortM_zdsadd_info
+	jmp VeryLongModuleName_zdsadd_info
 .L:
 	movq $40,184(%r13)
 	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	644
+	.long	VeryLongModuleName_zdsadd_srt-(_info)+0
+	.long	0
+	.quad	4294967299
+	.quad	4294967312
+_info:
+.L:
+	leaq -16(%rbp),%rax
+	cmpq %r14,%rax
+	jb .L
+	addq $40,%r12
+	cmpq %r15,%r12
+	ja .L
+	movq $stg_upd_frame_info,-16(%rbp)
+	movq %rbx,-8(%rbp)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
+	movq 16(%rbx),%rax
+	movq %rax,-24(%r12)
+	movq 24(%rbx),%rax
+	movq %rax,-16(%r12)
+	movq 32(%rbx),%rax
+	movq %rax,-8(%r12)
+	movq 40(%rbx),%rax
+	movq %rax,(%r12)
+	leaq -30(%r12),%rsi
+	addq $-16,%rbp
+	jmp VeryLongModuleName_left_info
+.L:
+	movq $40,184(%r13)
+	jmp *-16(%r13)
+.text
+	.align 8
+	.quad	772
 	.quad	34
 _info:
 .L:
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
 	movq %rbx,-24(%r12)
-	movq 24(%rbp),%rax
+	movq 16(%rbp),%rax
 	movq %rax,-16(%r12)
 	movq 8(%rbp),%rax
 	movq %rax,-8(%r12)
@@ -1008,46 +1158,112 @@
 	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	1029
-	.quad	34
+	.long	VeryLongModuleName_zdsadd_srt-(_info)+0
+	.long	0
+	.quad	2118
+	.quad	133143986210
 _info:
 .L:
-	movq 7(%rbx),%rax
-	cmpq 40(%rbp),%rax
+	addq $48,%r12
+	cmpq %r15,%r12
+	ja .L
+	movq 8(%rbp),%rax
+	cmpq 7(%rbx),%rax
 	jl .L
-	movq 7(%rbx),%rax
-	cmpq 40(%rbp),%rax
+	movq 8(%rbp),%rax
+	cmpq 7(%rbx),%rax
 	je .L
-	movq 32(%rbp),%rsi
-	movq 8(%rbp),%rdi
-	movq 7(%rbx),%r8
-	movq $_info,8(%rbp)
-	addq $8,%rbp
-	jmp ShortM_zdsadd1_info
+	movq $_info,-40(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 32(%rbp),%rax
+	movq %rax,-16(%r12)
+	movq 24(%rbp),%rax
+	movq %rax,-8(%r12)
+	movq 48(%rbp),%rax
+	movq %rax,(%r12)
+	leaq -40(%r12),%rsi
+	movq 16(%rbp),%rdi
+	movq 8(%rbp),%r8
+	movq $_info,16(%rbp)
+	addq $16,%rbp
+	jmp VeryLongModuleName_zdsadd1_info
 .L:
-	movq 24(%rbp),%rsi
-	movq 8(%rbp),%rdi
-	movq 7(%rbx),%r8
+	movq $48,184(%r13)
+	jmp *-16(%r13)
+.L:
+	movq $_info,-40(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 32(%rbp),%rax
+	movq %rax,-16(%r12)
+	movq 24(%rbp),%rax
+	movq %rax,-8(%r12)
+	movq 48(%rbp),%rax
+	movq %rax,(%r12)
+	leaq -40(%r12),%rsi
+	movq 16(%rbp),%rdi
+	movq 8(%rbp),%r8
+	movq $_info,16(%rbp)
+	addq $16,%rbp
+	jmp VeryLongModuleName_zdsadd1_info
+.L:
+	movq $VeryLongModuleName_Node_con_info,-40(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,-32(%r12)
+	movq 32(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 24(%rbp),%rax
+	movq %rax,-16(%r12)
+	movq 48(%rbp),%rax
+	movq %rax,-8(%r12)
+	leaq -38(%r12),%rsi
 	movq $_info,8(%rbp)
 	addq $8,%rbp
-	jmp ShortM_zdsadd1_info
-.L:
-	movq 16(%rbp),%rbx
-	movq $_info,(%rbp)
-	testq $7,%rbx
-	jne _info
-	jmp *(%rbx)
+	addq $-8,%r12
+	jmp VeryLongModuleName_next_info
+.text
+	.align 8
+	.long	VeryLongModuleName_zdsadd_srt-(_info)+0
+	.long	0
+	.quad	1029
+	.quad	270582939682
+_info:
+.L:
+	addq $40,%r12
+	cmpq %r15,%r12
+	ja .L
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
+	movq 32(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 24(%rbp),%rax
+	movq %rax,-16(%r12)
+	movq 16(%rbp),%rax
+	movq %rax,-8(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,(%r12)
+	movq 7(%rbx),%rax
+	movq %rax,(%rbp)
+	leaq -30(%r12),%rsi
+	movq $_info,-8(%rbp)
+	addq $-8,%rbp
+	jmp VeryLongModuleName_val_info
+.L:
+	movq $40,184(%r13)
+	jmp *-16(%r13)
 .text
 	.align 8
+	.long	VeryLongModuleName_zdsadd_srt-(_info)+0
+	.long	0
 	.quad	516
-	.quad	34
+	.quad	270582939682
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movl $ShortM_Nil_closure+1,%ebx
+	movl $VeryLongModuleName_Nil_closure+1,%ebx
 	addq $40,%rbp
 	jmp *(%rbp)
 .L:
@@ -1061,23 +1277,24 @@
 	jmp *(%rbx)
 .text
 	.align 8
-	.long	ShortM_zdsadd_slow-(ShortM_zdsadd_info)+0
+	.long	VeryLongModuleName_zdsadd_slow-(VeryLongModuleName_zdsadd_info)+0
 	.long	0
 	.quad	517
-	.quad	0
+	.long	VeryLongModuleName_zdsadd_srt-(VeryLongModuleName_zdsadd_info)+0
+	.long	0
 	.quad	21474836480
 	.quad	0
-	.quad	15
-.globl ShortM_zdsadd_info
-.type ShortM_zdsadd_info, @object
-ShortM_zdsadd_info:
+	.quad	270582939663
+.globl VeryLongModuleName_zdsadd_info
+.type VeryLongModuleName_zdsadd_info, @object
+VeryLongModuleName_zdsadd_info:
 .L:
-	leaq -40(%rbp),%rax
+	leaq -48(%rbp),%rax
 	cmpq %r14,%rax
 	jb .L
 	movq %rsi,-24(%rbp)
-	movq %r8,-16(%rbp)
-	movq %rdi,-8(%rbp)
+	movq %rdi,-16(%rbp)
+	movq %r8,-8(%rbp)
 	movq (%rbp),%rbx
 	movq %r9,(%rbp)
 	movq $_info,-32(%rbp)
@@ -1086,7 +1303,7 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_zdsadd_closure,%ebx
+	movl $VeryLongModuleName_zdsadd_closure,%ebx
 	addq $-32,%rbp
 	movq %rsi,(%rbp)
 	movq %rdi,8(%rbp)
@@ -1095,20 +1312,39 @@
 	jmp *-8(%r13)
 .data
 	.align 8
-.globl ShortM_zdsadd1_closure
-.type ShortM_zdsadd1_closure, @object
-ShortM_zdsadd1_closure:
-	.quad	ShortM_zdsadd1_info
+.globl VeryLongModuleName_zdsadd1_closure
+.type VeryLongModuleName_zdsadd1_closure, @object
+VeryLongModuleName_zdsadd1_closure:
+	.quad	VeryLongModuleName_zdsadd1_info
+	.quad	0
 .text
 	.align 8
-	.quad	259
+	.long	VeryLongModuleName_zdsadd1_srt-(_info)+24
+	.long	0
+	.quad	1
+	.quad	4294967313
+_info:
+.L:
+	leaq -16(%rbp),%rax
+	cmpq %r14,%rax
+	jb .L
+	movq $stg_upd_frame_info,-16(%rbp)
+	movq %rbx,-8(%rbp)
+	movq 16(%rbx),%rsi
+	addq $-16,%rbp
+	jmp VeryLongModuleName_right_info
+.L:
+	jmp *-16(%r13)
+.text
+	.align 8
+	.quad	3846
 	.quad	34
 _info:
 .L:
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
 	movq 16(%rbp),%rax
 	movq %rax,-24(%r12)
 	movq %rbx,-16(%r12)
@@ -1117,84 +1353,150 @@
 	movq 24(%rbp),%rax
 	movq %rax,(%r12)
 	leaq -30(%r12),%rbx
-	addq $32,%rbp
+	addq $56,%rbp
 	jmp *(%rbp)
 .L:
 	movq $40,184(%r13)
 	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	772
+	.quad	7815
 	.quad	34
 _info:
 .L:
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
-	movq 8(%rbp),%rax
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
+	movq 24(%rbp),%rax
 	movq %rax,-24(%r12)
-	movq 16(%rbp),%rax
+	movq 8(%rbp),%rax
 	movq %rax,-16(%r12)
 	movq %rbx,-8(%r12)
 	movq 32(%rbp),%rax
 	movq %rax,(%r12)
 	leaq -30(%r12),%rbx
-	addq $40,%rbp
+	addq $64,%rbp
 	jmp *(%rbp)
 .L:
 	movq $40,184(%r13)
 	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	1029
-	.quad	34
+	.long	VeryLongModuleName_zdsadd1_srt-(_info)+8
+	.long	0
+	.quad	4743
+	.quad	4294967330
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movq 8(%rbp),%rbx
-	addq $48,%rbp
+	movq 40(%rbp),%rbx
+	addq $64,%rbp
 	andq $-8,%rbx
 	jmp *(%rbx)
 .L:
-	movq 32(%rbp),%rax
-	movq %rax,(%rbp)
+	movq 48(%rbp),%rax
+	movq %rax,-8(%rbp)
 	movq 22(%rbx),%rsi
 	movq 14(%rbx),%rdi
 	movq 6(%rbx),%r8
 	movq 30(%rbx),%r9
-	movq $_info,8(%rbp)
-	jmp ShortM_zdsadd_info
+	movq $_info,(%rbp)
+	addq $-8,%rbp
+	jmp VeryLongModuleName_zdsadd_info
 .text
 	.align 8
-	.quad	259
+	.long	VeryLongModuleName_zdsadd1_srt-(_info)+0
+	.long	0
+	.quad	1
+	.quad	4294967313
+_info:
+.L:
+	leaq -16(%rbp),%rax
+	cmpq %r14,%rax
+	jb .L
+	movq $stg_upd_frame_info,-16(%rbp)
+	movq %rbx,-8(%rbp)
+	movq 16(%rbx),%rsi
+	addq $-16,%rbp
+	jmp VeryLongModuleName_left_info
+.L:
+	jmp *-16(%r13)
+.text
+	.align 8
+	.quad	7943
 	.quad	34
 _info:
 .L:
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
 	movq %rbx,-24(%r12)
-	movq 16(%rbp),%rax
-	movq %rax,-16(%r12)
 	movq 8(%rbp),%rax
+	movq %rax,-16(%r12)
+	movq 16(%rbp),%rax
 	movq %rax,-8(%r12)
-	movq 24(%rbp),%rax
+	movq 32(%rbp),%rax
 	movq %rax,(%r12)
 	leaq -30(%r12),%rbx
-	addq $32,%rbp
+	addq $64,%rbp
 	jmp *(%rbp)
 .L:
 	movq $40,184(%r13)
 	jmp *-16(%r13)
 .text
 	.align 8
+	.long	VeryLongModuleName_zdsadd1_srt-(_info)+0
+	.long	0
+	.quad	4615
+	.quad	133143986210
+_info:
+.L:
+	addq $24,%r12
+	cmpq %r15,%r12
+	ja .L
+	movq 56(%rbp),%rax
+	cmpq 7(%rbx),%rax
+	jl .L
+	movq 56(%rbp),%rax
+	cmpq 7(%rbx),%rax
+	je .L
+	movq $_info,-16(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,(%r12)
+	leaq -16(%r12),%rsi
+	movq 48(%rbp),%rdi
+	movq 56(%rbp),%r8
+	movq $_info,8(%rbp)
+	addq $8,%rbp
+	jmp VeryLongModuleName_zdsadd1_info
+.L:
+	movq $24,184(%r13)
+	jmp *-16(%r13)
+.L:
+	movq $_info,-16(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,(%r12)
+	leaq -16(%r12),%rsi
+	movq 48(%rbp),%rdi
+	movq 56(%rbp),%r8
+	movq $_info,(%rbp)
+	jmp VeryLongModuleName_zdsadd1_info
+.L:
+	movq 40(%rbp),%rsi
+	movq $_info,(%rbp)
+	addq $-24,%r12
+	jmp VeryLongModuleName_next_info
+.text
+	.align 8
+	.long	VeryLongModuleName_zdsadd1_srt-(_info)+0
+	.long	0
 	.quad	130
-	.quad	34
+	.quad	270582939682
 _info:
 .L:
 	movq %rbx,%rax
@@ -1214,66 +1516,36 @@
 	movq %rax,(%r12)
 	leaq -14(%r12),%rsi
 	addq $24,%rbp
-	jmp ShortM_go_info
+	jmp VeryLongModuleName_go_info
 .L:
-	movq 16(%rbp),%rax
-	cmpq 30(%rbx),%rax
-	jl .L
-	movq 16(%rbp),%rax
-	cmpq 30(%rbx),%rax
-	je .L
+	movq 14(%rbx),%rax
+	movq %rax,-32(%rbp)
 	movq 22(%rbx),%rax
-	movq %rax,(%rbp)
-	movq 14(%rbx),%rsi
-	movq 8(%rbp),%rdi
+	movq %rax,-24(%rbp)
 	movq 6(%rbx),%rax
-	movq %rax,8(%rbp)
-	movq 16(%rbp),%r8
-	movq 30(%rbx),%rax
-	movq %rax,16(%rbp)
-	movq $_info,-8(%rbp)
-	addq $-8,%rbp
-	jmp ShortM_zdsadd1_info
-.L:
-	movq 22(%rbx),%rax
-	movq %rax,(%rbp)
-	movq 6(%rbx),%rsi
-	movq 8(%rbp),%rdi
-	movq 14(%rbx),%rax
-	movq %rax,8(%rbp)
-	movq 16(%rbp),%r8
+	movq %rax,-16(%rbp)
 	movq 30(%rbx),%rax
-	movq %rax,16(%rbp)
-	movq $_info,-8(%rbp)
-	addq $-8,%rbp
-	jmp ShortM_zdsadd1_info
-.L:
-	movq %rbx,-16(%rbp)
-	movq 6(%rbx),%rax
 	movq %rax,-8(%rbp)
-	movq 14(%rbx),%rax
-	movq %rax,(%rbp)
-	movq 30(%rbx),%rax
-	movq %rax,16(%rbp)
-	movq 22(%rbx),%rbx
-	movq $_info,-24(%rbp)
-	addq $-24,%rbp
-	testq $7,%rbx
-	jne _info
-	jmp *(%rbx)
+	movq %rbx,(%rbp)
+	movq %rbx,%rsi
+	movq $_info,-40(%rbp)
+	addq $-40,%rbp
+	jmp VeryLongModuleName_val_info
 .L:
 	movq $40,184(%r13)
 	jmp *-16(%r13)
 .text
 	.align 8
+	.long	VeryLongModuleName_zdsadd1_srt-(VeryLongModuleName_zdsadd1_info)+0
+	.long	0
 	.quad	12884901907
 	.quad	0
-	.quad	15
-.globl ShortM_zdsadd1_info
-.type ShortM_zdsadd1_info, @object
-ShortM_zdsadd1_info:
+	.quad	270582939663
+.globl VeryLongModuleName_zdsadd1_info
+.type VeryLongModuleName_zdsadd1_info, @object
+VeryLongModuleName_zdsadd1_info:
 .L:
-	leaq -48(%rbp),%rax
+	leaq -72(%rbp),%rax
 	cmpq %r14,%rax
 	jb .L
 	movq %rdi,-16(%rbp)
@@ -1285,14 +1557,42 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_zdsadd1_closure,%ebx
+	movl $VeryLongModuleName_zdsadd1_closure,%ebx
 	jmp *-8(%r13)
+.section .data
+	.align 8
+VeryLongModuleName_add_srt:
+	.quad	VeryLongModuleName_lvl2_closure
+	.quad	VeryLongModuleName_zdsadd_closure
+	.quad	VeryLongModuleName_lvl_closure
+	.quad	VeryLongModuleName_lvl1_closure
+	.quad	VeryLongModuleName_zdsadd1_closure
+	.quad	VeryLongModuleName_lvl3_closure
 .data
 	.align 8
-.globl ShortM_add_closure
-.type ShortM_add_closure, @object
-ShortM_add_closure:
-	.quad	ShortM_add_info
+.globl VeryLongModuleName_add_closure
+.type VeryLongModuleName_add_closure, @object
+VeryLongModuleName_add_closure:
+	.quad	VeryLongModuleName_add_info
+	.quad	0
+.text
+	.align 8
+	.long	VeryLongModuleName_add_srt-(_info)+24
+	.long	0
+	.quad	1
+	.quad	4294967313
+_info:
+.L:
+	leaq -16(%rbp),%rax
+	cmpq %r14,%rax
+	jb .L
+	movq $stg_upd_frame_info,-16(%rbp)
+	movq %rbx,-8(%rbp)
+	movq 16(%rbx),%rsi
+	addq $-16,%rbp
+	jmp VeryLongModuleName_right_info
+.L:
+	jmp *-16(%r13)
 .text
 	.align 8
 	.quad	1797
@@ -1302,13 +1602,13 @@
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
 	movq 16(%rbp),%rax
 	movq %rax,-24(%r12)
 	movq %rbx,-16(%r12)
 	movq 8(%rbp),%rax
 	movq %rax,-8(%r12)
-	movq 40(%rbp),%rax
+	movq 32(%rbp),%rax
 	movq %rax,(%r12)
 	leaq -30(%r12),%rbx
 	addq $48,%rbp
@@ -1318,109 +1618,159 @@
 	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	644
+	.quad	3718
 	.quad	34
 _info:
 .L:
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
-	movq 8(%rbp),%rax
-	movq %rax,-24(%r12)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
 	movq 24(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 8(%rbp),%rax
 	movq %rax,-16(%r12)
 	movq %rbx,-8(%r12)
-	movq 32(%rbp),%rax
+	movq 40(%rbp),%rax
 	movq %rax,(%r12)
 	leaq -30(%r12),%rbx
-	addq $40,%rbp
+	addq $56,%rbp
 	jmp *(%rbp)
 .L:
 	movq $40,184(%r13)
 	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	2182
-	.quad	34
+	.long	VeryLongModuleName_add_srt-(_info)+8
+	.long	0
+	.quad	1158
+	.quad	4294967330
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movq 8(%rbp),%rbx
+	movq 48(%rbp),%rbx
 	addq $56,%rbp
 	andq $-8,%rbx
 	jmp *(%rbx)
 .L:
 	movq 32(%rbp),%rax
-	movq %rax,8(%rbp)
+	movq %rax,-8(%rbp)
 	movq 22(%rbx),%rsi
 	movq 14(%rbx),%rdi
 	movq 6(%rbx),%r8
 	movq 30(%rbx),%r9
-	movq $_info,16(%rbp)
-	addq $8,%rbp
-	jmp ShortM_zdsadd_info
+	movq $_info,(%rbp)
+	addq $-8,%rbp
+	jmp VeryLongModuleName_zdsadd_info
+.text
+	.align 8
+	.long	VeryLongModuleName_add_srt-(_info)+0
+	.long	0
+	.quad	1
+	.quad	4294967313
+_info:
+.L:
+	leaq -16(%rbp),%rax
+	cmpq %r14,%rax
+	jb .L
+	movq $stg_upd_frame_info,-16(%rbp)
+	movq %rbx,-8(%rbp)
+	movq 16(%rbx),%rsi
+	addq $-16,%rbp
+	jmp VeryLongModuleName_left_info
+.L:
+	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	1413
+	.quad	3846
 	.quad	34
 _info:
 .L:
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
 	movq %rbx,-24(%r12)
-	movq 32(%rbp),%rax
-	movq %rax,-16(%r12)
 	movq 8(%rbp),%rax
+	movq %rax,-16(%r12)
+	movq 16(%rbp),%rax
 	movq %rax,-8(%r12)
 	movq 40(%rbp),%rax
 	movq %rax,(%r12)
 	leaq -30(%r12),%rbx
-	addq $48,%rbp
+	addq $56,%rbp
 	jmp *(%rbp)
 .L:
 	movq $40,184(%r13)
 	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	2054
-	.quad	34
+	.long	VeryLongModuleName_add_srt-(_info)+0
+	.long	0
+	.quad	2119
+	.quad	133143986210
 _info:
 .L:
-	movq 7(%rbx),%rax
-	cmpq 48(%rbp),%rax
+	addq $24,%r12
+	cmpq %r15,%r12
+	ja .L
+	movq 8(%rbp),%rax
+	cmpq 7(%rbx),%rax
 	jl .L
-	movq 7(%rbx),%rax
-	cmpq 48(%rbp),%rax
+	movq 8(%rbp),%rax
+	cmpq 7(%rbx),%rax
 	je .L
-	movq 40(%rbp),%rsi
-	movq 32(%rbp),%rdi
-	movq 7(%rbx),%r8
+	movq $_info,-16(%r12)
+	movq 56(%rbp),%rax
+	movq %rax,(%r12)
+	leaq -16(%r12),%rsi
+	movq 40(%rbp),%rdi
+	movq 8(%rbp),%r8
+	movq $_info,16(%rbp)
+	addq $16,%rbp
+	jmp VeryLongModuleName_zdsadd1_info
+.L:
+	movq $24,184(%r13)
+	jmp *-16(%r13)
+.L:
+	movq $_info,-16(%r12)
+	movq 56(%rbp),%rax
+	movq %rax,(%r12)
+	leaq -16(%r12),%rsi
+	movq 40(%rbp),%rdi
+	movq 8(%rbp),%r8
 	movq $_info,8(%rbp)
 	addq $8,%rbp
-	jmp ShortM_zdsadd1_info
+	jmp VeryLongModuleName_zdsadd1_info
 .L:
-	movq 24(%rbp),%rsi
-	movq 32(%rbp),%rdi
-	movq 7(%rbx),%r8
+	movq 56(%rbp),%rsi
 	movq $_info,8(%rbp)
 	addq $8,%rbp
-	jmp ShortM_zdsadd1_info
+	addq $-24,%r12
+	jmp VeryLongModuleName_next_info
+.text
+	.align 8
+	.long	VeryLongModuleName_add_srt-(_info)+0
+	.long	0
+	.quad	1030
+	.quad	270582939682
+_info:
 .L:
-	movq 16(%rbp),%rbx
-	movq $_info,(%rbp)
-	testq $7,%rbx
-	jne _info
-	jmp *(%rbx)
+	movq 7(%rbx),%rax
+	movq %rax,(%rbp)
+	movq 48(%rbp),%rsi
+	movq $_info,-8(%rbp)
+	addq $-8,%rbp
+	jmp VeryLongModuleName_val_info
 .text
 	.align 8
+	.long	VeryLongModuleName_add_srt-(_info)+0
+	.long	0
 	.quad	3
-	.quad	34
+	.quad	270582939682
 _info:
 .L:
 	movq %rbx,%rax
@@ -1429,17 +1779,17 @@
 	jae .L
 	movq 24(%rbp),%rsi
 	addq $32,%rbp
-	jmp ShortM_go_info
+	jmp VeryLongModuleName_go_info
 .L:
-	movq %rbx,-16(%rbp)
+	movq 14(%rbx),%rax
+	movq %rax,-16(%rbp)
 	movq 22(%rbx),%rax
 	movq %rax,-8(%rbp)
 	movq 6(%rbx),%rax
 	movq %rax,(%rbp)
-	movq 30(%rbx),%rax
-	movq %rax,24(%rbp)
+	movq %rbx,24(%rbp)
 	movq 16(%rbp),%rax
-	movq 14(%rbx),%rcx
+	movq 30(%rbx),%rcx
 	movq %rcx,16(%rbp)
 	movq %rax,%rbx
 	movq $_info,-24(%rbp)
@@ -1449,15 +1799,17 @@
 	jmp *(%rbx)
 .text
 	.align 8
+	.long	VeryLongModuleName_add_srt-(_info)+0
+	.long	0
 	.quad	1
-	.quad	34
+	.quad	270582939682
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movl $ShortM_Nil_closure+1,%ebx
+	movl $VeryLongModuleName_Nil_closure+1,%ebx
 	addq $16,%rbp
 	jmp *(%rbp)
 .L:
@@ -1475,14 +1827,16 @@
 	jmp *(%rbx)
 .text
 	.align 8
+	.long	VeryLongModuleName_add_srt-(VeryLongModuleName_add_info)+0
+	.long	0
 	.quad	8589934604
 	.quad	0
-	.quad	15
-.globl ShortM_add_info
-.type ShortM_add_info, @object
-ShortM_add_info:
+	.quad	270582939663
+.globl VeryLongModuleName_add_info
+.type VeryLongModuleName_add_info, @object
+VeryLongModuleName_add_info:
 .L:
-	leaq -56(%rbp),%rax
+	leaq -64(%rbp),%rax
 	cmpq %r14,%rax
 	jb .L
 	movq %rdi,-8(%rbp)
@@ -1493,48 +1847,140 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_add_closure,%ebx
+	movl $VeryLongModuleName_add_closure,%ebx
 	jmp *-8(%r13)
-.data
+.section .data
 	.align 8
-.globl ShortM_zdssubsumes_closure
-.type ShortM_zdssubsumes_closure, @object
-ShortM_zdssubsumes_closure:
-	.quad	ShortM_zdssubsumes_info
+VeryLongModuleName_zdssubsumes_srt:
+	.quad	VeryLongModuleName_zdssubsumes_closure
+	.quad	VeryLongModuleName_zdssubsumes1_closure
+	.quad	VeryLongModuleName_subsumes_closure
+	.quad	VeryLongModuleName_lvl2_closure
+	.quad	VeryLongModuleName_lvl_closure
+	.quad	VeryLongModuleName_lvl1_closure
+	.quad	VeryLongModuleName_lvl3_closure
+.section .data
+	.align 8
+VeryLongModuleName_zdssubsumes1_srt:
+	.quad	VeryLongModuleName_zdssubsumes_closure
+	.quad	VeryLongModuleName_zdssubsumes1_closure
+	.quad	VeryLongModuleName_subsumes_closure
+	.quad	VeryLongModuleName_lvl2_closure
+	.quad	VeryLongModuleName_lvl_closure
+	.quad	VeryLongModuleName_lvl1_closure
+	.quad	VeryLongModuleName_lvl3_closure
+.section .data
+	.align 8
+VeryLongModuleName_subsumes_srt:
+	.quad	VeryLongModuleName_zdssubsumes_closure
+	.quad	VeryLongModuleName_zdssubsumes1_closure
+	.quad	VeryLongModuleName_subsumes_closure
+	.quad	VeryLongModuleName_lvl2_closure
+	.quad	VeryLongModuleName_lvl_closure
+	.quad	VeryLongModuleName_lvl1_closure
+	.quad	VeryLongModuleName_lvl3_closure
+.data
+	.align 8
+.globl VeryLongModuleName_zdssubsumes_closure
+.type VeryLongModuleName_zdssubsumes_closure, @object
+VeryLongModuleName_zdssubsumes_closure:
+	.quad	VeryLongModuleName_zdssubsumes_info
+	.quad	0
 .text
 	.align 8
-.globl ShortM_zdssubsumes_slow
-.type ShortM_zdssubsumes_slow, @object
-ShortM_zdssubsumes_slow:
+.globl VeryLongModuleName_zdssubsumes_slow
+.type VeryLongModuleName_zdssubsumes_slow, @object
+VeryLongModuleName_zdssubsumes_slow:
 .L:
 	movq (%rbp),%rsi
 	movq 8(%rbp),%rdi
 	movq 16(%rbp),%r8
 	movq 24(%rbp),%r9
 	addq $32,%rbp
-	jmp ShortM_zdssubsumes_info
+	jmp VeryLongModuleName_zdssubsumes_info
 .text
 	.align 8
-	.quad	1413
-	.quad	34
+	.long	VeryLongModuleName_zdssubsumes_srt-(_info)+40
+	.long	0
+	.quad	4294967299
+	.quad	4294967312
+_info:
+.L:
+	leaq -16(%rbp),%rax
+	cmpq %r14,%rax
+	jb .L
+	addq $40,%r12
+	cmpq %r15,%r12
+	ja .L
+	movq $stg_upd_frame_info,-16(%rbp)
+	movq %rbx,-8(%rbp)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
+	movq 16(%rbx),%rax
+	movq %rax,-24(%r12)
+	movq 24(%rbx),%rax
+	movq %rax,-16(%r12)
+	movq 32(%rbx),%rax
+	movq %rax,-8(%r12)
+	movq 40(%rbx),%rax
+	movq %rax,(%r12)
+	leaq -30(%r12),%rsi
+	addq $-16,%rbp
+	jmp VeryLongModuleName_right_info
+.L:
+	movq $40,184(%r13)
+	jmp *-16(%r13)
+.text
+	.align 8
+	.long	VeryLongModuleName_zdssubsumes_srt-(_info)+16
+	.long	0
+	.quad	1925
+	.quad	4294967330
+_info:
+.L:
+	movq %rbx,%rsi
+	movq 8(%rbp),%rdi
+	addq $48,%rbp
+	jmp VeryLongModuleName_subsumes_info
+.text
+	.align 8
+	.long	VeryLongModuleName_zdssubsumes_srt-(_info)+16
+	.long	0
+	.quad	1029
+	.quad	38654705698
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movq 32(%rbp),%rsi
-	movq 8(%rbp),%rdi
-	addq $48,%rbp
-	jmp ShortM_subsumes_info
+	addq $40,%r12
+	cmpq %r15,%r12
+	ja .L
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
+	movq 32(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 24(%rbp),%rax
+	movq %rax,-16(%r12)
+	movq 16(%rbp),%rax
+	movq %rax,-8(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,(%r12)
+	leaq -30(%r12),%rsi
+	movq $_info,(%rbp)
+	jmp VeryLongModuleName_right_info
 .L:
 	movl $ghczmprim_GHCziBool_True_closure+2,%ebx
 	addq $48,%rbp
 	jmp *(%rbp)
+.L:
+	movq $40,184(%r13)
+	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	1413
-	.quad	34
+	.long	VeryLongModuleName_zdssubsumes_srt-(_info)+0
+	.long	0
+	.quad	1029
+	.quad	158913789986
 _info:
 .L:
 	movq %rbx,%rax
@@ -1553,65 +1999,94 @@
 	movq 6(%rbx),%r9
 	movq $_info,(%rbp)
 	addq $-8,%rbp
-	jmp ShortM_zdssubsumes_info
+	jmp VeryLongModuleName_zdssubsumes_info
 .text
 	.align 8
+	.long	VeryLongModuleName_zdssubsumes_srt-(_info)+24
+	.long	0
+	.quad	130
+	.quad	21474836514
+_info:
+.L:
+	movq 16(%rbp),%rax
+	cmpq 7(%rbx),%rax
+	jl .L
+	movq 16(%rbp),%rax
+	cmpq 7(%rbx),%rax
+	je .L
+	movq 8(%rbp),%rsi
+	addq $24,%rbp
+	jmp VeryLongModuleName_right_info
+.L:
+	movq 8(%rbp),%rsi
+	addq $24,%rbp
+	jmp VeryLongModuleName_left_info
+.L:
+	movq 8(%rbp),%rbx
+	addq $24,%rbp
+	andq $-8,%rbx
+	jmp *(%rbx)
+.text
+	.align 8
+	.long	VeryLongModuleName_zdssubsumes_srt-(_info)+24
+	.long	0
 	.quad	65
-	.quad	34
+	.quad	55834574882
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movl $ShortM_Nil_closure+1,%ebx
+	movl $VeryLongModuleName_Nil_closure+1,%ebx
 	addq $16,%rbp
 	jmp stg_upd_frame_info
 .L:
-	movq 8(%rbp),%rax
-	cmpq 30(%rbx),%rax
-	jl .L
-	movq 8(%rbp),%rax
-	cmpq 30(%rbx),%rax
-	je .L
-	movq 14(%rbx),%rbx
-	addq $16,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
-.L:
-	movq 6(%rbx),%rbx
-	addq $16,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
-.L:
-	addq $16,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
+	movq %rbx,(%rbp)
+	movq %rbx,%rsi
+	movq $_info,-8(%rbp)
+	addq $-8,%rbp
+	jmp VeryLongModuleName_val_info
 .text
 	.align 8
-	.quad	4294967297
-	.quad	20
+	.long	VeryLongModuleName_zdssubsumes_srt-(_info)+24
+	.long	0
+	.quad	8589934595
+	.quad	55834574864
 _info:
 .L:
-	leaq -32(%rbp),%rax
+	leaq -40(%rbp),%rax
 	cmpq %r14,%rax
 	jb .L
+	addq $40,%r12
+	cmpq %r15,%r12
+	ja .L
 	movq $stg_upd_frame_info,-16(%rbp)
 	movq %rbx,-8(%rbp)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
+	movq 16(%rbx),%rax
+	movq %rax,-24(%r12)
 	movq 24(%rbx),%rax
+	movq %rax,-16(%r12)
+	movq 32(%rbx),%rax
+	movq %rax,-8(%r12)
+	movq 40(%rbx),%rax
+	movq %rax,(%r12)
+	movq 48(%rbx),%rax
 	movq %rax,-24(%rbp)
-	movq 16(%rbx),%rbx
+	leaq -30(%r12),%rsi
 	movq $_info,-32(%rbp)
 	addq $-32,%rbp
-	testq $7,%rbx
-	jne _info
-	jmp *(%rbx)
+	jmp VeryLongModuleName_left_info
 .L:
+	movq $40,184(%r13)
 	jmp *-16(%r13)
 .text
 	.align 8
+	.long	VeryLongModuleName_zdssubsumes_srt-(_info)+0
+	.long	0
 	.quad	1029
-	.quad	34
+	.quad	4294967330
 _info:
 .L:
 	movq %rbx,%rax
@@ -1619,61 +2094,118 @@
 	cmpq $2,%rax
 	jae .L
 	movq 8(%rbp),%rsi
-	movq 24(%rbp),%rdi
-	movq 32(%rbp),%r8
-	movq 16(%rbp),%r9
+	movq 16(%rbp),%rdi
+	movq 24(%rbp),%r8
+	movq 32(%rbp),%r9
 	addq $40,%rbp
-	jmp ShortM_zdssubsumes_info
+	jmp VeryLongModuleName_zdssubsumes_info
 .L:
 	movl $ghczmprim_GHCziBool_True_closure+2,%ebx
 	addq $48,%rbp
 	jmp *(%rbp)
 .text
 	.align 8
-	.quad	1029
-	.quad	34
+	.long	VeryLongModuleName_zdssubsumes_srt-(_info)+0
+	.long	0
+	.quad	2118
+	.quad	545460846626
 _info:
 .L:
-	addq $32,%r12
+	addq $56,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq 7(%rbx),%rax
-	cmpq 40(%rbp),%rax
+	movq 8(%rbp),%rax
+	cmpq 7(%rbx),%rax
 	jl .L
-	movq 7(%rbx),%rax
-	cmpq 40(%rbp),%rax
+	movq 8(%rbp),%rax
+	cmpq 7(%rbx),%rax
 	je .L
-	movq 8(%rbp),%rsi
-	movq 7(%rbx),%rdi
-	movq 32(%rbp),%r8
-	addq $48,%rbp
-	addq $-32,%r12
-	jmp ShortM_zdssubsumes1_info
+	movq $_info,-48(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,-32(%r12)
+	movq 32(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 24(%rbp),%rax
+	movq %rax,-16(%r12)
+	movq 48(%rbp),%rax
+	movq %rax,-8(%r12)
+	movq 16(%rbp),%rsi
+	movq 8(%rbp),%rdi
+	leaq -48(%r12),%r8
+	addq $56,%rbp
+	addq $-8,%r12
+	jmp VeryLongModuleName_zdssubsumes1_info
 .L:
-	movq $32,184(%r13)
+	movq $56,184(%r13)
 	jmp *-16(%r13)
 .L:
-	movq $_info,-24(%r12)
+	movq $_info,-48(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,-32(%r12)
+	movq 32(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 24(%rbp),%rax
+	movq %rax,-16(%r12)
+	movq 48(%rbp),%rax
+	movq %rax,-8(%r12)
+	movq 8(%rbp),%rax
+	movq %rax,(%r12)
+	movq 16(%rbp),%rsi
+	movq 8(%rbp),%rdi
+	leaq -48(%r12),%r8
+	movq $_info,8(%rbp)
+	addq $8,%rbp
+	jmp VeryLongModuleName_zdssubsumes1_info
+.L:
+	movq $VeryLongModuleName_Node_con_info,-48(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,-40(%r12)
+	movq 32(%rbp),%rax
+	movq %rax,-32(%r12)
+	movq 24(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 48(%rbp),%rax
+	movq %rax,-16(%r12)
+	leaq -46(%r12),%rsi
+	movq $_info,8(%rbp)
+	addq $8,%rbp
+	addq $-16,%r12
+	jmp VeryLongModuleName_next_info
+.text
+	.align 8
+	.long	VeryLongModuleName_zdssubsumes_srt-(_info)+0
+	.long	0
+	.quad	1029
+	.quad	545460846626
+_info:
+.L:
+	addq $40,%r12
+	cmpq %r15,%r12
+	ja .L
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
+	movq 32(%rbp),%rax
+	movq %rax,-24(%r12)
+	movq 24(%rbp),%rax
+	movq %rax,-16(%r12)
 	movq 16(%rbp),%rax
 	movq %rax,-8(%r12)
-	movq 7(%rbx),%rax
+	movq 40(%rbp),%rax
 	movq %rax,(%r12)
-	movq 8(%rbp),%rsi
-	movq 7(%rbx),%rdi
-	leaq -24(%r12),%r8
-	movq $_info,(%rbp)
-	jmp ShortM_zdssubsumes1_info
+	movq 7(%rbx),%rax
+	movq %rax,(%rbp)
+	leaq -30(%r12),%rsi
+	movq $_info,-8(%rbp)
+	addq $-8,%rbp
+	jmp VeryLongModuleName_val_info
 .L:
-	movq 24(%rbp),%rbx
-	movq $_info,(%rbp)
-	addq $-32,%r12
-	testq $7,%rbx
-	jne _info
-	jmp *(%rbx)
+	movq $40,184(%r13)
+	jmp *-16(%r13)
 .text
 	.align 8
+	.long	VeryLongModuleName_zdssubsumes_srt-(_info)+0
+	.long	0
 	.quad	516
-	.quad	34
+	.quad	545460846626
 _info:
 .L:
 	movq %rbx,%rax
@@ -1694,23 +2226,24 @@
 	jmp *(%rbx)
 .text
 	.align 8
-	.long	ShortM_zdssubsumes_slow-(ShortM_zdssubsumes_info)+0
+	.long	VeryLongModuleName_zdssubsumes_slow-(VeryLongModuleName_zdssubsumes_info)+0
 	.long	0
 	.quad	1029
-	.quad	0
+	.long	VeryLongModuleName_zdssubsumes_srt-(VeryLongModuleName_zdssubsumes_info)+0
+	.long	0
 	.quad	21474836480
 	.quad	0
-	.quad	15
-.globl ShortM_zdssubsumes_info
-.type ShortM_zdssubsumes_info, @object
-ShortM_zdssubsumes_info:
+	.quad	545460846607
+.globl VeryLongModuleName_zdssubsumes_info
+.type VeryLongModuleName_zdssubsumes_info, @object
+VeryLongModuleName_zdssubsumes_info:
 .L:
 	leaq -48(%rbp),%rax
 	cmpq %r14,%rax
 	jb .L
-	movq %r9,-24(%rbp)
-	movq %rdi,-16(%rbp)
-	movq %r8,-8(%rbp)
+	movq %rdi,-24(%rbp)
+	movq %r8,-16(%rbp)
+	movq %r9,-8(%rbp)
 	movq %rsi,%rbx
 	movq $_info,-32(%rbp)
 	addq $-32,%rbp
@@ -1718,7 +2251,7 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_zdssubsumes_closure,%ebx
+	movl $VeryLongModuleName_zdssubsumes_closure,%ebx
 	addq $-32,%rbp
 	movq %rsi,(%rbp)
 	movq %rdi,8(%rbp)
@@ -1727,32 +2260,67 @@
 	jmp *-8(%r13)
 .data
 	.align 8
-.globl ShortM_zdssubsumes1_closure
-.type ShortM_zdssubsumes1_closure, @object
-ShortM_zdssubsumes1_closure:
-	.quad	ShortM_zdssubsumes1_info
+.globl VeryLongModuleName_zdssubsumes1_closure
+.type VeryLongModuleName_zdssubsumes1_closure, @object
+VeryLongModuleName_zdssubsumes1_closure:
+	.quad	VeryLongModuleName_zdssubsumes1_info
+	.quad	0
 .text
 	.align 8
-	.quad	2
-	.quad	34
+	.long	VeryLongModuleName_zdssubsumes1_srt-(_info)+40
+	.long	0
+	.quad	1
+	.quad	4294967313
+_info:
+.L:
+	leaq -16(%rbp),%rax
+	cmpq %r14,%rax
+	jb .L
+	movq $stg_upd_frame_info,-16(%rbp)
+	movq %rbx,-8(%rbp)
+	movq 16(%rbx),%rsi
+	addq $-16,%rbp
+	jmp VeryLongModuleName_right_info
+.L:
+	jmp *-16(%r13)
+.text
+	.align 8
+	.long	VeryLongModuleName_zdssubsumes1_srt-(_info)+16
+	.long	0
+	.quad	130
+	.quad	4294967330
+_info:
+.L:
+	movq %rbx,%rsi
+	movq 8(%rbp),%rdi
+	addq $24,%rbp
+	jmp VeryLongModuleName_subsumes_info
+.text
+	.align 8
+	.long	VeryLongModuleName_zdssubsumes1_srt-(_info)+16
+	.long	0
+	.quad	259
+	.quad	38654705698
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movq 16(%rbp),%rsi
-	movq 8(%rbp),%rdi
-	addq $24,%rbp
-	jmp ShortM_subsumes_info
+	movq 8(%rbp),%rsi
+	movq $_info,8(%rbp)
+	addq $8,%rbp
+	jmp VeryLongModuleName_right_info
 .L:
 	movl $ghczmprim_GHCziBool_True_closure+2,%ebx
-	addq $24,%rbp
+	addq $32,%rbp
 	jmp *(%rbp)
 .text
 	.align 8
-	.quad	2
-	.quad	34
+	.long	VeryLongModuleName_zdssubsumes1_srt-(_info)+0
+	.long	0
+	.quad	259
+	.quad	158913789986
 _info:
 .L:
 	movq %rbx,%rax
@@ -1760,96 +2328,162 @@
 	cmpq $2,%rax
 	jae .L
 	movl $ghczmprim_GHCziBool_True_closure+2,%ebx
-	addq $24,%rbp
+	addq $32,%rbp
 	jmp *(%rbp)
 .L:
 	movq 30(%rbx),%rax
 	movq %rax,-8(%rbp)
-	movq 8(%rbp),%rsi
+	movq 16(%rbp),%rsi
 	movq 22(%rbx),%rdi
 	movq 14(%rbx),%r8
 	movq 6(%rbx),%r9
 	movq $_info,(%rbp)
 	addq $-8,%rbp
-	jmp ShortM_zdssubsumes_info
+	jmp VeryLongModuleName_zdssubsumes_info
 .text
 	.align 8
+	.long	VeryLongModuleName_zdssubsumes1_srt-(_info)+24
+	.long	0
+	.quad	130
+	.quad	21474836514
+_info:
+.L:
+	movq 16(%rbp),%rax
+	cmpq 7(%rbx),%rax
+	jl .L
+	movq 16(%rbp),%rax
+	cmpq 7(%rbx),%rax
+	je .L
+	movq 8(%rbp),%rsi
+	addq $24,%rbp
+	jmp VeryLongModuleName_right_info
+.L:
+	movq 8(%rbp),%rsi
+	addq $24,%rbp
+	jmp VeryLongModuleName_left_info
+.L:
+	movq 8(%rbp),%rbx
+	addq $24,%rbp
+	andq $-8,%rbx
+	jmp *(%rbx)
+.text
+	.align 8
+	.long	VeryLongModuleName_zdssubsumes1_srt-(_info)+24
+	.long	0
 	.quad	65
-	.quad	34
+	.quad	55834574882
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movl $ShortM_Nil_closure+1,%ebx
+	movl $VeryLongModuleName_Nil_closure+1,%ebx
 	addq $16,%rbp
 	jmp stg_upd_frame_info
 .L:
-	movq 8(%rbp),%rax
-	cmpq 30(%rbx),%rax
-	jl .L
-	movq 8(%rbp),%rax
-	cmpq 30(%rbx),%rax
-	je .L
-	movq 14(%rbx),%rbx
-	addq $16,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
-.L:
-	movq 6(%rbx),%rbx
-	addq $16,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
-.L:
-	addq $16,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
+	movq %rbx,(%rbp)
+	movq %rbx,%rsi
+	movq $_info,-8(%rbp)
+	addq $-8,%rbp
+	jmp VeryLongModuleName_val_info
 .text
 	.align 8
+	.long	VeryLongModuleName_zdssubsumes1_srt-(_info)+24
+	.long	0
 	.quad	4294967297
-	.quad	20
+	.quad	55834574868
 _info:
 .L:
-	leaq -32(%rbp),%rax
+	leaq -40(%rbp),%rax
 	cmpq %r14,%rax
 	jb .L
 	movq $stg_upd_frame_info,-16(%rbp)
 	movq %rbx,-8(%rbp)
 	movq 24(%rbx),%rax
 	movq %rax,-24(%rbp)
-	movq 16(%rbx),%rbx
+	movq 16(%rbx),%rsi
 	movq $_info,-32(%rbp)
 	addq $-32,%rbp
-	testq $7,%rbx
-	jne _info
-	jmp *(%rbx)
+	jmp VeryLongModuleName_left_info
 .L:
 	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	1029
-	.quad	34
+	.long	VeryLongModuleName_zdssubsumes1_srt-(_info)+0
+	.long	0
+	.quad	5191
+	.quad	4294967330
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movq 32(%rbp),%rsi
-	movq 16(%rbp),%rdi
+	movq 8(%rbp),%rax
+	movq %rax,56(%rbp)
+	movq 48(%rbp),%rsi
+	movq 32(%rbp),%rdi
 	movq 24(%rbp),%r8
-	movq 8(%rbp),%r9
-	addq $40,%rbp
-	jmp ShortM_zdssubsumes_info
+	movq 16(%rbp),%r9
+	addq $56,%rbp
+	jmp VeryLongModuleName_zdssubsumes_info
+.L:
+	movl $ghczmprim_GHCziBool_True_closure+2,%ebx
+	addq $64,%rbp
+	jmp *(%rbp)
+.text
+	.align 8
+	.long	VeryLongModuleName_zdssubsumes1_srt-(_info)+0
+	.long	0
+	.quad	4167
+	.quad	545460846626
+_info:
+.L:
+	addq $32,%r12
+	cmpq %r15,%r12
+	ja .L
+	movq 56(%rbp),%rax
+	cmpq 7(%rbx),%rax
+	jl .L
+	movq 56(%rbp),%rax
+	cmpq 7(%rbx),%rax
+	je .L
+	movq $_info,-24(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,-8(%r12)
+	movq 48(%rbp),%rsi
+	movq 56(%rbp),%rdi
+	leaq -24(%r12),%r8
+	addq $64,%rbp
+	addq $-8,%r12
+	jmp VeryLongModuleName_zdssubsumes1_info
+.L:
+	movq $32,184(%r13)
+	jmp *-16(%r13)
+.L:
+	movq $_info,-24(%r12)
+	movq 40(%rbp),%rax
+	movq %rax,-8(%r12)
+	movq 56(%rbp),%rax
+	movq %rax,(%r12)
+	movq 48(%rbp),%rsi
+	movq 56(%rbp),%rdi
+	leaq -24(%r12),%r8
+	movq $_info,(%rbp)
+	jmp VeryLongModuleName_zdssubsumes1_info
 .L:
-	movl $ghczmprim_GHCziBool_True_closure+2,%ebx
-	addq $48,%rbp
-	jmp *(%rbp)
+	movq 40(%rbp),%rsi
+	movq $_info,32(%rbp)
+	addq $32,%rbp
+	addq $-32,%r12
+	jmp VeryLongModuleName_next_info
 .text
 	.align 8
+	.long	VeryLongModuleName_zdssubsumes1_srt-(_info)+0
+	.long	0
 	.quad	130
-	.quad	34
+	.quad	545460846626
 _info:
 .L:
 	movq %rbx,%rax
@@ -1860,63 +2494,31 @@
 	addq $24,%rbp
 	jmp *(%rbp)
 .L:
-	addq $32,%r12
-	cmpq %r15,%r12
-	ja .L
-	movq 16(%rbp),%rax
-	cmpq 30(%rbx),%rax
-	jl .L
-	movq 16(%rbp),%rax
-	cmpq 30(%rbx),%rax
-	je .L
-	movq 8(%rbp),%rsi
-	movq 16(%rbp),%rdi
-	movq 14(%rbx),%r8
-	addq $24,%rbp
-	addq $-32,%r12
-	jmp ShortM_zdssubsumes1_info
-.L:
-	movq $32,184(%r13)
-	jmp *-16(%r13)
-.L:
-	movq $_info,-24(%r12)
-	movq 6(%rbx),%rax
-	movq %rax,-8(%r12)
-	movq 16(%rbp),%rax
-	movq %rax,(%r12)
+	movq 30(%rbx),%rax
+	movq %rax,-32(%rbp)
 	movq 6(%rbx),%rax
+	movq %rax,-24(%rbp)
+	movq 14(%rbx),%rax
 	movq %rax,-16(%rbp)
 	movq 22(%rbx),%rax
 	movq %rax,-8(%rbp)
-	movq 14(%rbx),%rax
-	movq %rax,(%rbp)
-	movq 8(%rbp),%rsi
-	movq 16(%rbp),%rdi
-	movq 30(%rbx),%rax
-	movq %rax,16(%rbp)
-	leaq -24(%r12),%r8
-	movq $_info,-24(%rbp)
-	addq $-24,%rbp
-	jmp ShortM_zdssubsumes1_info
-.L:
-	movq 14(%rbx),%rax
-	movq %rax,16(%rbp)
-	movq 22(%rbx),%rbx
-	movq $_info,(%rbp)
-	addq $-32,%r12
-	testq $7,%rbx
-	jne _info
-	jmp *(%rbx)
+	movq %rbx,(%rbp)
+	movq %rbx,%rsi
+	movq $_info,-40(%rbp)
+	addq $-40,%rbp
+	jmp VeryLongModuleName_val_info
 .text
 	.align 8
+	.long	VeryLongModuleName_zdssubsumes1_srt-(VeryLongModuleName_zdssubsumes1_info)+0
+	.long	0
 	.quad	12884901906
 	.quad	0
-	.quad	15
-.globl ShortM_zdssubsumes1_info
-.type ShortM_zdssubsumes1_info, @object
-ShortM_zdssubsumes1_info:
+	.quad	545460846607
+.globl VeryLongModuleName_zdssubsumes1_info
+.type VeryLongModuleName_zdssubsumes1_info, @object
+VeryLongModuleName_zdssubsumes1_info:
 .L:
-	leaq -48(%rbp),%rax
+	leaq -64(%rbp),%rax
 	cmpq %r14,%rax
 	jb .L
 	movq %rsi,-16(%rbp)
@@ -1928,36 +2530,70 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_zdssubsumes1_closure,%ebx
+	movl $VeryLongModuleName_zdssubsumes1_closure,%ebx
 	jmp *-8(%r13)
 .data
 	.align 8
-.globl ShortM_subsumes_closure
-.type ShortM_subsumes_closure, @object
-ShortM_subsumes_closure:
-	.quad	ShortM_subsumes_info
+.globl VeryLongModuleName_subsumes_closure
+.type VeryLongModuleName_subsumes_closure, @object
+VeryLongModuleName_subsumes_closure:
+	.quad	VeryLongModuleName_subsumes_info
+	.quad	0
 .text
 	.align 8
-	.quad	1413
-	.quad	34
+	.long	VeryLongModuleName_subsumes_srt-(_info)+40
+	.long	0
+	.quad	1
+	.quad	4294967313
+_info:
+.L:
+	leaq -16(%rbp),%rax
+	cmpq %r14,%rax
+	jb .L
+	movq $stg_upd_frame_info,-16(%rbp)
+	movq %rbx,-8(%rbp)
+	movq 16(%rbx),%rsi
+	addq $-16,%rbp
+	jmp VeryLongModuleName_right_info
+.L:
+	jmp *-16(%r13)
+.text
+	.align 8
+	.long	VeryLongModuleName_subsumes_srt-(_info)+16
+	.long	0
+	.quad	3974
+	.quad	4294967330
+_info:
+.L:
+	movq %rbx,%rsi
+	movq 8(%rbp),%rdi
+	addq $56,%rbp
+	jmp VeryLongModuleName_subsumes_info
+.text
+	.align 8
+	.long	VeryLongModuleName_subsumes_srt-(_info)+16
+	.long	0
+	.quad	1926
+	.quad	38654705698
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movq 32(%rbp),%rsi
-	movq 8(%rbp),%rdi
-	addq $48,%rbp
-	jmp ShortM_subsumes_info
+	movq 48(%rbp),%rsi
+	movq $_info,(%rbp)
+	jmp VeryLongModuleName_right_info
 .L:
 	movl $ghczmprim_GHCziBool_True_closure+2,%ebx
-	addq $48,%rbp
+	addq $56,%rbp
 	jmp *(%rbp)
 .text
 	.align 8
-	.quad	1413
-	.quad	34
+	.long	VeryLongModuleName_subsumes_srt-(_info)+0
+	.long	0
+	.quad	1926
+	.quad	158913789986
 _info:
 .L:
 	movq %rbx,%rax
@@ -1965,7 +2601,7 @@
 	cmpq $2,%rax
 	jae .L
 	movl $ghczmprim_GHCziBool_True_closure+2,%ebx
-	addq $48,%rbp
+	addq $56,%rbp
 	jmp *(%rbp)
 .L:
 	movq 30(%rbx),%rax
@@ -1976,127 +2612,166 @@
 	movq 6(%rbx),%r9
 	movq $_info,(%rbp)
 	addq $-8,%rbp
-	jmp ShortM_zdssubsumes_info
+	jmp VeryLongModuleName_zdssubsumes_info
+.text
+	.align 8
+	.long	VeryLongModuleName_subsumes_srt-(_info)+24
+	.long	0
+	.quad	130
+	.quad	21474836514
+_info:
+.L:
+	movq 16(%rbp),%rax
+	cmpq 7(%rbx),%rax
+	jl .L
+	movq 16(%rbp),%rax
+	cmpq 7(%rbx),%rax
+	je .L
+	movq 8(%rbp),%rsi
+	addq $24,%rbp
+	jmp VeryLongModuleName_right_info
+.L:
+	movq 8(%rbp),%rsi
+	addq $24,%rbp
+	jmp VeryLongModuleName_left_info
+.L:
+	movq 8(%rbp),%rbx
+	addq $24,%rbp
+	andq $-8,%rbx
+	jmp *(%rbx)
 .text
 	.align 8
+	.long	VeryLongModuleName_subsumes_srt-(_info)+24
+	.long	0
 	.quad	65
-	.quad	34
+	.quad	55834574882
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
-	movl $ShortM_Nil_closure+1,%ebx
+	movl $VeryLongModuleName_Nil_closure+1,%ebx
 	addq $16,%rbp
 	jmp stg_upd_frame_info
 .L:
-	movq 8(%rbp),%rax
-	cmpq 30(%rbx),%rax
-	jl .L
-	movq 8(%rbp),%rax
-	cmpq 30(%rbx),%rax
-	je .L
-	movq 14(%rbx),%rbx
-	addq $16,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
-.L:
-	movq 6(%rbx),%rbx
-	addq $16,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
-.L:
-	addq $16,%rbp
-	andq $-8,%rbx
-	jmp *(%rbx)
+	movq %rbx,(%rbp)
+	movq %rbx,%rsi
+	movq $_info,-8(%rbp)
+	addq $-8,%rbp
+	jmp VeryLongModuleName_val_info
 .text
 	.align 8
+	.long	VeryLongModuleName_subsumes_srt-(_info)+24
+	.long	0
 	.quad	4294967297
-	.quad	20
+	.quad	55834574868
 _info:
 .L:
-	leaq -32(%rbp),%rax
+	leaq -40(%rbp),%rax
 	cmpq %r14,%rax
 	jb .L
 	movq $stg_upd_frame_info,-16(%rbp)
 	movq %rbx,-8(%rbp)
 	movq 24(%rbx),%rax
 	movq %rax,-24(%rbp)
-	movq 16(%rbx),%rbx
+	movq 16(%rbx),%rsi
 	movq $_info,-32(%rbp)
 	addq $-32,%rbp
-	testq $7,%rbx
-	jne _info
-	jmp *(%rbx)
+	jmp VeryLongModuleName_left_info
 .L:
 	jmp *-16(%r13)
 .text
 	.align 8
-	.quad	1029
-	.quad	34
+	.long	VeryLongModuleName_subsumes_srt-(_info)+0
+	.long	0
+	.quad	2182
+	.quad	4294967330
 _info:
 .L:
 	movq %rbx,%rax
 	andq $7,%rax
 	cmpq $2,%rax
 	jae .L
+	movq 16(%rbp),%rax
+	movq %rax,48(%rbp)
 	movq 8(%rbp),%rsi
-	movq 24(%rbp),%rdi
+	movq 40(%rbp),%rdi
 	movq 32(%rbp),%r8
-	movq 16(%rbp),%r9
-	addq $40,%rbp
-	jmp ShortM_zdssubsumes_info
+	movq 24(%rbp),%r9
+	addq $48,%rbp
+	jmp VeryLongModuleName_zdssubsumes_info
 .L:
 	movl $ghczmprim_GHCziBool_True_closure+2,%ebx
-	addq $48,%rbp
+	addq $56,%rbp
 	jmp *(%rbp)
 .text
 	.align 8
-	.quad	1029
-	.quad	34
+	.long	VeryLongModuleName_subsumes_srt-(_info)+0
+	.long	0
+	.quad	327
+	.quad	545460846626
 _info:
 .L:
 	addq $32,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq 7(%rbx),%rax
-	cmpq 40(%rbp),%rax
+	movq 8(%rbp),%rax
+	cmpq 7(%rbx),%rax
 	jl .L
-	movq 7(%rbx),%rax
-	cmpq 40(%rbp),%rax
+	movq 8(%rbp),%rax
+	cmpq 7(%rbx),%rax
 	je .L
-	movq 8(%rbp),%rsi
-	movq 7(%rbx),%rdi
-	movq 32(%rbp),%r8
-	addq $48,%rbp
-	addq $-32,%r12
-	jmp ShortM_zdssubsumes1_info
+	movq $_info,-24(%r12)
+	movq 56(%rbp),%rax
+	movq %rax,-8(%r12)
+	movq 16(%rbp),%rsi
+	movq 8(%rbp),%rdi
+	leaq -24(%r12),%r8
+	addq $64,%rbp
+	addq $-8,%r12
+	jmp VeryLongModuleName_zdssubsumes1_info
 .L:
 	movq $32,184(%r13)
 	jmp *-16(%r13)
 .L:
 	movq $_info,-24(%r12)
-	movq 16(%rbp),%rax
+	movq 56(%rbp),%rax
 	movq %rax,-8(%r12)
-	movq 7(%rbx),%rax
+	movq 8(%rbp),%rax
 	movq %rax,(%r12)
-	movq 8(%rbp),%rsi
-	movq 7(%rbx),%rdi
+	movq 16(%rbp),%rsi
+	movq 8(%rbp),%rdi
 	leaq -24(%r12),%r8
-	movq $_info,(%rbp)
-	jmp ShortM_zdssubsumes1_info
+	movq $_info,8(%rbp)
+	addq $8,%rbp
+	jmp VeryLongModuleName_zdssubsumes1_info
 .L:
-	movq 24(%rbp),%rbx
-	movq $_info,(%rbp)
+	movq 56(%rbp),%rsi
+	movq $_info,8(%rbp)
+	addq $8,%rbp
 	addq $-32,%r12
-	testq $7,%rbx
-	jne _info
-	jmp *(%rbx)
+	jmp VeryLongModuleName_next_info
 .text
 	.align 8
-	.quad	516
-	.quad	34
+	.long	VeryLongModuleName_subsumes_srt-(_info)+0
+	.long	0
+	.quad	134
+	.quad	545460846626
+_info:
+.L:
+	movq 7(%rbx),%rax
+	movq %rax,(%rbp)
+	movq 48(%rbp),%rsi
+	movq $_info,-8(%rbp)
+	addq $-8,%rbp
+	jmp VeryLongModuleName_val_info
+.text
+	.align 8
+	.long	VeryLongModuleName_subsumes_srt-(_info)+0
+	.long	0
+	.quad	69
+	.quad	545460846626
 _info:
 .L:
 	movq %rbx,%rax
@@ -2104,7 +2779,7 @@
 	cmpq $2,%rax
 	jae .L
 	movl $ghczmprim_GHCziBool_False_closure+1,%ebx
-	addq $40,%rbp
+	addq $48,%rbp
 	jmp *(%rbp)
 .L:
 	movq 14(%rbx),%rax
@@ -2117,8 +2792,10 @@
 	jmp *(%rbx)
 .text
 	.align 8
+	.long	VeryLongModuleName_subsumes_srt-(_info)+0
+	.long	0
 	.quad	1
-	.quad	34
+	.quad	545460846626
 _info:
 .L:
 	movq %rbx,%rax
@@ -2129,31 +2806,34 @@
 	addq $16,%rbp
 	jmp *(%rbp)
 .L:
+	movq 30(%rbx),%rax
+	movq %rax,-24(%rbp)
 	movq 6(%rbx),%rax
 	movq %rax,-16(%rbp)
-	movq 22(%rbx),%rax
-	movq %rax,-8(%rbp)
 	movq 14(%rbx),%rax
+	movq %rax,-8(%rbp)
+	movq 22(%rbx),%rax
 	movq %rax,(%rbp)
 	movq 8(%rbp),%rax
-	movq 30(%rbx),%rcx
-	movq %rcx,8(%rbp)
+	movq %rbx,8(%rbp)
 	movq %rax,%rbx
-	movq $_info,-24(%rbp)
-	addq $-24,%rbp
+	movq $_info,-32(%rbp)
+	addq $-32,%rbp
 	testq $7,%rbx
 	jne _info
 	jmp *(%rbx)
 .text
 	.align 8
+	.long	VeryLongModuleName_subsumes_srt-(VeryLongModuleName_subsumes_info)+0
+	.long	0
 	.quad	8589934604
 	.quad	0
-	.quad	15
-.globl ShortM_subsumes_info
-.type ShortM_subsumes_info, @object
-ShortM_subsumes_info:
+	.quad	545460846607
+.globl VeryLongModuleName_subsumes_info
+.type VeryLongModuleName_subsumes_info, @object
+VeryLongModuleName_subsumes_info:
 .L:
-	leaq -56(%rbp),%rax
+	leaq -64(%rbp),%rax
 	cmpq %r14,%rax
 	jb .L
 	movq %rdi,-8(%rbp)
@@ -2164,49 +2844,49 @@
 	jne _info
 	jmp *(%rbx)
 .L:
-	movl $ShortM_subsumes_closure,%ebx
+	movl $VeryLongModuleName_subsumes_closure,%ebx
 	jmp *-8(%r13)
 .data
 	.align 8
-.globl ShortM_Nil_closure
-.type ShortM_Nil_closure, @object
-ShortM_Nil_closure:
-	.quad	ShortM_Nil_static_info
+.globl VeryLongModuleName_Nil_closure
+.type VeryLongModuleName_Nil_closure, @object
+VeryLongModuleName_Nil_closure:
+	.quad	VeryLongModuleName_Nil_static_info
 .data
 	.align 8
-.globl ShortM_Node_closure
-.type ShortM_Node_closure, @object
-ShortM_Node_closure:
-	.quad	ShortM_Node_info
+.globl VeryLongModuleName_Node_closure
+.type VeryLongModuleName_Node_closure, @object
+VeryLongModuleName_Node_closure:
+	.quad	VeryLongModuleName_Node_info
 .text
 	.align 8
-.globl ShortM_Node_slow
-.type ShortM_Node_slow, @object
-ShortM_Node_slow:
+.globl VeryLongModuleName_Node_slow
+.type VeryLongModuleName_Node_slow, @object
+VeryLongModuleName_Node_slow:
 .L:
 	movq (%rbp),%rsi
 	movq 8(%rbp),%rdi
 	movq 16(%rbp),%r8
 	movq 24(%rbp),%r9
 	addq $32,%rbp
-	jmp ShortM_Node_info
+	jmp VeryLongModuleName_Node_info
 .text
 	.align 8
-	.long	ShortM_Node_slow-(ShortM_Node_info)+0
+	.long	VeryLongModuleName_Node_slow-(VeryLongModuleName_Node_info)+0
 	.long	0
 	.quad	68
 	.quad	0
 	.quad	17179869184
 	.quad	0
 	.quad	15
-.globl ShortM_Node_info
-.type ShortM_Node_info, @object
-ShortM_Node_info:
+.globl VeryLongModuleName_Node_info
+.type VeryLongModuleName_Node_info, @object
+VeryLongModuleName_Node_info:
 .L:
 	addq $40,%r12
 	cmpq %r15,%r12
 	ja .L
-	movq $ShortM_Node_con_info,-32(%r12)
+	movq $VeryLongModuleName_Node_con_info,-32(%r12)
 	movq %rdi,-24(%r12)
 	movq %r8,-16(%r12)
 	movq %r9,-8(%r12)
@@ -2215,7 +2895,7 @@
 	jmp *(%rbp)
 .L:
 	movq $40,184(%r13)
-	movl $ShortM_Node_closure,%ebx
+	movl $VeryLongModuleName_Node_closure,%ebx
 	addq $-32,%rbp
 	movq %rsi,(%rbp)
 	movq %rdi,8(%rbp)
@@ -2230,12 +2910,24 @@
 	.byte	105
 	.byte	110
 	.byte	58
-	.byte	83
-	.byte	104
-	.byte	111
+	.byte	86
+	.byte	101
 	.byte	114
-	.byte	116
+	.byte	121
+	.byte	76
+	.byte	111
+	.byte	110
+	.byte	103
 	.byte	77
+	.byte	111
+	.byte	100
+	.byte	117
+	.byte	108
+	.byte	101
+	.byte	78
+	.byte	97
+	.byte	109
+	.byte	101
 	.byte	46
 	.byte	78
 	.byte	105
@@ -2243,13 +2935,13 @@
 	.byte	0
 .text
 	.align 8
-	.long	_str-(ShortM_Nil_static_info)+0
+	.long	_str-(VeryLongModuleName_Nil_static_info)+0
 	.long	0
 	.quad	0
 	.quad	8
-.globl ShortM_Nil_static_info
-.type ShortM_Nil_static_info, @object
-ShortM_Nil_static_info:
+.globl VeryLongModuleName_Nil_static_info
+.type VeryLongModuleName_Nil_static_info, @object
+VeryLongModuleName_Nil_static_info:
 .L:
 	incq %rbx
 	jmp *(%rbp)
@@ -2261,12 +2953,24 @@
 	.byte	105
 	.byte	110
 	.byte	58
-	.byte	83
-	.byte	104
-	.byte	111
+	.byte	86
+	.byte	101
 	.byte	114
-	.byte	116
+	.byte	121
+	.byte	76
+	.byte	111
+	.byte	110
+	.byte	103
 	.byte	77
+	.byte	111
+	.byte	100
+	.byte	117
+	.byte	108
+	.byte	101
+	.byte	78
+	.byte	97
+	.byte	109
+	.byte	101
 	.byte	46
 	.byte	78
 	.byte	111
@@ -2275,13 +2979,13 @@
 	.byte	0
 .text
 	.align 8
-	.long	_str-(ShortM_Node_con_info)+0
+	.long	_str-(VeryLongModuleName_Node_con_info)+0
 	.long	0
 	.quad	4294967299
 	.quad	4294967297
-.globl ShortM_Node_con_info
-.type ShortM_Node_con_info, @object
-ShortM_Node_con_info:
+.globl VeryLongModuleName_Node_con_info
+.type VeryLongModuleName_Node_con_info, @object
+VeryLongModuleName_Node_con_info:
 .L:
 	addq $2,%rbx
 	jmp *(%rbp)
@@ -2293,12 +2997,24 @@
 	.byte	105
 	.byte	110
 	.byte	58
-	.byte	83
-	.byte	104
-	.byte	111
+	.byte	86
+	.byte	101
 	.byte	114
-	.byte	116
+	.byte	121
+	.byte	76
+	.byte	111
+	.byte	110
+	.byte	103
 	.byte	77
+	.byte	111
+	.byte	100
+	.byte	117
+	.byte	108
+	.byte	101
+	.byte	78
+	.byte	97
+	.byte	109
+	.byte	101
 	.byte	46
 	.byte	78
 	.byte	111
@@ -2307,13 +3023,13 @@
 	.byte	0
 .text
 	.align 8
-	.long	_str-(ShortM_Node_static_info)+0
+	.long	_str-(VeryLongModuleName_Node_static_info)+0
 	.long	0
 	.quad	4294967299
 	.quad	4294967303
-.globl ShortM_Node_static_info
-.type ShortM_Node_static_info, @object
-ShortM_Node_static_info:
+.globl VeryLongModuleName_Node_static_info
+.type VeryLongModuleName_Node_static_info, @object
+VeryLongModuleName_Node_static_info:
 .L:
 	addq $2,%rbx
 	jmp *(%rbp)
@@ -2323,9 +3039,9 @@
 	.quad	0
 .text
 	.align 8
-.globl __stginit_ShortM_
-.type __stginit_ShortM_, @object
-__stginit_ShortM_:
+.globl __stginit_VeryLongModuleName_
+.type __stginit_VeryLongModuleName_, @object
+__stginit_VeryLongModuleName_:
 .L:
 	cmpq $0,_module_registered
 	jne .L
@@ -2338,10 +3054,10 @@
 	jmp *-8(%rbp)
 .text
 	.align 8
-.globl __stginit_ShortM
-.type __stginit_ShortM, @object
-__stginit_ShortM:
+.globl __stginit_VeryLongModuleName
+.type __stginit_VeryLongModuleName, @object
+__stginit_VeryLongModuleName:
 .L:
-	jmp __stginit_ShortM_
+	jmp __stginit_VeryLongModuleName_
 .section .note.GNU-stack,"", at progbits
 .ident "GHC 6.10.1"


More information about the Glasgow-haskell-users mailing list