Moduleinline-c-0.9.1.10Haskell2010
Language.C.Inline
Enable painless embedding of C code in Haskell code. If you're interested in how to use the library, skip to the "Inline C" section. To build, read the first two sections.
This module is intended to be imported qualified:
import qualified Language.C.Inline as C
- 30 types
- 1 class
- 20 values
- Packageinline-c-0.9.1.10
- Exports51
- LanguageHaskell2010
- LicenceMIT
- SourceInline.hs
GHCi
0 declarationsCurrently inline-c does not work in interpreted mode. However, GHCi
can still be used using the -fobject-code flag. For speed, we
reccomend passing -fobject-code -O0, for example
stack ghci --ghci-options='-fobject-code -O0'
or
cabal repl --ghc-options='-fobject-code -O0'
Contexts
7 declarationsContext useful to work with vanilla C. Used by default.
ctxTypesTable: converts C basic types to their counterparts in Foreign.C.Types.
No ctxAntiQuoters.
This Context adds support for ForeignPtr arguments. It adds a unique
marshaller called fptr-ptr. For example, $fptr-ptr:(int *x) extracts the
bare C pointer out of foreign pointer x.
This Context includes a AntiQuoter that removes the need for
explicitely creating FunPtrs, named "fun" along with one which
allocates new memory which must be manually freed named "fun-alloc".
For example, we can capture function f of type CInt -> CInt -> IO
CInt in C code using $fun:(int (*f)(int, int)).
When used in a pure embedding, the Haskell function will have to be
pure too. Continuing the example above we'll have CInt -> CInt ->
IO CInt.
Does not include the baseCtx, since most of the time it's going to be included as part of larger contexts.
IMPORTANT: When using the fun anti quoter, one must be aware that
the function pointer which is automatically generated is freed when
the code contained in the block containing the anti quoter exits.
Thus, if you need the function pointer to be longer-lived, you must
allocate it and free it manually using freeHaskellFunPtr.
We provide utilities to easily
allocate them (see mkFunPtr).
IMPORTANT: When using the fun-alloc anti quoter, one must free the allocated
function pointer. The GHC runtime provides a function to do this,
hs_free_fun_ptr available in the HsFFI.h header.
This Context includes two AntiQuoters that allow to easily use Haskell vectors in C.
Specifically, the vec-len and vec-ptr will get the length and the
pointer underlying mutable (V.IOVector) and immutable (Vector)
storable vectors.
Note that if you use vecCtx to manipulate immutable vectors you must make sure that the vector is not modified in the C code.
To use vec-len, simply write $vec-len:x, where x is something
of type or V.IOVector aVector a, for some a. To use
vec-ptr you need to specify the type of the pointer,
e.g. $vec-len:(int *x) will work if x has type .V.IOVector
CInt
bsCtx serves exactly the same purpose as vecCtx, but only for
ByteString. vec-ptr becomes bs-ptr, and vec-len becomes
bs-len. You don't need to specify the type of the pointer in
bs-ptr, it will always be char*.
Moreover, bs-cstr works as bs-ptr but it provides a null-terminated
copy of the given ByteString.
Sets the Context for the current module. This function, if called, must be called before any of the other TH functions in this module. Fails if that's not the case.
Substitution
2 declarationsDefine macros that can be used in the nested Template Haskell expression.
Macros can be used as @MACRO_NAME(input) in inline-c quotes, and will transform their input with the given function.
They can be useful for passing in types when defining Haskell instances for C++ template types.
Given a C type name, return the Haskell type in Template Haskell. The first parameter controls whether function pointers should be mapped as pure or IO functions.
Inline C
6 declarationsThe quasiquoters below are the main interface to this library, for inlining C code into Haskell source files.
In general, quasiquoters are used like so:
[C.XXX| int { <C code> } |]
Where C.XXX is one of the quasi-quoters defined in this section.
This syntax stands for a piece of typed C, decorated with a type:
The first type to appear (
intin the example) is the type of said C code.The syntax of the
<C code>depends on on the quasi-quoter used, and the anti-quoters available. Theexpquasi-quoter expects a C expression. Theblockquasi-quoter expects a list of statements, like the body of a function. Just like a C function, a block has a return type, matching the type of any values in anyreturnstatements appearing in the block.
See also the README.md file for more documentation.
Anti-quoters
Haskell variables can be captured using anti-quoters. inline-c
provides a basic anti-quoting mechanism extensible with user-defined
anti-quoters (see Language.C.Inline.Context). The basic
anti-quoter lets you capture Haskell variables, for
example we might say
let x = pi / 3 in [exp| double { cos($(double x)) } |]
Which would capture the Haskell variable x of type CDouble.
In C expressions the $ character is denoted using $$.
Variable capture and the typing relation
The Haskell type of the inlined expression is determined by the specified
C return type. The relation between the C type and the Haskell type is
defined in the current Context -- see convertCType. C pointers and
arrays are both converted to Haskell Ptrs, and function pointers are
converted to s. Sized arrays are not supported.FunPtr
Similarly, when capturing Haskell variables using anti-quoting, their
type is assumed to be of the Haskell type corresponding to the C type
provided. For example, if we capture variable x using double x
in the parameter list, the code will expect a variable x of type
CDouble in Haskell (when using baseCtx).
Purity
The exp and block quasi-quotes denote computations in the IO monad. pure denotes a pure value, expressed as a C expression.
Safe and unsafe calls
unsafe variants of the quasi-quoters are provided in
Language.C.Inline.Unsafe to call the C code unsafely, in the sense that the
C code will block the RTS, but with the advantage of a faster call to the
foreign code. See
https://www.haskell.org/onlinereport/haskell2010/haskellch8.html#x15-1590008.4.3.
Examples
Inline C expression
{-# LANGUAGE QuasiQuotes #-}
import qualified Language.C.Inline as C
import qualified Language.C.Inline.Unsafe as CU
import Foreign.C.Types
C.include "<math.h>"
c_cos :: CDouble -> IO CDouble
c_cos x = [C.exp| double { cos($(double x)) } |]
faster_c_cos :: CDouble -> IO CDouble
faster_c_cos x = [CU.exp| double { cos($(double x)) } |]
Inline C statements
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
import qualified Data.Vector.Storable.Mutable as V
import qualified Language.C.Inline as C
import Foreign.C.Types
C.include "<stdio.h>"
parseVector :: CInt -> IO (V.IOVector CDouble)
parseVector len = do
vec <- V.new $ fromIntegral len0
V.unsafeWith vec $ \ptr -> [C.block| void {
int i;
for (i = 0; i < $(int len); i++) {
scanf("%lf ", &$(double *ptr)[i]);
}
} |]
return vec
How it works
For each quasi-quotation of C code, a C function is generated in a C file
corresponding to the current Haskell file. Every inline C expression will result
in a corresponding C function.
For example, if we define c_cos
as in the example above in CCos.hs, we will get a file containing
#include math.h
double inline_c_Main_0_a03fba228a6d8e36ea7d69381f87bade594c949d(double x_inline_c_0) {
return cos(x_inline_c_0);
}
Every anti-quotation will correspond to an argument in the C function. If the same Haskell variable is anti-quoted twice, this will result in two arguments.
The C function is then automatically compiled and invoked from Haskell with the correct arguments passed in.
C expressions.
Variant of exp, for use with expressions known to have no side effects.
BEWARE: Use this function with caution, only when you know what you are doing. If an expression does in fact have side-effects, then indiscriminate use of pure may endanger referential transparency, and in principle even type safety. Also note that the function might be called multiple times, given that unsafeDupablePerformIO is used to call the provided C code. Please refer to the documentation for unsafePerformIO for more details. unsafeDupablePerformIO is used to ensure good performance using the threaded runtime.
C code blocks (i.e. statements).
Emits a CPP include directive for C code associated with the current module. To avoid having to escape quotes, the function itself adds them when appropriate, so that
include "foo.h" ==> #include "foo.h"
but
include "<foo>" ==> #include <foo>
Emits an arbitrary C string to the C code associated with the current module. Use with care.
Simply appends some string of block to the module's C file. Use with care.
Ptr utils
3 declarationsType class with methods useful to allocate and peek multiple pointers at once:
withPtrs_ :: (Storable a, Storable b) => ((Ptr a, Ptr b) -> IO ()) -> IO (a, b)
withPtrs_ :: (Storable a, Storable b, Storable c) => ((Ptr a, Ptr b, Ptr c) -> IO ()) -> IO (a, b, c)
...
Associated types
type family WithPtrsPtrs a
Methods
withPtrs :: (WithPtrsPtrs a -> IO b) -> IO (a, b)withPtrs_ :: (WithPtrsPtrs a -> IO ()) -> IO a
Instances6WithPtrs
(Storable a, Storable b) => WithPtrs (a, b)Defined in inline-c-0.9.1.10 · Language.C.Inline(Storable a, Storable b, Storable c) => WithPtrs (a, b, c)Defined in inline-c-0.9.1.10 · Language.C.Inline(Storable a, Storable b, Storable c, Storable d) => WithPtrs (a, b, c, d)Defined in inline-c-0.9.1.10 · Language.C.Inline(Storable a, Storable b, Storable c, Storable d, Storable e) => WithPtrs (a, b, c, d, e)Defined in inline-c-0.9.1.10 · Language.C.Inline(Storable a, Storable b, Storable c, Storable d, Storable e, Storable f) => WithPtrs (a, b, c, d, e, f)Defined in inline-c-0.9.1.10 · Language.C.Inline(Storable a, Storable b, Storable c, Storable d, Storable e, Storable f, Storable g) => WithPtrs (a, b, c, d, e, f, g)Defined in inline-c-0.9.1.10 · Language.C.Inline
FunPtr utils
1 declarationEasily get a FunPtr:
let fp :: FunPtr (Ptr CInt -> IO ()) = [C.funPtr| void poke42(int *ptr) { *ptr = 42; } |]
Especially useful to generate finalizers that require C code.
Most importantly, this allows you to write newForeignPtr invocations conveniently:
do
let c_finalizer_funPtr =
[C.funPtr| void myfree(char * ptr) { free(ptr); } |]
fp <- newForeignPtr c_finalizer_funPtr objPtr
Using where possible newForeignPtr is superior to
resorting to its delayed-by-a-thread alternative newForeignPtr
from Foreign.Concurrent which takes an IO () Haskell finaliser action:
With the non-concurrent newForeignPtr you can guarantee that the finaliser
will actually be run
when a GC is executed under memory pressure, because it can point directly to a C function that doesn't have to run any Haskell code (which is problematic when you're out of memory)
when the program terminates (newForeignPtr's finaliser will likely NOT be called if your main thread exits, making your program e.g. not Valgrind-clean if your finaliser is
freeor C++'sdelete).
funPtr makes the normal newForeignPtr as convenient as its concurrent
counterpart.
FunPtr conversion
$(mkFunPtrFromName 'foo), if foo :: , splices in an expression of type CDouble -> IO
CDoubleIO (FunPtr
(.CDouble -> IO CDouble))
$(peekFunPtr [t| generates a foreign import
dynamic of typeCDouble -> IO CDouble |])
FunPtr (CDouble -> IO CDouble) -> (CDouble -> IO CDouble)
And invokes it.
C types re-exports
29 declarationsHaskell type representing the C char type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CCharDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CCharDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C size_t type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CSizeDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CSizeDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C int type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CIntDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CIntDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C bool type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CBoolDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CBoolDefined in primitive-0.9.1.0 · Data.Primitive.Types
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CIntMaxDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CIntMaxDefined in primitive-0.9.1.0 · Data.Primitive.Types
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CIntPtrDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CIntPtrDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C long long type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CLLongDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CLLongDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C long type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CLongDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CLongDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C ptrdiff_t type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CPtrdiffDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CPtrdiffDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C signed char type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CSCharDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CSCharDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C short type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CShortDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CShortDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C sig_atomic_t type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
See Note [Lack of signals on wasm32-wasi].
Constructors
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CSigAtomicDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CSigAtomicDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C unsigned char type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CUCharDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CUCharDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C unsigned int type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CUIntDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CUIntDefined in primitive-0.9.1.0 · Data.Primitive.Types
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CUIntMaxDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CUIntMaxDefined in primitive-0.9.1.0 · Data.Primitive.Types
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CUIntPtrDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CUIntPtrDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C unsigned long long type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CULLongDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CULLongDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C unsigned long type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CULongDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CULongDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C unsigned short type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CUShortDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CUShortDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C wchar_t type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances15Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEnum CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIntegral CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesIx CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesBits CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFiniteBits CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CWcharDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CWcharDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C clock_t type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances10Enum, Eq, Num, Ord, Read, Real, …
Enum CClockDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CClockDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CClockDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CClockDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CClockDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CClockDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CClockDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CClockDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CClockDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CClockDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C double type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances14Enum, Eq, Floating, Fractional, Num, Ord, …
Enum CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFloating CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFractional CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRealFloat CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRealFrac CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CDoubleDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CDoubleDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C float type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances14Enum, Eq, Floating, Fractional, Num, Ord, …
Enum CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFloating CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesFractional CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRealFloat CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRealFrac CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CFloatDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CFloatDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C suseconds_t type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Constructors
Instances10Enum, Eq, Num, Ord, Read, Real, …
Enum CSUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CSUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CSUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CSUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CSUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CSUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CSUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CSUSecondsDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CSUSecondsDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C time_t type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances10Enum, Eq, Num, Ord, Read, Real, …
Enum CTimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CTimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CTimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CTimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CTimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CTimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CTimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CTimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CTimeDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CTimeDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C useconds_t type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Instances10Enum, Eq, Num, Ord, Read, Real, …
Enum CUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesEq CUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNum CUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesRead CUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesReal CUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesShow CUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesStorable CUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesNFData CUSecondsDefined in deepseq-1.5.0.0 · Control.DeepSeqPrim CUSecondsDefined in primitive-0.9.1.0 · Data.Primitive.Types
Haskell type representing the C FILE type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Haskell type representing the C fpos_t type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)
Haskell type representing the C jmp_buf type.
(The concrete types of Foreign.C.Types#platform are platform-specific.)