floatToWord :: Float -> Word32
floatToWord (F# x) = runST $ ST $ \s1 ->
    case newByteArray# 4# s1 of
        (# s2, mbarr #) ->
            let !s3 = writeFloatArray# mbarr 0# x s2
             in case readWord32Array# mbarr 0# s3 of
                    (# s4, w #) -> (# s4, W32# w #)

floatToWord :: Float -> Word32
floatToWord (F# x) = runST $ ST $ \s1 ->
    case newByteArray# 4# s1 of
        (# s2, mbarr #) ->
            let !s3 = writeFloatArray# mbarr 0# x s2
             in case readWord32Array# mbarr 0# s3 of
                    (# s4, w #) -> (# s4, W32# w #)

floatToWord (F# x) = runST $ ST $ \s1 ->
    case newByteArray# 4# s1 of
        (# s2, mbarr #) ->
            let !s3 = writeFloatArray# mbarr 0# x s2
             in case readWord32Array# mbarr 0# s3 of
                    (# s4, w #) -> (# s4, W32# w #)
