data Nibbles = Nibbles
    {-# UNPACK #-} !Int
        -- ^ offset (zero based index of first nibble)
        --
        -- prop> let (Nibbles o _ _) in 0 <= o
        -- prop> let (Nibbles o l d) in o + l <= 2 * length d
        --
    {-# UNPACK #-} !Int
        -- ^ length
        --
        -- prop> let (Nibbles _ l _) in 0 <= l