| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Unlifted
Synopsis
- newtype Maybe# (a :: TYPE r) :: TYPE ('SumRep '[ZeroBitRep, r]) where
- Maybe# :: forall (r :: RuntimeRep) (a :: TYPE r). (# (# #) | a #) -> Maybe# a
- newtype Either# (a :: TYPE ra) (b :: TYPE rb) :: TYPE ('SumRep '[ra, rb]) where
- Either# :: forall (ra :: RuntimeRep) (rb :: RuntimeRep) (a :: TYPE ra) (b :: TYPE rb). (# a | b #) -> Either# a b
- newtype ST# a (b :: TYPE r) where
- ST# :: forall (r :: RuntimeRep) a (b :: TYPE r). {..} -> ST# a b
- newtype ShortText# :: UnliftedType where
- ShortText# :: ByteArray# -> ShortText#
- newtype Text# :: TYPE ('TupleRep '[UnliftedRep, 'Int32Rep, 'Int32Rep]) where
- Text# :: (# ByteArray#, Int32#, Int32# #) -> Text#
- newtype PrimArray# (a :: TYPE r) :: UnliftedType where
- PrimArray# :: forall (r :: RuntimeRep) (a :: TYPE r). ByteArray# -> PrimArray# a
- newtype MutablePrimArray# a (b :: TYPE r) :: UnliftedType where
- MutablePrimArray# :: forall (r :: RuntimeRep) a (b :: TYPE r). MutableByteArray# a -> MutablePrimArray# a b
- newtype Bool# :: TYPE 'WordRep where
- pattern True# :: Bool#
- pattern False# :: Bool#
Base
newtype Maybe# (a :: TYPE r) :: TYPE ('SumRep '[ZeroBitRep, r]) where #
Unboxed variant of Maybe.
Constructors
| Maybe# :: forall (r :: RuntimeRep) (a :: TYPE r). (# (# #) | a #) -> Maybe# a |
newtype Either# (a :: TYPE ra) (b :: TYPE rb) :: TYPE ('SumRep '[ra, rb]) where #
Unboxed variant of Either.
Constructors
| Either# :: forall (ra :: RuntimeRep) (rb :: RuntimeRep) (a :: TYPE ra) (b :: TYPE rb). (# a | b #) -> Either# a b |
newtype ST# a (b :: TYPE r) where #
Variant of ST where the argument type does not have to be lifted.
This does not have a monad instance and is difficult to use.
Text
newtype ShortText# :: UnliftedType where #
Unlifted variant of ShortText.
Constructors
| ShortText# :: ByteArray# -> ShortText# |
newtype Text# :: TYPE ('TupleRep '[UnliftedRep, 'Int32Rep, 'Int32Rep]) where #
Unboxed variant of Text. This includes a somewhat dubious restriction
that on the offset and length that prevents byte arrays larger than 2GiB
from being used as the backing store.
This decision makes the type work well in the vext library, and it makes the in-memory format close to what Apache Arrow uses.
Constructors
| Text# :: (# ByteArray#, Int32#, Int32# #) -> Text# |
Arrays
newtype PrimArray# (a :: TYPE r) :: UnliftedType where #
This resembles the PrimArray type from primitive, but the phantom
parameter is an unboxed type, not a lifted type. For example:
PrimArray Word8
PrimArray# Word8#
Constructors
| PrimArray# :: forall (r :: RuntimeRep) (a :: TYPE r). ByteArray# -> PrimArray# a |
newtype MutablePrimArray# a (b :: TYPE r) :: UnliftedType where #
Mutable variant of PrimArray#.
Constructors
| MutablePrimArray# :: forall (r :: RuntimeRep) a (b :: TYPE r). MutableByteArray# a -> MutablePrimArray# a b |