module Data.Emacs.Module.NonNullPtr.Internal (NonNullPtr(..)) where
import Control.DeepSeq
import Foreign
newtype NonNullPtr a = NonNullPtr { forall a. NonNullPtr a -> Ptr a
unNonNullPtr :: Ptr a }
deriving (NonNullPtr a -> NonNullPtr a -> Bool
(NonNullPtr a -> NonNullPtr a -> Bool)
-> (NonNullPtr a -> NonNullPtr a -> Bool) -> Eq (NonNullPtr a)
forall a. NonNullPtr a -> NonNullPtr a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. NonNullPtr a -> NonNullPtr a -> Bool
== :: NonNullPtr a -> NonNullPtr a -> Bool
$c/= :: forall a. NonNullPtr a -> NonNullPtr a -> Bool
/= :: NonNullPtr a -> NonNullPtr a -> Bool
Eq, Eq (NonNullPtr a)
Eq (NonNullPtr a) =>
(NonNullPtr a -> NonNullPtr a -> Ordering)
-> (NonNullPtr a -> NonNullPtr a -> Bool)
-> (NonNullPtr a -> NonNullPtr a -> Bool)
-> (NonNullPtr a -> NonNullPtr a -> Bool)
-> (NonNullPtr a -> NonNullPtr a -> Bool)
-> (NonNullPtr a -> NonNullPtr a -> NonNullPtr a)
-> (NonNullPtr a -> NonNullPtr a -> NonNullPtr a)
-> Ord (NonNullPtr a)
NonNullPtr a -> NonNullPtr a -> Bool
NonNullPtr a -> NonNullPtr a -> Ordering
NonNullPtr a -> NonNullPtr a -> NonNullPtr a
forall a. Eq (NonNullPtr a)
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
forall a. NonNullPtr a -> NonNullPtr a -> Bool
forall a. NonNullPtr a -> NonNullPtr a -> Ordering
forall a. NonNullPtr a -> NonNullPtr a -> NonNullPtr a
$ccompare :: forall a. NonNullPtr a -> NonNullPtr a -> Ordering
compare :: NonNullPtr a -> NonNullPtr a -> Ordering
$c< :: forall a. NonNullPtr a -> NonNullPtr a -> Bool
< :: NonNullPtr a -> NonNullPtr a -> Bool
$c<= :: forall a. NonNullPtr a -> NonNullPtr a -> Bool
<= :: NonNullPtr a -> NonNullPtr a -> Bool
$c> :: forall a. NonNullPtr a -> NonNullPtr a -> Bool
> :: NonNullPtr a -> NonNullPtr a -> Bool
$c>= :: forall a. NonNullPtr a -> NonNullPtr a -> Bool
>= :: NonNullPtr a -> NonNullPtr a -> Bool
$cmax :: forall a. NonNullPtr a -> NonNullPtr a -> NonNullPtr a
max :: NonNullPtr a -> NonNullPtr a -> NonNullPtr a
$cmin :: forall a. NonNullPtr a -> NonNullPtr a -> NonNullPtr a
min :: NonNullPtr a -> NonNullPtr a -> NonNullPtr a
Ord, Int -> NonNullPtr a -> ShowS
[NonNullPtr a] -> ShowS
NonNullPtr a -> String
(Int -> NonNullPtr a -> ShowS)
-> (NonNullPtr a -> String)
-> ([NonNullPtr a] -> ShowS)
-> Show (NonNullPtr a)
forall a. Int -> NonNullPtr a -> ShowS
forall a. [NonNullPtr a] -> ShowS
forall a. NonNullPtr a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Int -> NonNullPtr a -> ShowS
showsPrec :: Int -> NonNullPtr a -> ShowS
$cshow :: forall a. NonNullPtr a -> String
show :: NonNullPtr a -> String
$cshowList :: forall a. [NonNullPtr a] -> ShowS
showList :: [NonNullPtr a] -> ShowS
Show, NonNullPtr a -> ()
(NonNullPtr a -> ()) -> NFData (NonNullPtr a)
forall a. NonNullPtr a -> ()
forall a. (a -> ()) -> NFData a
$crnf :: forall a. NonNullPtr a -> ()
rnf :: NonNullPtr a -> ()
NFData, Ptr (NonNullPtr a) -> IO (NonNullPtr a)
Ptr (NonNullPtr a) -> Int -> IO (NonNullPtr a)
Ptr (NonNullPtr a) -> Int -> NonNullPtr a -> IO ()
Ptr (NonNullPtr a) -> NonNullPtr a -> IO ()
NonNullPtr a -> Int
(NonNullPtr a -> Int)
-> (NonNullPtr a -> Int)
-> (Ptr (NonNullPtr a) -> Int -> IO (NonNullPtr a))
-> (Ptr (NonNullPtr a) -> Int -> NonNullPtr a -> IO ())
-> (forall b. Ptr b -> Int -> IO (NonNullPtr a))
-> (forall b. Ptr b -> Int -> NonNullPtr a -> IO ())
-> (Ptr (NonNullPtr a) -> IO (NonNullPtr a))
-> (Ptr (NonNullPtr a) -> NonNullPtr a -> IO ())
-> Storable (NonNullPtr a)
forall b. Ptr b -> Int -> IO (NonNullPtr a)
forall b. Ptr b -> Int -> NonNullPtr a -> IO ()
forall a. Ptr (NonNullPtr a) -> IO (NonNullPtr a)
forall a. Ptr (NonNullPtr a) -> Int -> IO (NonNullPtr a)
forall a. Ptr (NonNullPtr a) -> Int -> NonNullPtr a -> IO ()
forall a. Ptr (NonNullPtr a) -> NonNullPtr a -> IO ()
forall a. NonNullPtr a -> Int
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
forall a b. Ptr b -> Int -> IO (NonNullPtr a)
forall a b. Ptr b -> Int -> NonNullPtr a -> IO ()
$csizeOf :: forall a. NonNullPtr a -> Int
sizeOf :: NonNullPtr a -> Int
$calignment :: forall a. NonNullPtr a -> Int
alignment :: NonNullPtr a -> Int
$cpeekElemOff :: forall a. Ptr (NonNullPtr a) -> Int -> IO (NonNullPtr a)
peekElemOff :: Ptr (NonNullPtr a) -> Int -> IO (NonNullPtr a)
$cpokeElemOff :: forall a. Ptr (NonNullPtr a) -> Int -> NonNullPtr a -> IO ()
pokeElemOff :: Ptr (NonNullPtr a) -> Int -> NonNullPtr a -> IO ()
$cpeekByteOff :: forall a b. Ptr b -> Int -> IO (NonNullPtr a)
peekByteOff :: forall b. Ptr b -> Int -> IO (NonNullPtr a)
$cpokeByteOff :: forall a b. Ptr b -> Int -> NonNullPtr a -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> NonNullPtr a -> IO ()
$cpeek :: forall a. Ptr (NonNullPtr a) -> IO (NonNullPtr a)
peek :: Ptr (NonNullPtr a) -> IO (NonNullPtr a)
$cpoke :: forall a. Ptr (NonNullPtr a) -> NonNullPtr a -> IO ()
poke :: Ptr (NonNullPtr a) -> NonNullPtr a -> IO ()
Storable)