text-1.1.0.1: An efficient packed Unicode text type.

PortabilityGHC
Stabilityexperimental
Maintainerbos@serpentine.com
Safe HaskellNone

Data.Text.Internal.Unsafe.Shift

Description

Warning: this is an internal module, and does not have a stable API or name. Functions in this module may not check or enforce preconditions expected by public modules. Use at your own risk!

Fast, unchecked bit shifting functions.

Synopsis

Documentation

class UnsafeShift a whereSource

This is a workaround for poor optimisation in GHC 6.8.2. It fails to notice constant-width shifts, and adds a test and branch to every shift. This imposes about a 10% performance hit.

These functions are undefined when the amount being shifted by is greater than the size in bits of a machine Int#.

Methods

shiftL :: a -> Int -> aSource

shiftR :: a -> Int -> aSource