Skip to content

Commit 71c1a69

Browse files
authored
Merge pull request #136 from dolio/master
Modernize GenUnboxTuple
2 parents 49396e1 + 9d563f3 commit 71c1a69

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

internal/GenUnboxTuple.hs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ generate n =
3333
]
3434

3535
where
36-
vars = map char $ take n ['a'..]
36+
vars = map (\c -> text ['_',c]) $ take n ['a'..]
3737
varss = map (<> char 's') vars
3838
tuple xs = parens $ hsep $ punctuate comma xs
3939
vtuple xs = parens $ sep $ punctuate comma xs
4040
con s = text s <> char '_' <> int n
41-
var c = text (c : "_")
41+
var c = text ('_' : c : "_")
4242

4343
data_instance ty c
4444
= hang (hsep [text "data instance", text ty, tuple vars])
@@ -177,6 +177,9 @@ generate n =
177177
<+> parens (var 'm' <> char '+' <> var 'n')
178178
<+> sep (map (<> char '\'') varss))
179179

180+
gen_initialize rec
181+
= (pat "MV", mk_do [qM rec <+> vs | vs <- varss] empty)
182+
180183
gen_unsafeFreeze rec
181184
= (pat "MV",
182185
mk_do [vs <> char '\'' <+> text "<-" <+> qG rec <+> vs | vs <- varss]
@@ -224,7 +227,8 @@ generate n =
224227
,("basicSet", gen_set)
225228
,("basicUnsafeCopy", gen_unsafeCopy "MV" qM)
226229
,("basicUnsafeMove", gen_unsafeMove)
227-
,("basicUnsafeGrow", gen_unsafeGrow)]
230+
,("basicUnsafeGrow", gen_unsafeGrow)
231+
,("basicInitialize", gen_initialize)]
228232

229233
methods_Vector = [("basicUnsafeFreeze", gen_unsafeFreeze)
230234
,("basicUnsafeThaw", gen_unsafeThaw)

0 commit comments

Comments
 (0)