- let ch1 = word2Int# (indexWord8OffAddr# a# 1#) in
- if ch1 <# 0x80# || ch1 >=# 0xC0# then fail 1# else
- let ch2 = word2Int# (indexWord8OffAddr# a# 2#) in
- if ch2 <# 0x80# || ch2 >=# 0xC0# then fail 2# else
- let ch3 = word2Int# (indexWord8OffAddr# a# 3#) in
- if ch3 <# 0x80# || ch3 >=# 0xC0# then fail 3# else
- (# chr# (((ch0 -# 0xF0#) `uncheckedIShiftL#` 18#) +#
- ((ch1 -# 0x80#) `uncheckedIShiftL#` 12#) +#
- ((ch2 -# 0x80#) `uncheckedIShiftL#` 6#) +#
- (ch3 -# 0x80#)),
- a# `plusAddr#` 4# #)
+ let !ch1 = word2Int# (indexWord8OffAddr# a# 1#) in
+ if ch1 <# 0x80# || ch1 >=# 0xC0# then fail 1# else
+ let !ch2 = word2Int# (indexWord8OffAddr# a# 2#) in
+ if ch2 <# 0x80# || ch2 >=# 0xC0# then fail 2# else
+ let !ch3 = word2Int# (indexWord8OffAddr# a# 3#) in
+ if ch3 <# 0x80# || ch3 >=# 0xC0# then fail 3# else
+ (# chr# (((ch0 -# 0xF0#) `uncheckedIShiftL#` 18#) +#
+ ((ch1 -# 0x80#) `uncheckedIShiftL#` 12#) +#
+ ((ch2 -# 0x80#) `uncheckedIShiftL#` 6#) +#
+ (ch3 -# 0x80#)),
+ a# `plusAddr#` 4# #)