base 4.17.2.1 → 4.18.0.0
raw patch · 140 files changed
+40368/−35772 lines, 140 filesdep ~ghc-primPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ghc-prim
API changes (from Hackage documentation)
- Control.Exception.Base: runtimeError :: Addr# -> a
- Data.Functor.Compose: instance (Data.Functor.Classes.Eq1 f, Data.Functor.Classes.Eq1 g, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Functor.Compose.Compose f g a)
- Data.Functor.Compose: instance (Data.Functor.Classes.Ord1 f, Data.Functor.Classes.Ord1 g, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Functor.Compose.Compose f g a)
- Data.Functor.Compose: instance (Data.Functor.Classes.Read1 f, Data.Functor.Classes.Read1 g, GHC.Read.Read a) => GHC.Read.Read (Data.Functor.Compose.Compose f g a)
- Data.Functor.Compose: instance (Data.Functor.Classes.Show1 f, Data.Functor.Classes.Show1 g, GHC.Show.Show a) => GHC.Show.Show (Data.Functor.Compose.Compose f g a)
- Data.Functor.Product: instance (Data.Functor.Classes.Eq1 f, Data.Functor.Classes.Eq1 g, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Functor.Product.Product f g a)
- Data.Functor.Product: instance (Data.Functor.Classes.Ord1 f, Data.Functor.Classes.Ord1 g, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Functor.Product.Product f g a)
- Data.Functor.Product: instance (Data.Functor.Classes.Read1 f, Data.Functor.Classes.Read1 g, GHC.Read.Read a) => GHC.Read.Read (Data.Functor.Product.Product f g a)
- Data.Functor.Product: instance (Data.Functor.Classes.Show1 f, Data.Functor.Classes.Show1 g, GHC.Show.Show a) => GHC.Show.Show (Data.Functor.Product.Product f g a)
- Data.Functor.Sum: instance (Data.Functor.Classes.Eq1 f, Data.Functor.Classes.Eq1 g, GHC.Classes.Eq a) => GHC.Classes.Eq (Data.Functor.Sum.Sum f g a)
- Data.Functor.Sum: instance (Data.Functor.Classes.Ord1 f, Data.Functor.Classes.Ord1 g, GHC.Classes.Ord a) => GHC.Classes.Ord (Data.Functor.Sum.Sum f g a)
- Data.Functor.Sum: instance (Data.Functor.Classes.Read1 f, Data.Functor.Classes.Read1 g, GHC.Read.Read a) => GHC.Read.Read (Data.Functor.Sum.Sum f g a)
- Data.Functor.Sum: instance (Data.Functor.Classes.Show1 f, Data.Functor.Classes.Show1 g, GHC.Show.Show a) => GHC.Show.Show (Data.Functor.Sum.Sum f g a)
- Data.Kind: data () => Constraint
- Data.Tuple: Solo :: a -> Solo a
- Data.Void: instance Data.Data.Data Data.Void.Void
- Data.Void: instance GHC.Base.Semigroup Data.Void.Void
- Data.Void: instance GHC.Classes.Eq Data.Void.Void
- Data.Void: instance GHC.Classes.Ord Data.Void.Void
- Data.Void: instance GHC.Exception.Type.Exception Data.Void.Void
- Data.Void: instance GHC.Generics.Generic Data.Void.Void
- Data.Void: instance GHC.Ix.Ix Data.Void.Void
- Data.Void: instance GHC.Read.Read Data.Void.Void
- Data.Void: instance GHC.Show.Show Data.Void.Void
- GHC.Exts: data () => Constraint
- GHC.Stack.CCS: InfoProv :: String -> String -> String -> String -> String -> String -> InfoProv
- GHC.Stack.CCS: [ipDesc] :: InfoProv -> String
- GHC.Stack.CCS: [ipLabel] :: InfoProv -> String
- GHC.Stack.CCS: [ipLoc] :: InfoProv -> String
- GHC.Stack.CCS: [ipMod] :: InfoProv -> String
- GHC.Stack.CCS: [ipName] :: InfoProv -> String
- GHC.Stack.CCS: [ipTyDesc] :: InfoProv -> String
- GHC.Stack.CCS: data InfoProv
- GHC.Stack.CCS: data InfoProvEnt
- GHC.Stack.CCS: instance GHC.Classes.Eq GHC.Stack.CCS.InfoProv
- GHC.Stack.CCS: instance GHC.Show.Show GHC.Stack.CCS.InfoProv
- GHC.Stack.CCS: ipeProv :: Ptr InfoProvEnt -> Ptr InfoProv
- GHC.Stack.CCS: peekInfoProv :: Ptr InfoProv -> IO InfoProv
- GHC.Stack.CCS: whereFrom :: a -> IO (Maybe InfoProv)
- GHC.Unicode: wgencat :: Int -> Int
- GHC.Weak: runFinalizerBatch :: Int -> Array# (State# RealWorld -> State# RealWorld) -> IO ()
+ Control.Exception.Base: NoMatchingContinuationPrompt :: NoMatchingContinuationPrompt
+ Control.Exception.Base: data NoMatchingContinuationPrompt
+ Control.Exception.Base: impossibleConstraintError :: Addr# -> a
+ Control.Exception.Base: impossibleError :: Addr# -> a
+ Control.Exception.Base: instance GHC.Exception.Type.Exception Control.Exception.Base.NoMatchingContinuationPrompt
+ Control.Exception.Base: instance GHC.Show.Show Control.Exception.Base.NoMatchingContinuationPrompt
+ Control.Exception.Base: noMatchingContinuationPrompt :: SomeException
+ Data.Bifoldable1: bifold1 :: (Bifoldable1 t, Semigroup m) => t m m -> m
+ Data.Bifoldable1: bifoldMap1 :: (Bifoldable1 t, Semigroup m) => (a -> m) -> (b -> m) -> t a b -> m
+ Data.Bifoldable1: class Bifoldable t => Bifoldable1 t
+ Data.Bifoldable1: instance Data.Bifoldable1.Bifoldable1 ((,,) x)
+ Data.Bifoldable1: instance Data.Bifoldable1.Bifoldable1 ((,,,) x y)
+ Data.Bifoldable1: instance Data.Bifoldable1.Bifoldable1 ((,,,,) x y z)
+ Data.Bifoldable1: instance Data.Bifoldable1.Bifoldable1 (,)
+ Data.Bifoldable1: instance Data.Bifoldable1.Bifoldable1 Data.Either.Either
+ Data.Bifoldable1: instance Data.Bifoldable1.Bifoldable1 Data.Functor.Const.Const
+ Data.Bifoldable1: instance Data.Bifoldable1.Bifoldable1 Data.Semigroup.Arg
+ Data.Char: isLowerCase :: Char -> Bool
+ Data.Char: isUpperCase :: Char -> Bool
+ Data.Data: instance Data.Data.Data GHC.Base.Void
+ Data.Data: instance Data.Data.Data a => Data.Data.Data (Foreign.C.ConstPtr.ConstPtr a)
+ Data.Foldable1: class Foldable t => Foldable1 t
+ Data.Foldable1: fold1 :: (Foldable1 t, Semigroup m) => t m -> m
+ Data.Foldable1: foldMap1 :: (Foldable1 t, Semigroup m) => (a -> m) -> t a -> m
+ Data.Foldable1: foldMap1' :: (Foldable1 t, Semigroup m) => (a -> m) -> t a -> m
+ Data.Foldable1: foldl1 :: Foldable1 t => (a -> a -> a) -> t a -> a
+ Data.Foldable1: foldl1' :: Foldable1 t => (a -> a -> a) -> t a -> a
+ Data.Foldable1: foldlM1 :: (Foldable1 t, Monad m) => (a -> a -> m a) -> t a -> m a
+ Data.Foldable1: foldlMap1 :: Foldable1 t => (a -> b) -> (b -> a -> b) -> t a -> b
+ Data.Foldable1: foldlMap1' :: Foldable1 t => (a -> b) -> (b -> a -> b) -> t a -> b
+ Data.Foldable1: foldlMapM1 :: (Foldable1 t, Monad m) => (a -> m b) -> (b -> a -> m b) -> t a -> m b
+ Data.Foldable1: foldr1 :: Foldable1 t => (a -> a -> a) -> t a -> a
+ Data.Foldable1: foldr1' :: Foldable1 t => (a -> a -> a) -> t a -> a
+ Data.Foldable1: foldrM1 :: (Foldable1 t, Monad m) => (a -> a -> m a) -> t a -> m a
+ Data.Foldable1: foldrMap1 :: Foldable1 t => (a -> b) -> (a -> b -> b) -> t a -> b
+ Data.Foldable1: foldrMap1' :: Foldable1 t => (a -> b) -> (a -> b -> b) -> t a -> b
+ Data.Foldable1: foldrMapM1 :: (Foldable1 t, Monad m) => (a -> m b) -> (a -> b -> m b) -> t a -> m b
+ Data.Foldable1: head :: Foldable1 t => t a -> a
+ Data.Foldable1: instance (Data.Foldable1.Foldable1 f, Data.Foldable1.Foldable1 g) => Data.Foldable1.Foldable1 (Data.Functor.Compose.Compose f g)
+ Data.Foldable1: instance (Data.Foldable1.Foldable1 f, Data.Foldable1.Foldable1 g) => Data.Foldable1.Foldable1 (Data.Functor.Product.Product f g)
+ Data.Foldable1: instance (Data.Foldable1.Foldable1 f, Data.Foldable1.Foldable1 g) => Data.Foldable1.Foldable1 (Data.Functor.Sum.Sum f g)
+ Data.Foldable1: instance (Data.Foldable1.Foldable1 f, Data.Foldable1.Foldable1 g) => Data.Foldable1.Foldable1 (f GHC.Generics.:*: g)
+ Data.Foldable1: instance (Data.Foldable1.Foldable1 f, Data.Foldable1.Foldable1 g) => Data.Foldable1.Foldable1 (f GHC.Generics.:+: g)
+ Data.Foldable1: instance (Data.Foldable1.Foldable1 f, Data.Foldable1.Foldable1 g) => Data.Foldable1.Foldable1 (f GHC.Generics.:.: g)
+ Data.Foldable1: instance Data.Foldable1.Foldable1 ((,) a)
+ Data.Foldable1: instance Data.Foldable1.Foldable1 Data.Complex.Complex
+ Data.Foldable1: instance Data.Foldable1.Foldable1 Data.Functor.Identity.Identity
+ Data.Foldable1: instance Data.Foldable1.Foldable1 Data.Ord.Down
+ Data.Foldable1: instance Data.Foldable1.Foldable1 Data.Semigroup.First
+ Data.Foldable1: instance Data.Foldable1.Foldable1 Data.Semigroup.Internal.Dual
+ Data.Foldable1: instance Data.Foldable1.Foldable1 Data.Semigroup.Internal.Product
+ Data.Foldable1: instance Data.Foldable1.Foldable1 Data.Semigroup.Internal.Sum
+ Data.Foldable1: instance Data.Foldable1.Foldable1 Data.Semigroup.Last
+ Data.Foldable1: instance Data.Foldable1.Foldable1 Data.Semigroup.Max
+ Data.Foldable1: instance Data.Foldable1.Foldable1 Data.Semigroup.Min
+ Data.Foldable1: instance Data.Foldable1.Foldable1 GHC.Base.NonEmpty
+ Data.Foldable1: instance Data.Foldable1.Foldable1 GHC.Generics.Par1
+ Data.Foldable1: instance Data.Foldable1.Foldable1 GHC.Generics.V1
+ Data.Foldable1: instance Data.Foldable1.Foldable1 Solo
+ Data.Foldable1: instance Data.Foldable1.Foldable1 f => Data.Foldable1.Foldable1 (Data.Monoid.Ap f)
+ Data.Foldable1: instance Data.Foldable1.Foldable1 f => Data.Foldable1.Foldable1 (Data.Semigroup.Internal.Alt f)
+ Data.Foldable1: instance Data.Foldable1.Foldable1 f => Data.Foldable1.Foldable1 (GHC.Generics.M1 i c f)
+ Data.Foldable1: instance Data.Foldable1.Foldable1 f => Data.Foldable1.Foldable1 (GHC.Generics.Rec1 f)
+ Data.Foldable1: instance GHC.Base.Semigroup (Data.Foldable1.FromMaybe b)
+ Data.Foldable1: instance GHC.Base.Semigroup (Data.Foldable1.NonEmptyDList a)
+ Data.Foldable1: instance GHC.Base.Semigroup a => GHC.Base.Semigroup (Data.Foldable1.JoinWith a)
+ Data.Foldable1: intercalate1 :: (Foldable1 t, Semigroup m) => m -> t m -> m
+ Data.Foldable1: last :: Foldable1 t => t a -> a
+ Data.Foldable1: maximum :: (Foldable1 t, Ord a) => t a -> a
+ Data.Foldable1: maximumBy :: Foldable1 t => (a -> a -> Ordering) -> t a -> a
+ Data.Foldable1: minimum :: (Foldable1 t, Ord a) => t a -> a
+ Data.Foldable1: minimumBy :: Foldable1 t => (a -> a -> Ordering) -> t a -> a
+ Data.Foldable1: toNonEmpty :: Foldable1 t => t a -> NonEmpty a
+ Data.Function: applyWhen :: Bool -> (a -> a) -> a -> a
+ Data.Functor.Compose: instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Classes.Eq (f (g a)) => GHC.Classes.Eq (Data.Functor.Compose.Compose f g a)
+ Data.Functor.Compose: instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Classes.Ord (f (g a)) => GHC.Classes.Ord (Data.Functor.Compose.Compose f g a)
+ Data.Functor.Compose: instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Read.Read (f (g a)) => GHC.Read.Read (Data.Functor.Compose.Compose f g a)
+ Data.Functor.Compose: instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Show.Show (f (g a)) => GHC.Show.Show (Data.Functor.Compose.Compose f g a)
+ Data.Functor.Product: instance forall k (f :: k -> *) (a :: k) (g :: k -> *). (GHC.Classes.Eq (f a), GHC.Classes.Eq (g a)) => GHC.Classes.Eq (Data.Functor.Product.Product f g a)
+ Data.Functor.Product: instance forall k (f :: k -> *) (a :: k) (g :: k -> *). (GHC.Classes.Ord (f a), GHC.Classes.Ord (g a)) => GHC.Classes.Ord (Data.Functor.Product.Product f g a)
+ Data.Functor.Product: instance forall k (f :: k -> *) (a :: k) (g :: k -> *). (GHC.Read.Read (f a), GHC.Read.Read (g a)) => GHC.Read.Read (Data.Functor.Product.Product f g a)
+ Data.Functor.Product: instance forall k (f :: k -> *) (a :: k) (g :: k -> *). (GHC.Show.Show (f a), GHC.Show.Show (g a)) => GHC.Show.Show (Data.Functor.Product.Product f g a)
+ Data.Functor.Sum: instance forall k (f :: k -> *) (a :: k) (g :: k -> *). (GHC.Classes.Eq (f a), GHC.Classes.Eq (g a)) => GHC.Classes.Eq (Data.Functor.Sum.Sum f g a)
+ Data.Functor.Sum: instance forall k (f :: k -> *) (a :: k) (g :: k -> *). (GHC.Classes.Ord (f a), GHC.Classes.Ord (g a)) => GHC.Classes.Ord (Data.Functor.Sum.Sum f g a)
+ Data.Functor.Sum: instance forall k (f :: k -> *) (a :: k) (g :: k -> *). (GHC.Read.Read (f a), GHC.Read.Read (g a)) => GHC.Read.Read (Data.Functor.Sum.Sum f g a)
+ Data.Functor.Sum: instance forall k (f :: k -> *) (a :: k) (g :: k -> *). (GHC.Show.Show (f a), GHC.Show.Show (g a)) => GHC.Show.Show (Data.Functor.Sum.Sum f g a)
+ Data.Kind: type Constraint = CONSTRAINT LiftedRep
+ Data.List.NonEmpty: inits1 :: NonEmpty a -> NonEmpty (NonEmpty a)
+ Data.List.NonEmpty: tails1 :: NonEmpty a -> NonEmpty (NonEmpty a)
+ Data.Ord: instance (GHC.Enum.Enum a, GHC.Enum.Bounded a, GHC.Classes.Eq a) => GHC.Enum.Enum (Data.Ord.Down a)
+ Data.Traversable: forAccumM :: (Monad m, Traversable t) => s -> t a -> (s -> a -> m (s, b)) -> m (s, t b)
+ Data.Traversable: mapAccumM :: forall m t s a b. (Monad m, Traversable t) => (s -> a -> m (s, b)) -> s -> t a -> m (s, t b)
+ Data.Tuple: MkSolo :: a -> Solo a
+ Data.Tuple: pattern Solo :: a -> Solo a
+ Data.Typeable: heqT :: forall a b. (Typeable a, Typeable b) => Maybe (a :~~: b)
+ Debug.Trace: traceEventWith :: (a -> String) -> a -> a
+ Debug.Trace: traceShowWith :: Show b => (a -> b) -> a -> a
+ Debug.Trace: traceWith :: (a -> String) -> a -> a
+ Foreign.C.ConstPtr: ConstPtr :: Ptr a -> ConstPtr a
+ Foreign.C.ConstPtr: [unConstPtr] :: ConstPtr a -> Ptr a
+ Foreign.C.ConstPtr: instance GHC.Classes.Eq (Foreign.C.ConstPtr.ConstPtr a)
+ Foreign.C.ConstPtr: instance GHC.Classes.Ord (Foreign.C.ConstPtr.ConstPtr a)
+ Foreign.C.ConstPtr: instance GHC.Show.Show (Foreign.C.ConstPtr.ConstPtr a)
+ Foreign.C.ConstPtr: newtype ConstPtr a
+ Foreign.Storable: instance Foreign.Storable.Storable (Foreign.C.ConstPtr.ConstPtr a)
+ GHC.Base: absurd :: Void -> a
+ GHC.Base: data Void
+ GHC.Base: instance GHC.Base.Functor ((,,,,) a b c d)
+ GHC.Base: instance GHC.Base.Functor ((,,,,,) a b c d e)
+ GHC.Base: instance GHC.Base.Functor ((,,,,,,) a b c d e f)
+ GHC.Base: instance GHC.Base.Semigroup GHC.Base.Void
+ GHC.Base: instance GHC.Classes.Eq GHC.Base.Void
+ GHC.Base: instance GHC.Classes.Ord GHC.Base.Void
+ GHC.Base: vacuous :: Functor f => f Void -> f a
+ GHC.Conc: listThreads :: IO [ThreadId]
+ GHC.Conc.Sync: labelThreadByteArray# :: ThreadId -> ByteArray# -> IO ()
+ GHC.Conc.Sync: listThreads :: IO [ThreadId]
+ GHC.Conc.Sync: threadLabel :: ThreadId -> IO (Maybe String)
+ GHC.Encoding.UTF8: utf8CompareByteArray# :: ByteArray# -> ByteArray# -> Ordering
+ GHC.Encoding.UTF8: utf8CountCharsByteArray# :: ByteArray# -> Int
+ GHC.Encoding.UTF8: utf8DecodeByteArray# :: ByteArray# -> [Char]
+ GHC.Encoding.UTF8: utf8DecodeCharAddr# :: Addr# -> Int# -> (# Char#, Int# #)
+ GHC.Encoding.UTF8: utf8DecodeCharByteArray# :: ByteArray# -> Int# -> (# Char#, Int# #)
+ GHC.Encoding.UTF8: utf8DecodeCharPtr :: Ptr Word8 -> (Char, Int)
+ GHC.Encoding.UTF8: utf8DecodeForeignPtr :: ForeignPtr Word8 -> Int -> Int -> [Char]
+ GHC.Encoding.UTF8: utf8EncodeByteArray# :: String -> ByteArray#
+ GHC.Encoding.UTF8: utf8EncodePtr :: Ptr Word8 -> String -> IO ()
+ GHC.Encoding.UTF8: utf8EncodedLength :: String -> Int
+ GHC.Exception.Type: instance GHC.Exception.Type.Exception GHC.Base.Void
+ GHC.Exts: MkDictBox :: DictBox a
+ GHC.Exts: MkDoubleBox :: a -> DoubleBox (a :: TYPE 'DoubleRep)
+ GHC.Exts: MkFloatBox :: a -> FloatBox (a :: TYPE 'FloatRep)
+ GHC.Exts: MkIntBox :: a -> IntBox (a :: TYPE 'IntRep)
+ GHC.Exts: MkWordBox :: a -> WordBox (a :: TYPE 'WordRep)
+ GHC.Exts: control0# :: forall {r :: RuntimeRep} a (b :: TYPE r). PromptTag# a -> (((State# RealWorld -> (# State# RealWorld, b #)) -> State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, b #)
+ GHC.Exts: data CONSTRAINT (a :: RuntimeRep)
+ GHC.Exts: data () => DictBox a
+ GHC.Exts: data () => DoubleBox (a :: TYPE 'DoubleRep)
+ GHC.Exts: data () => FloatBox (a :: TYPE 'FloatRep)
+ GHC.Exts: data () => IntBox (a :: TYPE 'IntRep)
+ GHC.Exts: data PromptTag# a :: UnliftedType
+ GHC.Exts: data () => WordBox (a :: TYPE 'WordRep)
+ GHC.Exts: data () => [] a
+ GHC.Exts: listThreads# :: State# RealWorld -> (# State# RealWorld, Array# ThreadId# #)
+ GHC.Exts: newPromptTag# :: State# RealWorld -> (# State# RealWorld, PromptTag# a #)
+ GHC.Exts: prompt# :: PromptTag# a -> (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: raiseDivZero# :: forall {r :: RuntimeRep} (b :: TYPE r). (# #) -> b
+ GHC.Exts: raiseOverflow# :: forall {r :: RuntimeRep} (b :: TYPE r). (# #) -> b
+ GHC.Exts: raiseUnderflow# :: forall {r :: RuntimeRep} (b :: TYPE r). (# #) -> b
+ GHC.Exts: samePromptTag# :: PromptTag# a -> PromptTag# a -> Int#
+ GHC.Exts: threadLabel# :: ThreadId# -> State# RealWorld -> (# State# RealWorld, Int#, ByteArray# #)
+ GHC.Exts: type Constraint = CONSTRAINT LiftedRep
+ GHC.Exts: unsafePtrEquality# :: forall (a :: UnliftedType) (b :: UnliftedType). a -> b -> Int#
+ GHC.Foreign: type CString = Ptr CChar
+ GHC.Foreign: type CStringLen = (Ptr CChar, Int)
+ GHC.Generics: instance GHC.Generics.Generic GHC.Base.Void
+ GHC.Generics: instance forall k (f :: k -> *) (a :: k). (GHC.Generics.Generic1 f, GHC.Classes.Eq (GHC.Generics.Rep1 f a)) => GHC.Classes.Eq (GHC.Generics.Generically1 f a)
+ GHC.Generics: instance forall k (f :: k -> *) (a :: k). (GHC.Generics.Generic1 f, GHC.Classes.Ord (GHC.Generics.Rep1 f a)) => GHC.Classes.Ord (GHC.Generics.Generically1 f a)
+ GHC.InfoProv: InfoProv :: String -> String -> String -> String -> String -> String -> String -> InfoProv
+ GHC.InfoProv: [ipDesc] :: InfoProv -> String
+ GHC.InfoProv: [ipLabel] :: InfoProv -> String
+ GHC.InfoProv: [ipMod] :: InfoProv -> String
+ GHC.InfoProv: [ipName] :: InfoProv -> String
+ GHC.InfoProv: [ipSrcFile] :: InfoProv -> String
+ GHC.InfoProv: [ipSrcSpan] :: InfoProv -> String
+ GHC.InfoProv: [ipTyDesc] :: InfoProv -> String
+ GHC.InfoProv: data InfoProv
+ GHC.InfoProv: data InfoProvEnt
+ GHC.InfoProv: instance GHC.Classes.Eq GHC.InfoProv.InfoProv
+ GHC.InfoProv: instance GHC.Show.Show GHC.InfoProv.InfoProv
+ GHC.InfoProv: ipLoc :: InfoProv -> String
+ GHC.InfoProv: ipeProv :: Ptr InfoProvEnt -> Ptr InfoProv
+ GHC.InfoProv: peekInfoProv :: Ptr InfoProv -> IO InfoProv
+ GHC.InfoProv: whereFrom :: a -> IO (Maybe InfoProv)
+ GHC.Ix: instance GHC.Ix.Ix GHC.Base.Void
+ GHC.List: data () => [] a
+ GHC.Read: instance GHC.Read.Read GHC.Base.Void
+ GHC.Real: powImpl :: (Num a, Integral b) => a -> b -> a
+ GHC.Real: powImplAcc :: (Num a, Integral b) => a -> b -> a -> a
+ GHC.Show: instance GHC.Show.Show GHC.Base.Void
+ GHC.Stats: [gcdetails_block_fragmentation_bytes] :: GCDetails -> Word64
+ GHC.TypeLits: charSing :: KnownChar n => SChar n
+ GHC.TypeLits: data SChar (s :: Char)
+ GHC.TypeLits: data SNat (n :: Nat)
+ GHC.TypeLits: data SSymbol (s :: Symbol)
+ GHC.TypeLits: fromSChar :: SChar c -> Char
+ GHC.TypeLits: fromSNat :: SNat n -> Integer
+ GHC.TypeLits: fromSSymbol :: SSymbol s -> String
+ GHC.TypeLits: instance Data.Type.Coercion.TestCoercion GHC.TypeLits.SChar
+ GHC.TypeLits: instance Data.Type.Coercion.TestCoercion GHC.TypeLits.SSymbol
+ GHC.TypeLits: instance Data.Type.Equality.TestEquality GHC.TypeLits.SChar
+ GHC.TypeLits: instance Data.Type.Equality.TestEquality GHC.TypeLits.SSymbol
+ GHC.TypeLits: instance GHC.Show.Show (GHC.TypeLits.SChar c)
+ GHC.TypeLits: instance GHC.Show.Show (GHC.TypeLits.SSymbol s)
+ GHC.TypeLits: natSing :: KnownNat n => SNat n
+ GHC.TypeLits: pattern SChar :: forall c. () => KnownChar c => SChar c
+ GHC.TypeLits: pattern SNat :: forall n. () => KnownNat n => SNat n
+ GHC.TypeLits: pattern SSymbol :: forall s. () => KnownSymbol s => SSymbol s
+ GHC.TypeLits: symbolSing :: KnownSymbol n => SSymbol n
+ GHC.TypeLits: withKnownChar :: forall c rep (r :: TYPE rep). SChar c -> (KnownChar c => r) -> r
+ GHC.TypeLits: withKnownNat :: forall n rep (r :: TYPE rep). SNat n -> (KnownNat n => r) -> r
+ GHC.TypeLits: withKnownSymbol :: forall s rep (r :: TYPE rep). SSymbol s -> (KnownSymbol s => r) -> r
+ GHC.TypeLits: withSomeSChar :: forall rep (r :: TYPE rep). Char -> (forall c. SChar c -> r) -> r
+ GHC.TypeLits: withSomeSNat :: forall rep (r :: TYPE rep). Integer -> (forall n. Maybe (SNat n) -> r) -> r
+ GHC.TypeLits: withSomeSSymbol :: forall rep (r :: TYPE rep). String -> (forall s. SSymbol s -> r) -> r
+ GHC.TypeNats: data SNat (n :: Nat)
+ GHC.TypeNats: fromSNat :: SNat n -> Natural
+ GHC.TypeNats: instance Data.Type.Coercion.TestCoercion GHC.TypeNats.SNat
+ GHC.TypeNats: instance Data.Type.Equality.TestEquality GHC.TypeNats.SNat
+ GHC.TypeNats: instance GHC.Show.Show (GHC.TypeNats.SNat n)
+ GHC.TypeNats: natSing :: KnownNat n => SNat n
+ GHC.TypeNats: pattern SNat :: forall n. () => KnownNat n => SNat n
+ GHC.TypeNats: withKnownNat :: forall n rep (r :: TYPE rep). SNat n -> (KnownNat n => r) -> r
+ GHC.TypeNats: withSomeSNat :: forall rep (r :: TYPE rep). Natural -> (forall n. SNat n -> r) -> r
+ GHC.Unicode: isLowerCase :: Char -> Bool
+ GHC.Unicode: isUpperCase :: Char -> Bool
+ GHC.Weak: getFinalizerExceptionHandler :: IO (SomeException -> IO ())
+ GHC.Weak: setFinalizerExceptionHandler :: (SomeException -> IO ()) -> IO ()
+ GHC.Weak.Finalize: getFinalizerExceptionHandler :: IO (SomeException -> IO ())
+ GHC.Weak.Finalize: runFinalizerBatch :: Int -> Array# (State# RealWorld -> State# RealWorld) -> IO ()
+ GHC.Weak.Finalize: setFinalizerExceptionHandler :: (SomeException -> IO ()) -> IO ()
+ Numeric.Natural: minusNaturalMaybe :: Natural -> Natural -> Maybe Natural
+ Prelude: liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
- Data.Bifunctor: class Bifunctor p
+ Data.Bifunctor: class (forall a. Functor (p a)) => Bifunctor p
- Data.Functor.Classes: class Eq1 f
+ Data.Functor.Classes: class (forall a. Eq a => Eq (f a)) => Eq1 f
- Data.Functor.Classes: class Eq2 f
+ Data.Functor.Classes: class (forall a. Eq a => Eq1 (f a)) => Eq2 f
- Data.Functor.Classes: class (Eq1 f) => Ord1 f
+ Data.Functor.Classes: class (Eq1 f, forall a. Ord a => Ord (f a)) => Ord1 f
- Data.Functor.Classes: class (Eq2 f) => Ord2 f
+ Data.Functor.Classes: class (Eq2 f, forall a. Ord a => Ord1 (f a)) => Ord2 f
- Data.Functor.Classes: class Read1 f
+ Data.Functor.Classes: class (forall a. Read a => Read (f a)) => Read1 f
- Data.Functor.Classes: class Read2 f
+ Data.Functor.Classes: class (forall a. Read a => Read1 (f a)) => Read2 f
- Data.Functor.Classes: class Show1 f
+ Data.Functor.Classes: class (forall a. Show a => Show (f a)) => Show1 f
- Data.Functor.Classes: class Show2 f
+ Data.Functor.Classes: class (forall a. Show a => Show1 (f a)) => Show2 f
- Data.Functor.Classes: liftCompare :: Ord1 f => (a -> b -> Ordering) -> f a -> f b -> Ordering
+ Data.Functor.Classes: liftCompare :: (Ord1 f, f ~ f' c, Ord2 f', Ord c) => (a -> b -> Ordering) -> f a -> f b -> Ordering
- Data.Functor.Classes: liftEq :: Eq1 f => (a -> b -> Bool) -> f a -> f b -> Bool
+ Data.Functor.Classes: liftEq :: (Eq1 f, f ~ f' c, Eq2 f', Eq c) => (a -> b -> Bool) -> f a -> f b -> Bool
- Data.Functor.Classes: liftShowsPrec :: Show1 f => (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> f a -> ShowS
+ Data.Functor.Classes: liftShowsPrec :: (Show1 f, f ~ f' b, Show2 f', Show b) => (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> f a -> ShowS
- GHC.Exts: addrToAny# :: Addr# -> (# a #)
+ GHC.Exts: addrToAny# :: forall {l :: Levity} (a :: TYPE ('BoxedRep l)). Addr# -> (# a #)
- GHC.Exts: labelThread# :: ThreadId# -> Addr# -> State# RealWorld -> State# RealWorld
+ GHC.Exts: labelThread# :: ThreadId# -> ByteArray# -> State# RealWorld -> State# RealWorld
- GHC.Exts: pattern KindRepFun :: () => KindRep -> KindRep -> KindRep
+ GHC.Exts: pattern KindRepApp :: () => KindRep -> KindRep -> KindRep
- GHC.Num: infixl 6 -
+ GHC.Num: infixl 6 +
- GHC.Stats: GCDetails :: Word32 -> Word32 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> GCDetails
+ GHC.Stats: GCDetails :: Word32 -> Word32 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> RtsTime -> GCDetails
- GHC.TypeLits: sameChar :: (KnownChar a, KnownChar b) => proxy1 a -> proxy2 b -> Maybe (a :~: b)
+ GHC.TypeLits: sameChar :: forall a b proxy1 proxy2. (KnownChar a, KnownChar b) => proxy1 a -> proxy2 b -> Maybe (a :~: b)
- GHC.TypeLits: sameNat :: (KnownNat a, KnownNat b) => proxy1 a -> proxy2 b -> Maybe (a :~: b)
+ GHC.TypeLits: sameNat :: forall a b proxy1 proxy2. (KnownNat a, KnownNat b) => proxy1 a -> proxy2 b -> Maybe (a :~: b)
- GHC.TypeLits: sameSymbol :: (KnownSymbol a, KnownSymbol b) => proxy1 a -> proxy2 b -> Maybe (a :~: b)
+ GHC.TypeLits: sameSymbol :: forall a b proxy1 proxy2. (KnownSymbol a, KnownSymbol b) => proxy1 a -> proxy2 b -> Maybe (a :~: b)
- GHC.TypeNats: sameNat :: (KnownNat a, KnownNat b) => proxy1 a -> proxy2 b -> Maybe (a :~: b)
+ GHC.TypeNats: sameNat :: forall a b proxy1 proxy2. (KnownNat a, KnownNat b) => proxy1 a -> proxy2 b -> Maybe (a :~: b)
Files
- Control/Concurrent.hs +33/−2
- Control/Exception/Base.hs +33/−7
- Control/Monad/Fail.hs +5/−1
- Control/Monad/Fix.hs +1/−1
- Control/Monad/Zip.hs +1/−1
- Data/Array/Byte.hs +106/−40
- Data/Bifoldable1.hs +49/−0
- Data/Bifunctor.hs +21/−5
- Data/Char.hs +2/−2
- Data/Complex.hs +1/−0
- Data/Data.hs +9/−4
- Data/Foldable.hs +8/−2
- Data/Foldable1.hs +518/−0
- Data/Function.hs +29/−0
- Data/Functor/Classes.hs +75/−12
- Data/Functor/Compose.hs +28/−24
- Data/Functor/Product.hs +11/−20
- Data/Functor/Sum.hs +11/−17
- Data/Functor/Utils.hs +33/−2
- Data/IORef.hs +29/−13
- Data/List.hs +11/−2
- Data/List/NonEmpty.hs +52/−3
- Data/Monoid.hs +14/−2
- Data/OldList.hs +221/−55
- Data/Ord.hs +29/−3
- Data/Semigroup.hs +15/−1
- Data/Semigroup/Internal.hs +1/−1
- Data/String.hs +2/−20
- Data/Traversable.hs +46/−4
- Data/Type/Equality.hs +3/−3
- Data/Typeable.hs +10/−2
- Data/Typeable/Internal.hs +10/−2
- Data/Void.hs +2/−66
- Debug/Trace.hs +35/−0
- Foreign/C/ConstPtr.hs +45/−0
- Foreign/C/String.hs +1/−10
- Foreign/C/Types.hs +9/−1
- Foreign/Concurrent.hs +9/−4
- Foreign/Marshal/Array.hs +31/−1
- Foreign/Marshal/Pool.hs +23/−25
- Foreign/Storable.hs +6/−0
- GHC/ArrayArray.hs +3/−2
- GHC/Base.hs +117/−61
- GHC/ByteOrder.hs-boot +28/−0
- GHC/Conc.hs +1/−0
- GHC/Conc/IO.hs +25/−15
- GHC/Conc/POSIX.hs +6/−0
- GHC/Conc/Sync.hs +77/−30
- GHC/Conc/Sync.hs-boot +3/−1
- GHC/Conc/Windows.hs +10/−1
- GHC/Encoding/UTF8.hs +318/−0
- GHC/Enum.hs +62/−18
- GHC/Event.hs +5/−0
- GHC/Event/Control.hs +11/−0
- GHC/Event/Thread.hs +25/−0
- GHC/Event/TimerManager.hs +13/−0
- GHC/Event/Windows.hsc +10/−2
- GHC/Event/Windows/FFI.hsc +3/−3
- GHC/Event/Windows/Thread.hs +4/−0
- GHC/Exception.hs +1/−1
- GHC/Exception/Type.hs +3/−0
- GHC/Exts.hs +2/−0
- GHC/Fingerprint.hs +1/−1
- GHC/Float.hs +29/−21
- GHC/Foreign.hs +7/−3
- GHC/ForeignPtr.hs +14/−7
- GHC/Generics.hs +13/−1
- GHC/IO/Encoding.hs +5/−1
- GHC/IO/Encoding/CodePage/API.hs +6/−0
- GHC/IO/Encoding/Failure.hs +1/−1
- GHC/IO/Encoding/UTF8.hs +4/−0
- GHC/IO/FD.hs +33/−2
- GHC/IO/Handle/Internals.hs +32/−2
- GHC/IO/StdHandles.hs +1/−1
- GHC/IO/Unsafe.hs +1/−1
- GHC/IO/Windows/Paths.hs +1/−1
- GHC/IOPort.hs +1/−1
- GHC/IORef.hs +36/−5
- GHC/InfoProv.hsc +113/−0
- GHC/Ix.hs +33/−7
- GHC/JS/Prim.hs +332/−0
- GHC/JS/Prim/Internal.hs +56/−0
- GHC/JS/Prim/Internal/Build.hs +1470/−0
- GHC/List.hs +23/−25
- GHC/Num.hs +2/−0
- GHC/Pack.hs +5/−0
- GHC/Ptr.hs +1/−1
- GHC/Read.hs +6/−0
- GHC/Real.hs +94/−42
- GHC/ResponseFile.hs +1/−1
- GHC/Show.hs +3/−0
- GHC/Stable.hs +2/−0
- GHC/Stack/CCS.hsc +17/−72
- GHC/Stack/CloneStack.hs +6/−6
- GHC/StaticPtr.hs +1/−1
- GHC/Stats.hsc +17/−12
- GHC/TopHandler.hs +40/−8
- GHC/TypeLits.hs +242/−38
- GHC/TypeLits/Internal.hs +1/−1
- GHC/TypeNats.hs +161/−62
- GHC/TypeNats/Internal.hs +1/−1
- GHC/Unicode.hs +111/−65
- GHC/Unicode/Internal/Bits.hs +73/−0
- GHC/Unicode/Internal/Char/DerivedCoreProperties.hs +35/−0
- GHC/Unicode/Internal/Char/UnicodeData/GeneralCategory.hs too large to diff
- GHC/Unicode/Internal/Char/UnicodeData/SimpleLowerCaseMapping.hs +1458/−0
- GHC/Unicode/Internal/Char/UnicodeData/SimpleTitleCaseMapping.hs +1479/−0
- GHC/Unicode/Internal/Char/UnicodeData/SimpleUpperCaseMapping.hs +1475/−0
- GHC/Unicode/Internal/Version.hs +26/−0
- GHC/Weak.hs +10/−25
- GHC/Weak/Finalize.hs +81/−0
- GHC/Windows.hs +6/−0
- Numeric/Natural.hs +2/−0
- Prelude.hs +1/−1
- System/CPUTime.hsc +3/−0
- System/CPUTime/Javascript.hs +26/−0
- System/CPUTime/Posix/ClockGetTime.hsc +5/−2
- System/CPUTime/Posix/RUsage.hsc +12/−0
- System/CPUTime/Posix/Times.hsc +12/−0
- System/Environment.hs +2/−0
- System/Environment/ExecutablePath.hsc +15/−0
- System/Exit.hs +5/−7
- System/Info.hs +2/−0
- System/Posix/Internals.hs +246/−16
- System/Timeout.hs +5/−3
- Text/Printf.hs +1/−1
- Type/Reflection/Unsafe.hs +1/−1
- aclocal.m4 +2/−4
- base.cabal +48/−19
- cbits/WCsubst.c +0/−5238
- cbits/sysconf.c +0/−2
- changelog.md +73/−16
- configure +28942/−29529
- configure.ac +12/−1
- include/HsBase.h +2/−5
- include/HsBaseConfig.h.in +28/−0
- include/WCsubst.h +0/−20
- jsbits/base.js +839/−0
- jsbits/errno.js +102/−0
- jsbits/platform.js +111/−0
Control/Concurrent.hs view
@@ -105,18 +105,26 @@ ) where +-- JavaScript platform doesn't support bound threads+#if !defined(javascript_HOST_ARCH)+#define SUPPORT_BOUND_THREADS+#endif+ import Control.Exception.Base as Exception import GHC.Conc hiding (threadWaitRead, threadWaitWrite, threadWaitReadSTM, threadWaitWriteSTM)++#if defined(SUPPORT_BOUND_THREADS) import GHC.IO ( unsafeUnmask, catchException ) import GHC.IORef ( newIORef, readIORef, writeIORef ) import GHC.Base--import System.Posix.Types ( Fd ) import Foreign.StablePtr import Foreign.C.Types+#endif +import System.Posix.Types ( Fd )+ #if defined(mingw32_HOST_OS) import Foreign.C import System.IO@@ -250,6 +258,27 @@ -} +#if !defined(SUPPORT_BOUND_THREADS)+forkOS :: IO () -> IO ThreadId+forkOS _ = error "forkOS not supported on this architecture"++forkOSWithUnmask :: ((forall a . IO a -> IO a) -> IO ()) -> IO ThreadId+forkOSWithUnmask _ = error "forkOS not supported on this architecture"++isCurrentThreadBound :: IO Bool+isCurrentThreadBound = pure False++runInBoundThread :: IO a -> IO a+runInBoundThread action = action++runInUnboundThread :: IO a -> IO a+runInUnboundThread action = action++rtsSupportsBoundThreads :: Bool+rtsSupportsBoundThreads = False+#else++ -- | 'True' if bound threads are supported. -- If @rtsSupportsBoundThreads@ is 'False', 'isCurrentThreadBound' -- will always return 'False' and both 'forkOS' and 'runInBoundThread' will@@ -389,6 +418,8 @@ unsafeResult :: Either SomeException a -> IO a unsafeResult = either Exception.throwIO return++#endif -- --------------------------------------------------------------------------- -- threadWaitRead/threadWaitWrite
Control/Exception/Base.hs view
@@ -42,6 +42,7 @@ RecUpdError(..), ErrorCall(..), TypeError(..), -- #10284, custom error type for deferred type errors+ NoMatchingContinuationPrompt(..), -- * Throwing exceptions throwIO,@@ -93,10 +94,11 @@ finally, -- * Calls for GHC runtime- recSelError, recConError, runtimeError,+ recSelError, recConError,+ impossibleError, impossibleConstraintError, nonExhaustiveGuardsError, patError, noMethodBindingError, typeError,- nonTermination, nestedAtomically,+ nonTermination, nestedAtomically, noMatchingContinuationPrompt, ) where import GHC.Base@@ -391,22 +393,42 @@ ----- +-- | Thrown when the program attempts a continuation capture, but no prompt with+-- the given prompt tag exists in the current continuation.+--+-- @since 4.18+data NoMatchingContinuationPrompt = NoMatchingContinuationPrompt++-- | @since 4.18+instance Show NoMatchingContinuationPrompt where+ showsPrec _ NoMatchingContinuationPrompt =+ showString "GHC.Exts.control0#: no matching prompt in the current continuation"++-- | @since 4.18+instance Exception NoMatchingContinuationPrompt++-----+ -- See Note [Compiler error functions] in ghc-prim:GHC.Prim.Panic-recSelError, recConError, runtimeError,- nonExhaustiveGuardsError, patError, noMethodBindingError,- typeError+recSelError, recConError, typeError,+ nonExhaustiveGuardsError, patError, noMethodBindingError :: Addr# -> a -- All take a UTF8-encoded C string recSelError s = throw (RecSelError ("No match in record selector " ++ unpackCStringUtf8# s)) -- No location info unfortunately-runtimeError s = errorWithoutStackTrace (unpackCStringUtf8# s) -- No location info unfortunately- nonExhaustiveGuardsError s = throw (PatternMatchFail (untangle s "Non-exhaustive guards in")) recConError s = throw (RecConError (untangle s "Missing field in record construction")) noMethodBindingError s = throw (NoMethodError (untangle s "No instance nor default method for class operation")) patError s = throw (PatternMatchFail (untangle s "Non-exhaustive patterns in")) typeError s = throw (TypeError (unpackCStringUtf8# s)) ++impossibleError, impossibleConstraintError :: Addr# -> a+-- These two are used for impossible case alternatives, and lack location info+impossibleError s = errorWithoutStackTrace (unpackCStringUtf8# s)+impossibleConstraintError s = errorWithoutStackTrace (unpackCStringUtf8# s)++ -- GHC's RTS calls this nonTermination :: SomeException nonTermination = toException NonTermination@@ -414,3 +436,7 @@ -- GHC's RTS calls this nestedAtomically :: SomeException nestedAtomically = toException NestedAtomically++-- GHC's RTS calls this+noMatchingContinuationPrompt :: SomeException+noMatchingContinuationPrompt = toException NoMatchingContinuationPrompt
Control/Monad/Fail.hs view
@@ -31,7 +31,7 @@ -- fail = {- ...fail implementation... -} -- @ ----- See <https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail>+-- See <https://gitlab.haskell.org/haskell/prime/-/wikis/libraries/proposals/monad-fail> -- for more details. -- -- @since 4.9.0.0@@ -60,6 +60,10 @@ -- @ -- fail _ = mzero -- @+--+-- @fail s@ should be an action that runs in the monad itself, not an+-- exception (except in instances of @MonadIO@). In particular,+-- @fail@ should not be implemented in terms of @error@. -- -- @since 4.9.0.0 class Monad m => MonadFail m where
Control/Monad/Fix.hs view
@@ -67,7 +67,7 @@ -- | @since 4.15 instance MonadFix Solo where mfix f = let a = f (unSolo a) in a- where unSolo (Solo x) = x+ where unSolo (MkSolo x) = x -- | @since 2.01 instance MonadFix Maybe where
Control/Monad/Zip.hs view
@@ -75,7 +75,7 @@ -- | @since 4.15.0.0 instance MonadZip Solo where mzipWith = liftM2- munzip (Solo (a, b)) = (Solo a, Solo b)+ munzip (MkSolo (a, b)) = (MkSolo a, MkSolo b) -- | @since 4.8.0.0 instance MonadZip Dual where
Data/Array/Byte.hs view
@@ -22,17 +22,19 @@ import Data.Bits ((.&.), unsafeShiftR) import Data.Data (mkNoRepType, Data(..), Typeable) import qualified Data.Foldable as F+import Data.Maybe (fromMaybe) import Data.Semigroup-import GHC.Show (intToDigit) import GHC.Exts+import GHC.Num.Integer (Integer(..))+import GHC.Show (intToDigit) import GHC.ST (ST(..), runST) import GHC.Word (Word8(..)) --- | Boxed wrapper for 'ByteArray#'.+-- | Lifted wrapper for 'ByteArray#'. -- -- Since 'ByteArray#' is an unlifted type and not a member of kind 'Data.Kind.Type', -- things like @[ByteArray#]@ or @IO ByteArray#@ are ill-typed. To work around this--- inconvenience this module provides a standard boxed wrapper, inhabiting 'Data.Kind.Type'.+-- inconvenience this module provides a standard lifted wrapper, inhabiting 'Data.Kind.Type'. -- Clients are expected to use 'ByteArray' in higher-level APIs, -- but wrap and unwrap 'ByteArray' internally as they please -- and use functions from "GHC.Exts".@@ -40,11 +42,11 @@ -- @since 4.17.0.0 data ByteArray = ByteArray ByteArray# --- | Boxed wrapper for 'MutableByteArray#'.+-- | Lifted wrapper for 'MutableByteArray#'. -- -- Since 'MutableByteArray#' is an unlifted type and not a member of kind 'Data.Kind.Type', -- things like @[MutableByteArray#]@ or @IO MutableByteArray#@ are ill-typed. To work around this--- inconvenience this module provides a standard boxed wrapper, inhabiting 'Data.Kind.Type'.+-- inconvenience this module provides a standard lifted wrapper, inhabiting 'Data.Kind.Type'. -- Clients are expected to use 'MutableByteArray' in higher-level APIs, -- but wrap and unwrap 'MutableByteArray' internally as they please -- and use functions from "GHC.Exts".@@ -99,34 +101,52 @@ -- | Create a 'ByteArray' from a list of a known length. If the length -- of the list does not match the given length, this throws an exception. byteArrayFromListN :: Int -> [Word8] -> ByteArray-byteArrayFromListN n ys = runST $ do+byteArrayFromListN n ys+ | n >= 0 = runST $ do marr <- newByteArray n let go !ix [] = if ix == n then return ()- else error $ "Data.Array.Byte.byteArrayFromListN: list length less than specified size"+ else errorWithoutStackTrace $ "Data.Array.Byte.byteArrayFromListN: list length less than specified size" go !ix (x : xs) = if ix < n then do writeByteArray marr ix x go (ix + 1) xs- else error $ "Data.Array.Byte.byteArrayFromListN: list length greater than specified size"+ else errorWithoutStackTrace $ "Data.Array.Byte.byteArrayFromListN: list length greater than specified size" go 0 ys unsafeFreezeByteArray marr+ | otherwise = errorWithoutStackTrace "Data.Array.Byte.ByteArrayFromListN: specified size is negative" -- | Copy a slice of an immutable byte array to a mutable byte array. -- -- /Note:/ this function does not do bounds or overlap checking.-copyByteArray+unsafeCopyByteArray :: MutableByteArray s -- ^ destination array -> Int -- ^ offset into destination array -> ByteArray -- ^ source array -> Int -- ^ offset into source array -> Int -- ^ number of bytes to copy -> ST s ()-{-# INLINE copyByteArray #-}-copyByteArray (MutableByteArray dst#) (I# doff#) (ByteArray src#) (I# soff#) (I# sz#) =+{-# INLINE unsafeCopyByteArray #-}+unsafeCopyByteArray (MutableByteArray dst#) (I# doff#) (ByteArray src#) (I# soff#) (I# sz#) = ST (\s# -> case copyByteArray# src# soff# dst# doff# sz# s# of s'# -> (# s'#, () #)) +-- | Copy a slice from one mutable byte array to another+-- or to the same mutable byte array.+--+-- /Note:/ this function does not do bounds checking.+unsafeCopyMutableByteArray+ :: MutableByteArray s -- ^ destination array+ -> Int -- ^ offset into destination array+ -> MutableByteArray s -- ^ source array+ -> Int -- ^ offset into source array+ -> Int -- ^ number of bytes to copy+ -> ST s ()+{-# INLINE unsafeCopyMutableByteArray #-}+unsafeCopyMutableByteArray (MutableByteArray dst#) (I# doff#) (MutableByteArray src#) (I# soff#) (I# sz#) =+ ST (\s# -> case copyMutableByteArray# src# soff# dst# doff# sz# s# of+ s'# -> (# s'#, () #))+ -- | @since 4.17.0.0 instance Data ByteArray where toConstr _ = error "toConstr"@@ -167,8 +187,7 @@ -- | Do two byte arrays share the same pointer? sameByteArray :: ByteArray# -> ByteArray# -> Bool sameByteArray ba1 ba2 =- case reallyUnsafePtrEquality# (unsafeCoerce# ba1 :: ()) (unsafeCoerce# ba2 :: ()) of- r -> isTrue# r+ case sameByteArray# ba1 ba2 of r -> isTrue# r -- | @since 4.17.0.0 instance Eq ByteArray where@@ -188,6 +207,7 @@ -- | Non-lexicographic ordering. This compares the lengths of -- the byte arrays first and uses a lexicographic ordering if -- the lengths are equal. Subject to change between major versions.+-- -- @since 4.17.0.0 instance Ord ByteArray where ba1@(ByteArray ba1#) `compare` ba2@(ByteArray ba2#)@@ -206,17 +226,23 @@ -- | Append two byte arrays. appendByteArray :: ByteArray -> ByteArray -> ByteArray-appendByteArray a b = runST $ do- marr <- newByteArray (sizeofByteArray a + sizeofByteArray b)- copyByteArray marr 0 a 0 (sizeofByteArray a)- copyByteArray marr (sizeofByteArray a) b 0 (sizeofByteArray b)+appendByteArray ba1 ba2 = runST $ do+ let n1 = sizeofByteArray ba1+ n2 = sizeofByteArray ba2+ totSz = fromMaybe (sizeOverflowError "appendByteArray")+ (checkedIntAdd n1 n2)+ marr <- newByteArray totSz+ unsafeCopyByteArray marr 0 ba1 0 n1+ unsafeCopyByteArray marr n1 ba2 0 n2 unsafeFreezeByteArray marr -- | Concatenate a list of 'ByteArray's. concatByteArray :: [ByteArray] -> ByteArray concatByteArray arrs = runST $ do- let len = calcLength arrs 0- marr <- newByteArray len+ let addLen acc arr = fromMaybe (sizeOverflowError "concatByteArray")+ (checkedIntAdd acc (sizeofByteArray arr))+ totLen = F.foldl' addLen 0 arrs+ marr <- newByteArray totLen pasteByteArrays marr 0 arrs unsafeFreezeByteArray marr @@ -224,39 +250,59 @@ pasteByteArrays :: MutableByteArray s -> Int -> [ByteArray] -> ST s () pasteByteArrays !_ !_ [] = return () pasteByteArrays !marr !ix (x : xs) = do- copyByteArray marr ix x 0 (sizeofByteArray x)+ unsafeCopyByteArray marr ix x 0 (sizeofByteArray x) pasteByteArrays marr (ix + sizeofByteArray x) xs --- | Compute total length of 'ByteArray's, increased by accumulator.-calcLength :: [ByteArray] -> Int -> Int-calcLength [] !n = n-calcLength (x : xs) !n = calcLength xs (sizeofByteArray x + n)- -- | An array of zero length. emptyByteArray :: ByteArray emptyByteArray = runST (newByteArray 0 >>= unsafeFreezeByteArray) --- | Replicate 'ByteArray' given number of times and concatenate all together.-replicateByteArray :: Int -> ByteArray -> ByteArray-replicateByteArray n arr = runST $ do- marr <- newByteArray (n * sizeofByteArray arr)- let go i = if i < n- then do- copyByteArray marr (i * sizeofByteArray arr) arr 0 (sizeofByteArray arr)- go (i + 1)- else return ()- go 0+-- | Concatenates a given number of copies of an input ByteArray.+stimesPolymorphic :: Integral t => t -> ByteArray -> ByteArray+{-# INLINABLE stimesPolymorphic #-}+stimesPolymorphic nRaw !arr = case toInteger nRaw of+ IS nInt#+ | isTrue# (nInt# ># 0#) -> stimesPositiveInt (I# nInt#) arr+ | isTrue# (nInt# >=# 0#) -> emptyByteArray+ -- This check is redundant for unsigned types like Word.+ -- Using >=# intead of ==# may make it easier for GHC to notice that.+ | otherwise -> stimesNegativeErr+ IP _+ | sizeofByteArray arr == 0 -> emptyByteArray+ | otherwise -> stimesOverflowErr+ IN _ -> stimesNegativeErr++stimesNegativeErr :: ByteArray+stimesNegativeErr =+ errorWithoutStackTrace "stimes @ByteArray: negative multiplier"++stimesOverflowErr :: a+stimesOverflowErr = sizeOverflowError "stimes"++stimesPositiveInt :: Int -> ByteArray -> ByteArray+{-# NOINLINE stimesPositiveInt #-}+-- NOINLINE to prevent its duplication in specialisations of stimesPolymorphic+stimesPositiveInt n arr = runST $ do+ let inpSz = sizeofByteArray arr+ tarSz = fromMaybe stimesOverflowErr (checkedIntMultiply n inpSz)+ marr <- newByteArray tarSz+ unsafeCopyByteArray marr 0 arr 0 inpSz+ let+ halfTarSz = (tarSz - 1) `div` 2+ go copied+ | copied <= halfTarSz = do+ unsafeCopyMutableByteArray marr copied marr 0 copied+ go (copied + copied)+ | otherwise = unsafeCopyMutableByteArray marr copied marr 0 (tarSz - copied)+ go inpSz unsafeFreezeByteArray marr -- | @since 4.17.0.0 instance Semigroup ByteArray where (<>) = appendByteArray sconcat = mconcat . F.toList- stimes i arr- | itgr < 1 = emptyByteArray- | itgr <= (fromIntegral (maxBound :: Int)) = replicateByteArray (fromIntegral itgr) arr- | otherwise = error "Data.Array.Byte#stimes: cannot allocate the requested amount of memory"- where itgr = toInteger i :: Integer+ {-# INLINE stimes #-}+ stimes = stimesPolymorphic -- | @since 4.17.0.0 instance Monoid ByteArray where@@ -270,3 +316,23 @@ toList = byteArrayToList fromList xs = byteArrayFromListN (length xs) xs fromListN = byteArrayFromListN+++sizeOverflowError :: String -> a+sizeOverflowError fun+ = errorWithoutStackTrace $ "Data.Array.Byte." ++ fun ++ ": size overflow"+++-- TODO: Export these from a better home.++-- | Adds two @Int@s, returning @Nothing@ if this results in an overflow+checkedIntAdd :: Int -> Int -> Maybe Int+checkedIntAdd (I# x#) (I# y#) = case addIntC# x# y# of+ (# res, 0# #) -> Just (I# res)+ _ -> Nothing++-- | Multiplies two @Int@s, returning @Nothing@ if this results in an overflow+checkedIntMultiply :: Int -> Int -> Maybe Int+checkedIntMultiply (I# x#) (I# y#) = case timesInt2# x# y# of+ (# 0#, _hi, lo #) -> Just (I# lo)+ _ -> Nothing
+ Data/Bifoldable1.hs view
@@ -0,0 +1,49 @@+-- |+-- Copyright: Edward Kmett, Oleg Grenrus+-- License: BSD-3-Clause+--++{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE Safe #-}++module Data.Bifoldable1 where++import Control.Applicative (Const (..))+import Data.Bifoldable (Bifoldable (..))+import Data.Semigroup (Arg (..), Semigroup (..))+import Prelude (Either (..), id)++class Bifoldable t => Bifoldable1 t where+ bifold1 :: Semigroup m => t m m -> m+ bifold1 = bifoldMap1 id id+ {-# INLINE bifold1 #-}++ bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> t a b -> m++instance Bifoldable1 Arg where+ bifoldMap1 f g (Arg a b) = f a <> g b++instance Bifoldable1 Either where+ bifoldMap1 f _ (Left a) = f a+ bifoldMap1 _ g (Right b) = g b+ {-# INLINE bifoldMap1 #-}++instance Bifoldable1 (,) where+ bifoldMap1 f g (a, b) = f a <> g b+ {-# INLINE bifoldMap1 #-}++instance Bifoldable1 ((,,) x) where+ bifoldMap1 f g (_,a,b) = f a <> g b+ {-# INLINE bifoldMap1 #-}++instance Bifoldable1 ((,,,) x y) where+ bifoldMap1 f g (_,_,a,b) = f a <> g b+ {-# INLINE bifoldMap1 #-}++instance Bifoldable1 ((,,,,) x y z) where+ bifoldMap1 f g (_,_,_,a,b) = f a <> g b+ {-# INLINE bifoldMap1 #-}++instance Bifoldable1 Const where+ bifoldMap1 f _ (Const a) = f a+ {-# INLINE bifoldMap1 #-}
Data/Bifunctor.hs view
@@ -1,5 +1,6 @@-{-# LANGUAGE Safe #-} {-# LANGUAGE CPP #-}+{-# LANGUAGE QuantifiedConstraints #-}+{-# LANGUAGE Safe #-} ----------------------------------------------------------------------------- -- |@@ -39,8 +40,12 @@ -- arguments are covariant. -- -- You can define a 'Bifunctor' by either defining 'bimap' or by--- defining both 'first' and 'second'.+-- defining both 'first' and 'second'. A partially applied 'Bifunctor'+-- must be a 'Functor' and the 'second' method must agree with 'fmap'.+-- From this it follows that: --+-- @'second' 'id' = 'id'@+-- -- If you supply 'bimap', you should ensure that: -- -- @'bimap' 'id' 'id' ≡ 'id'@@@ -64,8 +69,10 @@ -- 'second' (f '.' g) ≡ 'second' f '.' 'second' g -- @ --+-- Since 4.18.0.0 'Functor' is a superclass of 'Bifunctor.+-- -- @since 4.8.0.0-class Bifunctor p where+class (forall a. Functor (p a)) => Bifunctor p where {-# MINIMAL bimap | first, second #-} -- | Map over both arguments at the same time.@@ -113,8 +120,17 @@ second = bimap id ---- | @since 4.8.0.0+-- | Class laws for tuples hold only up to laziness. Both+-- 'first' 'id' and 'second' 'id' are lazier than 'id' (and 'fmap' 'id'):+--+-- >>> first id (undefined :: (Int, Word)) `seq` ()+-- ()+-- >>> second id (undefined :: (Int, Word)) `seq` ()+-- ()+-- >>> id (undefined :: (Int, Word)) `seq` ()+-- *** Exception: Prelude.undefined+--+-- @since 4.8.0.0 instance Bifunctor (,) where bimap f g ~(a, b) = (f a, g b)
Data/Char.hs view
@@ -6,7 +6,7 @@ -- Module : Data.Char -- Copyright : (c) The University of Glasgow 2001 -- License : BSD-style (see the file libraries/base/LICENSE)--- +-- -- Maintainer : libraries@haskell.org -- Stability : stable -- Portability : portable@@ -24,7 +24,7 @@ -- punctuation, symbols, separators (including spaces) and others -- (including control characters). , isControl, isSpace- , isLower, isUpper, isAlpha, isAlphaNum, isPrint+ , isLower, isLowerCase, isUpper, isUpperCase, isAlpha, isAlphaNum, isPrint , isDigit, isOctDigit, isHexDigit , isLetter, isMark, isNumber, isPunctuation, isSymbol, isSeparator
Data/Complex.hs view
@@ -35,6 +35,7 @@ ) where +import Prelude hiding (Applicative(..)) import GHC.Base (Applicative (..)) import GHC.Generics (Generic, Generic1) import GHC.Float (Floating(..))
Data/Data.hs view
@@ -21,8 +21,6 @@ -- Stability : stable -- Portability : non-portable (local universal quantification) ----- \"Scrap your boilerplate\" --- Generic programming in Haskell. See--- <http://www.haskell.org/haskellwiki/Research_papers/Generics#Scrap_your_boilerplate.21>. -- This module provides the 'Data' class with its primitives for -- generic programming, along with instances for many datatypes. It -- corresponds to a merge between the previous "Data.Generics.Basics"@@ -30,8 +28,8 @@ -- not present in this module were moved to the -- @Data.Generics.Instances@ module in the @syb@ package. ----- For more information, please visit the new--- SYB wiki: <http://www.cs.uu.nl/wiki/bin/view/GenericProgramming/SYB>.+-- \"Scrap your boilerplate\" --- Generic programming in Haskell. See+-- <https://wiki.haskell.org/Research_papers/Generics#Scrap_your_boilerplate.21>. -- ----------------------------------------------------------------------------- @@ -142,6 +140,7 @@ import GHC.Real -- So we can give Data instance for Ratio --import GHC.IOBase -- So we can give Data instance for IO, Handle import GHC.Ptr -- So we can give Data instance for Ptr+import Foreign.C.ConstPtr -- So we can give Data instance for ConstPtr import GHC.ForeignPtr -- So we can give Data instance for ForeignPtr import Foreign.Ptr (IntPtr(..), WordPtr(..)) -- So we can give Data instance for IntPtr and WordPtr@@ -1189,6 +1188,9 @@ -- | @since 4.0.0.0 deriving instance (Data a, Data b) => Data (Either a b) +-- | @since 4.8.0.0+deriving instance Data Void+ -- | @since 4.0.0.0 deriving instance Data () @@ -1225,6 +1227,9 @@ gunfold _ _ = errorWithoutStackTrace "Data.Data.gunfold(Ptr)" dataTypeOf _ = mkNoRepType "GHC.Ptr.Ptr" dataCast1 x = gcast1 x++-- | @since 4.18.0.0+deriving instance Data a => Data (ConstPtr a) ------------------------------------------------------------------------------
Data/Foldable.hs view
@@ -1175,7 +1175,7 @@ where c m k = m >> k {-# INLINE c #-} --- | The sum of a collection of actions, generalizing 'concat'.+-- | The sum of a collection of actions using '(<|>)', generalizing 'concat'. -- -- 'asum' is just like 'msum', but generalised to 'Alternative'. --@@ -1189,10 +1189,16 @@ {-# INLINE asum #-} asum = foldr (<|>) empty --- | The sum of a collection of actions, generalizing 'concat'.+-- | The sum of a collection of actions using '(<|>)', generalizing 'concat'. -- -- 'msum' is just like 'asum', but specialised to 'MonadPlus'. --+-- ==== __Examples__+--+-- Basic usage, using the 'MonadPlus' instance for 'Maybe':+--+-- >>> msum [Just "Hello", Nothing, Just "World"]+-- Just "Hello" msum :: (Foldable t, MonadPlus m) => t (m a) -> m a {-# INLINE msum #-} msum = asum
+ Data/Foldable1.hs view
@@ -0,0 +1,518 @@+-- |+-- Copyright: Edward Kmett, Oleg Grenrus+-- License: BSD-3-Clause+--++{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE PolyKinds #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE Trustworthy #-}+{-# LANGUAGE TypeOperators #-}++-- | A class of non-empty data structures that can be folded to a summary value.+module Data.Foldable1 (+ Foldable1(..),+ foldr1, foldr1',+ foldl1, foldl1',+ intercalate1,+ foldrM1,+ foldlM1,+ foldrMapM1,+ foldlMapM1,+ maximumBy,+ minimumBy,+ ) where++import Data.Foldable (Foldable, foldlM, foldr)+import Data.List (foldl, foldl')+import Data.List.NonEmpty (NonEmpty (..))+import Data.Semigroup+ (Dual (..), First (..), Last (..), Max (..), Min (..), Product (..),+ Semigroup (..), Sum (..))+import GHC.Tuple (Solo (..))+import Prelude+ (Maybe (..), Monad (..), Ord, Ordering (..), id, seq, ($!), ($), (.),+ (=<<), flip, const, error)++import qualified Data.List.NonEmpty as NE++import Data.Complex (Complex (..))+import GHC.Generics+ (M1 (..), Par1 (..), Rec1 (..), V1, (:*:) (..), (:+:) (..), (:.:) (..))++import Data.Ord (Down (..))++import qualified Data.Monoid as Mon++-- Instances+import Data.Functor.Compose (Compose (..))+import Data.Functor.Identity (Identity (..))++import qualified Data.Functor.Product as Functor+import qualified Data.Functor.Sum as Functor++-- coerce+import Data.Coerce (Coercible, coerce)++-- $setup+-- >>> import Prelude hiding (foldr1, foldl1, head, last, minimum, maximum)++-------------------------------------------------------------------------------+-- Foldable1 type class+-------------------------------------------------------------------------------++-- | Non-empty data structures that can be folded.+class Foldable t => Foldable1 t where+ {-# MINIMAL foldMap1 | foldrMap1 #-}++ -- At some point during design it was possible to define this class using+ -- only 'toNonEmpty'. But it seems a bad idea in general.+ --+ -- So currently we require either foldMap1 or foldrMap1+ --+ -- * foldMap1 defined using foldrMap1+ -- * foldrMap1 defined using foldMap1+ --+ -- One can always define an instance using the following pattern:+ --+ -- toNonEmpty = ...+ -- foldMap f = foldMap f . toNonEmpty+ -- foldrMap1 f g = foldrMap1 f g . toNonEmpty++ -- | Combine the elements of a structure using a semigroup.+ fold1 :: Semigroup m => t m -> m+ fold1 = foldMap1 id++ -- | Map each element of the structure to a semigroup,+ -- and combine the results.+ --+ -- >>> foldMap1 Sum (1 :| [2, 3, 4])+ -- Sum {getSum = 10}+ --+ foldMap1 :: Semigroup m => (a -> m) -> t a -> m+ foldMap1 f = foldrMap1 f (\a m -> f a <> m)++ -- | A variant of 'foldMap1' that is strict in the accumulator.+ --+ -- >>> foldMap1' Sum (1 :| [2, 3, 4])+ -- Sum {getSum = 10}+ --+ foldMap1' :: Semigroup m => (a -> m) -> t a -> m+ foldMap1' f = foldlMap1' f (\m a -> m <> f a)++ -- | List of elements of a structure, from left to right.+ --+ -- >>> toNonEmpty (Identity 2)+ -- 2 :| []+ --+ toNonEmpty :: t a -> NonEmpty a+ toNonEmpty = runNonEmptyDList . foldMap1 singleton++ -- | The largest element of a non-empty structure.+ --+ -- >>> maximum (32 :| [64, 8, 128, 16])+ -- 128+ --+ maximum :: Ord a => t a -> a+ maximum = getMax #. foldMap1' Max++ -- | The least element of a non-empty structure.+ --+ -- >>> minimum (32 :| [64, 8, 128, 16])+ -- 8+ --+ minimum :: Ord a => t a -> a+ minimum = getMin #. foldMap1' Min++ -- | The first element of a non-empty structure.+ --+ -- >>> head (1 :| [2, 3, 4])+ -- 1+ --+ head :: t a -> a+ head = getFirst #. foldMap1 First++ -- | The last element of a non-empty structure.+ --+ -- >>> last (1 :| [2, 3, 4])+ -- 4+ --+ last :: t a -> a+ last = getLast #. foldMap1 Last++ -- | Generalized 'foldr1'.+ foldrMap1 :: (a -> b) -> (a -> b -> b) -> t a -> b+ foldrMap1 f g xs =+ appFromMaybe (foldMap1 (FromMaybe #. h) xs) Nothing+ where+ h a Nothing = f a+ h a (Just b) = g a b++ -- | Generalized 'foldl1''.+ foldlMap1' :: (a -> b) -> (b -> a -> b) -> t a -> b+ foldlMap1' f g xs =+ foldrMap1 f' g' xs SNothing+ where+ -- f' :: a -> SMaybe b -> b+ f' a SNothing = f a+ f' a (SJust b) = g b a++ -- g' :: a -> (SMaybe b -> b) -> SMaybe b -> b+ g' a x SNothing = x $! SJust (f a)+ g' a x (SJust b) = x $! SJust (g b a)++ -- | Generalized 'foldl1'.+ foldlMap1 :: (a -> b) -> (b -> a -> b) -> t a -> b+ foldlMap1 f g xs =+ appFromMaybe (getDual (foldMap1 ((Dual . FromMaybe) #. h) xs)) Nothing+ where+ h a Nothing = f a+ h a (Just b) = g b a++ -- | Generalized 'foldr1''.+ foldrMap1' :: (a -> b) -> (a -> b -> b) -> t a -> b+ foldrMap1' f g xs =+ foldlMap1 f' g' xs SNothing+ where+ f' a SNothing = f a+ f' a (SJust b) = g a b++ g' bb a SNothing = bb $! SJust (f a)+ g' bb a (SJust b) = bb $! SJust (g a b)++-------------------------------------------------------------------------------+-- Combinators+-------------------------------------------------------------------------------++-- | Right-associative fold of a structure.+--+-- In the case of lists, 'foldr1', when applied to a binary operator,+-- and a list, reduces the list using the binary operator,+-- from right to left:+--+-- > foldr1 f [x1, x2, ..., xn] == x1 `f` (x2 `f` ... (xn1 `f` xn )...)+--+-- Note that, since the head of the resulting expression is produced by+-- an application of the operator to the first element of the list,+-- 'foldr1' can produce a terminating expression from an infinite list.+--+-- For a general 'Foldable1' structure this should be semantically identical+-- to,+--+-- @foldr1 f = foldr1 f . 'toNonEmpty'@+--+foldr1 :: Foldable1 t => (a -> a -> a) -> t a -> a+foldr1 = foldrMap1 id+{-# INLINE foldr1 #-}++-- | Right-associative fold of a structure, but with strict application of+-- the operator.+--+foldr1' :: Foldable1 t => (a -> a -> a) -> t a -> a+foldr1' = foldrMap1' id+{-# INLINE foldr1' #-}++-- | Left-associative fold of a structure.+--+-- In the case of lists, 'foldl1', when applied to a binary+-- operator, and a list, reduces the list using the binary operator,+-- from left to right:+--+-- > foldl1 f [x1, x2, ..., xn] == (...((x1 `f` x2) `f`...) `f` xn+--+-- Note that to produce the outermost application of the operator the+-- entire input list must be traversed. This means that 'foldl1' will+-- diverge if given an infinite list.+--+-- Also note that if you want an efficient left-fold, you probably want to+-- use 'foldl1'' instead of 'foldl1'. The reason for this is that latter does+-- not force the "inner" results (e.g. @x1 \`f\` x2@ in the above example)+-- before applying them to the operator (e.g. to @(\`f\` x3)@). This results+-- in a thunk chain \(\mathcal{O}(n)\) elements long, which then must be+-- evaluated from the outside-in.+--+-- For a general 'Foldable1' structure this should be semantically identical+-- to,+--+-- @foldl1 f z = foldl1 f . 'toNonEmpty'@+--+foldl1 :: Foldable1 t => (a -> a -> a) -> t a -> a+foldl1 = foldlMap1 id+{-# INLINE foldl1 #-}++-- | Left-associative fold of a structure but with strict application of+-- the operator.+--+-- This ensures that each step of the fold is forced to weak head normal+-- form before being applied, avoiding the collection of thunks that would+-- otherwise occur. This is often what you want to strictly reduce a finite+-- list to a single, monolithic result (e.g. 'length').+--+-- For a general 'Foldable1' structure this should be semantically identical+-- to,+--+-- @foldl1' f z = foldl1 f . 'toNonEmpty'@+--+foldl1' :: Foldable1 t => (a -> a -> a) -> t a -> a+foldl1' = foldlMap1' id+{-# INLINE foldl1' #-}++-- | Insert an @m@ between each pair of @t m@.+--+-- >>> intercalate1 ", " $ "hello" :| ["how", "are", "you"]+-- "hello, how, are, you"+--+-- >>> intercalate1 ", " $ "hello" :| []+-- "hello"+--+-- >>> intercalate1 mempty $ "I" :| ["Am", "Fine", "You?"]+-- "IAmFineYou?"+--+intercalate1 :: (Foldable1 t, Semigroup m) => m -> t m -> m+intercalate1 = flip intercalateMap1 id++intercalateMap1 :: (Foldable1 t, Semigroup m) => m -> (a -> m) -> t a -> m+intercalateMap1 j f = flip joinee j . foldMap1 (JoinWith . const . f)++-- | Monadic fold over the elements of a non-empty structure,+-- associating to the right, i.e. from right to left.+foldrM1 :: (Foldable1 t, Monad m) => (a -> a -> m a) -> t a -> m a+foldrM1 = foldrMapM1 return++-- | Map variant of 'foldrM1'.+foldrMapM1 :: (Foldable1 t, Monad m) => (a -> m b) -> (a -> b -> m b) -> t a -> m b+foldrMapM1 g f = go . toNonEmpty+ where+ go (e:|es) =+ case es of+ [] -> g e+ x:xs -> f e =<< go (x:|xs)++-- | Monadic fold over the elements of a non-empty structure,+-- associating to the left, i.e. from left to right.+foldlM1 :: (Foldable1 t, Monad m) => (a -> a -> m a) -> t a -> m a+foldlM1 = foldlMapM1 return++-- | Map variant of 'foldlM1'.+foldlMapM1 :: (Foldable1 t, Monad m) => (a -> m b) -> (b -> a -> m b) -> t a -> m b+foldlMapM1 g f t = g x >>= \y -> foldlM f y xs+ where x:|xs = toNonEmpty t++-- | The largest element of a non-empty structure with respect to the+-- given comparison function.+maximumBy :: Foldable1 t => (a -> a -> Ordering) -> t a -> a+maximumBy cmp = foldl1' max'+ where max' x y = case cmp x y of+ GT -> x+ _ -> y++-- | The least element of a non-empty structure with respect to the+-- given comparison function.+minimumBy :: Foldable1 t => (a -> a -> Ordering) -> t a -> a+minimumBy cmp = foldl1' min'+ where min' x y = case cmp x y of+ GT -> y+ _ -> x++-------------------------------------------------------------------------------+-- Auxiliary types+-------------------------------------------------------------------------------++-- | Used for default toNonEmpty implementation.+newtype NonEmptyDList a = NEDL { unNEDL :: [a] -> NonEmpty a }++instance Semigroup (NonEmptyDList a) where+ xs <> ys = NEDL (unNEDL xs . NE.toList . unNEDL ys)+ {-# INLINE (<>) #-}++-- | Create dlist with a single element+singleton :: a -> NonEmptyDList a+singleton = NEDL #. (:|)++-- | Convert a dlist to a non-empty list+runNonEmptyDList :: NonEmptyDList a -> NonEmpty a+runNonEmptyDList = ($ []) . unNEDL+{-# INLINE runNonEmptyDList #-}++-- | Used for foldrMap1 and foldlMap1 definitions+newtype FromMaybe b = FromMaybe { appFromMaybe :: Maybe b -> b }++instance Semigroup (FromMaybe b) where+ FromMaybe f <> FromMaybe g = FromMaybe (f . Just . g)++-- | Strict maybe, used to implement default foldlMap1' etc.+data SMaybe a = SNothing | SJust !a++-- | Used to implement intercalate1/Map+newtype JoinWith a = JoinWith {joinee :: (a -> a)}++instance Semigroup a => Semigroup (JoinWith a) where+ JoinWith a <> JoinWith b = JoinWith $ \j -> a j <> j <> b j++-------------------------------------------------------------------------------+-- Instances for misc base types+-------------------------------------------------------------------------------++instance Foldable1 NonEmpty where+ foldMap1 f (x :| xs) = go (f x) xs where+ go y [] = y+ go y (z : zs) = y <> go (f z) zs++ foldMap1' f (x :| xs) = foldl' (\m y -> m <> f y) (f x) xs++ toNonEmpty = id++ foldrMap1 g f (x :| xs) = go x xs where+ go y [] = g y+ go y (z : zs) = f y (go z zs)++ foldlMap1 g f (x :| xs) = foldl f (g x) xs+ foldlMap1' g f (x :| xs) = let gx = g x in gx `seq` foldl' f gx xs++ head = NE.head+ last = NE.last++instance Foldable1 Down where+ foldMap1 = coerce++instance Foldable1 Complex where+ foldMap1 f (x :+ y) = f x <> f y++ toNonEmpty (x :+ y) = x :| y : []++-------------------------------------------------------------------------------+-- Instances for tuples+-------------------------------------------------------------------------------++-- 3+ tuples are not Foldable/Traversable++instance Foldable1 Solo where+ foldMap1 f (MkSolo y) = f y+ toNonEmpty (MkSolo x) = x :| []+ minimum (MkSolo x) = x+ maximum (MkSolo x) = x+ head (MkSolo x) = x+ last (MkSolo x) = x++instance Foldable1 ((,) a) where+ foldMap1 f (_, y) = f y+ toNonEmpty (_, x) = x :| []+ minimum (_, x) = x+ maximum (_, x) = x+ head (_, x) = x+ last (_, x) = x++-------------------------------------------------------------------------------+-- Monoid / Semigroup instances+-------------------------------------------------------------------------------++instance Foldable1 Dual where+ foldMap1 = coerce++instance Foldable1 Sum where+ foldMap1 = coerce++instance Foldable1 Product where+ foldMap1 = coerce++instance Foldable1 Min where+ foldMap1 = coerce++instance Foldable1 Max where+ foldMap1 = coerce++instance Foldable1 First where+ foldMap1 = coerce++instance Foldable1 Last where+ foldMap1 = coerce++deriving instance (Foldable1 f) => Foldable1 (Mon.Alt f)++deriving instance (Foldable1 f) => Foldable1 (Mon.Ap f)++-------------------------------------------------------------------------------+-- GHC.Generics instances+-------------------------------------------------------------------------------++instance Foldable1 V1 where+ foldMap1 _ x = x `seq` error "foldMap1 @V1"++instance Foldable1 Par1 where+ foldMap1 = coerce++deriving instance Foldable1 f => Foldable1 (Rec1 f)++deriving instance Foldable1 f => Foldable1 (M1 i c f)++instance (Foldable1 f, Foldable1 g) => Foldable1 (f :+: g) where+ foldMap1 f (L1 x) = foldMap1 f x+ foldMap1 f (R1 y) = foldMap1 f y++instance (Foldable1 f, Foldable1 g) => Foldable1 (f :*: g) where+ foldMap1 f (x :*: y) = foldMap1 f x <> foldMap1 f y++instance (Foldable1 f, Foldable1 g) => Foldable1 (f :.: g) where+ foldMap1 f = foldMap1 (foldMap1 f) . unComp1++-------------------------------------------------------------------------------+-- Extra instances+-------------------------------------------------------------------------------++instance Foldable1 Identity where+ foldMap1 = coerce++ foldrMap1 g _ = coerce g+ foldrMap1' g _ = coerce g+ foldlMap1 g _ = coerce g+ foldlMap1' g _ = coerce g++ toNonEmpty (Identity x) = x :| []++ last = coerce+ head = coerce+ minimum = coerce+ maximum = coerce++-- | It would be enough for either half of a product to be 'Foldable1'.+-- Other could be 'Foldable'.+instance (Foldable1 f, Foldable1 g) => Foldable1 (Functor.Product f g) where+ foldMap1 f (Functor.Pair x y) = foldMap1 f x <> foldMap1 f y+ foldrMap1 g f (Functor.Pair x y) = foldr f (foldrMap1 g f y) x++ head (Functor.Pair x _) = head x+ last (Functor.Pair _ y) = last y++instance (Foldable1 f, Foldable1 g) => Foldable1 (Functor.Sum f g) where+ foldMap1 f (Functor.InL x) = foldMap1 f x+ foldMap1 f (Functor.InR y) = foldMap1 f y++ foldrMap1 g f (Functor.InL x) = foldrMap1 g f x+ foldrMap1 g f (Functor.InR y) = foldrMap1 g f y++ toNonEmpty (Functor.InL x) = toNonEmpty x+ toNonEmpty (Functor.InR y) = toNonEmpty y++ head (Functor.InL x) = head x+ head (Functor.InR y) = head y+ last (Functor.InL x) = last x+ last (Functor.InR y) = last y++ minimum (Functor.InL x) = minimum x+ minimum (Functor.InR y) = minimum y+ maximum (Functor.InL x) = maximum x+ maximum (Functor.InR y) = maximum y++instance (Foldable1 f, Foldable1 g) => Foldable1 (Compose f g) where+ foldMap1 f = foldMap1 (foldMap1 f) . getCompose++ foldrMap1 f g = foldrMap1 (foldrMap1 f g) (\xs x -> foldr g x xs) . getCompose++ head = head . head . getCompose+ last = last . last . getCompose++(#.) :: Coercible b c => (b -> c) -> (a -> b) -> a -> c+(#.) _f = coerce
Data/Function.hs view
@@ -25,9 +25,11 @@ , (&) , fix , on+ , applyWhen ) where import GHC.Base ( ($), (.), id, const, flip )+import Data.Bool ( Bool(..) ) infixl 0 `on` infixl 1 &@@ -120,6 +122,33 @@ -- @since 4.8.0.0 (&) :: a -> (a -> b) -> b x & f = f x++-- | 'applyWhen' applies a function to a value if a condition is true,+-- otherwise, it returns the value unchanged.+--+-- It is equivalent to @'flip' ('Data.Bool.bool' 'id')@.+--+-- Algebraic properties:+--+-- * @applyWhen 'True' = 'id'@+--+-- * @applyWhen 'False' f = 'id'@+--+-- @since 4.18.0.0+applyWhen :: Bool -> (a -> a) -> a -> a+applyWhen True f x = f x+applyWhen False _ x = x+-- Proofs:+--+-- flip bool id = \q f -> bool id f q+-- = \q f -> case q of+-- True -> f = \x -> f x+-- False -> id = \x -> x ∎+--+-- applyWhen True = \f x -> f x+-- = \f -> \x -> f x = \f -> f = id ∎+--+-- applyWhen False f = \x -> x = id ∎ -- $setup -- >>> import Prelude
Data/Functor/Classes.hs view
@@ -1,7 +1,10 @@ {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE InstanceSigs #-} {-# LANGUAGE Safe #-}+{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE QuantifiedConstraints #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Functor.Classes@@ -91,8 +94,18 @@ -- | Lifting of the 'Eq' class to unary type constructors. --+-- Any instance should be subject to the following law that canonicity+-- is preserved:+--+-- @liftEq (==)@ = @(==)@+--+-- This class therefore represents the generalization of 'Eq' by+-- decomposing its main method into a canonical lifting on a canonical+-- inner method, so that the lifting can be reused for other arguments+-- than the canonical one.+-- -- @since 4.9.0.0-class Eq1 f where+class (forall a. Eq a => Eq (f a)) => Eq1 f where -- | Lift an equality test through the type constructor. -- -- The function will usually be applied to an equality function,@@ -102,6 +115,10 @@ -- -- @since 4.9.0.0 liftEq :: (a -> b -> Bool) -> f a -> f b -> Bool+ default liftEq+ :: (f ~ f' c, Eq2 f', Eq c)+ => (a -> b -> Bool) -> f a -> f b -> Bool+ liftEq = liftEq2 (==) -- | Lift the standard @('==')@ function through the type constructor. --@@ -111,8 +128,18 @@ -- | Lifting of the 'Ord' class to unary type constructors. --+-- Any instance should be subject to the following law that canonicity+-- is preserved:+--+-- @liftCompare compare@ = 'compare'+--+-- This class therefore represents the generalization of 'Ord' by+-- decomposing its main method into a canonical lifting on a canonical+-- inner method, so that the lifting can be reused for other arguments+-- than the canonical one.+-- -- @since 4.9.0.0-class (Eq1 f) => Ord1 f where+class (Eq1 f, forall a. Ord a => Ord (f a)) => Ord1 f where -- | Lift a 'compare' function through the type constructor. -- -- The function will usually be applied to a comparison function,@@ -122,6 +149,10 @@ -- -- @since 4.9.0.0 liftCompare :: (a -> b -> Ordering) -> f a -> f b -> Ordering+ default liftCompare+ :: (f ~ f' c, Ord2 f', Ord c)+ => (a -> b -> Ordering) -> f a -> f b -> Ordering+ liftCompare = liftCompare2 compare -- | Lift the standard 'compare' function through the type constructor. --@@ -131,6 +162,22 @@ -- | Lifting of the 'Read' class to unary type constructors. --+-- Any instance should be subject to the following laws that canonicity+-- is preserved:+--+-- @liftReadsPrec readsPrec readList@ = 'readsPrec'+--+-- @liftReadList readsPrec readList@ = 'readList'+--+-- @liftReadPrec readPrec readListPrec@ = 'readPrec'+--+-- @liftReadListPrec readPrec readListPrec@ = 'readListPrec'+--+-- This class therefore represents the generalization of 'Read' by+-- decomposing it's methods into a canonical lifting on a canonical+-- inner method, so that the lifting can be reused for other arguments+-- than the canonical one.+-- -- Both 'liftReadsPrec' and 'liftReadPrec' exist to match the interface -- provided in the 'Read' type class, but it is recommended to implement -- 'Read1' instances using 'liftReadPrec' as opposed to 'liftReadsPrec', since@@ -145,7 +192,7 @@ -- For more information, refer to the documentation for the 'Read' class. -- -- @since 4.9.0.0-class Read1 f where+class (forall a. Read a => Read (f a)) => Read1 f where {-# MINIMAL liftReadsPrec | liftReadPrec #-} -- | 'readsPrec' function for an application of the type constructor@@ -219,14 +266,30 @@ -- | Lifting of the 'Show' class to unary type constructors. --+-- Any instance should be subject to the following laws that canonicity+-- is preserved:+--+-- @liftShowsPrec showsPrec showList@ = 'showsPrec'+--+-- @liftShowList showsPrec showList@ = 'showList'+--+-- This class therefore represents the generalization of 'Show' by+-- decomposing it's methods into a canonical lifting on a canonical+-- inner method, so that the lifting can be reused for other arguments+-- than the canonical one.+-- -- @since 4.9.0.0-class Show1 f where+class (forall a. Show a => Show (f a)) => Show1 f where -- | 'showsPrec' function for an application of the type constructor -- based on 'showsPrec' and 'showList' functions for the argument type. -- -- @since 4.9.0.0 liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> f a -> ShowS+ default liftShowsPrec+ :: (f ~ f' b, Show2 f', Show b)+ => (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> f a -> ShowS+ liftShowsPrec = liftShowsPrec2 showsPrec showList -- | 'showList' function for an application of the type constructor -- based on 'showsPrec' and 'showList' functions for the argument type.@@ -248,7 +311,7 @@ -- | Lifting of the 'Eq' class to binary type constructors. -- -- @since 4.9.0.0-class Eq2 f where+class (forall a. Eq a => Eq1 (f a)) => Eq2 f where -- | Lift equality tests through the type constructor. -- -- The function will usually be applied to equality functions,@@ -268,7 +331,7 @@ -- | Lifting of the 'Ord' class to binary type constructors. -- -- @since 4.9.0.0-class (Eq2 f) => Ord2 f where+class (Eq2 f, forall a. Ord a => Ord1 (f a)) => Ord2 f where -- | Lift 'compare' functions through the type constructor. -- -- The function will usually be applied to comparison functions,@@ -302,7 +365,7 @@ -- For more information, refer to the documentation for the 'Read' class. -- -- @since 4.9.0.0-class Read2 f where+class (forall a. Read a => Read1 (f a)) => Read2 f where {-# MINIMAL liftReadsPrec2 | liftReadPrec2 #-} -- | 'readsPrec' function for an application of the type constructor@@ -385,7 +448,7 @@ -- | Lifting of the 'Show' class to binary type constructors. -- -- @since 4.9.0.0-class Show2 f where+class (forall a. Show a => Show1 (f a)) => Show2 f where -- | 'showsPrec' function for an application of the type constructor -- based on 'showsPrec' and 'showList' functions for the argument types. --@@ -514,7 +577,7 @@ -- | @since 4.15 instance Eq1 Solo where- liftEq eq (Solo a) (Solo b) = a `eq` b+ liftEq eq (MkSolo a) (MkSolo b) = a `eq` b -- | @since 4.9.0.0 instance (Eq a) => Eq1 ((,) a) where@@ -522,7 +585,7 @@ -- | @since 4.15 instance Ord1 Solo where- liftCompare cmp (Solo a) (Solo b) = cmp a b+ liftCompare cmp (MkSolo a) (MkSolo b) = cmp a b -- | @since 4.9.0.0 instance (Ord a) => Ord1 ((,) a) where@@ -530,7 +593,7 @@ -- | @since 4.15 instance Read1 Solo where- liftReadPrec rp _ = readData (readUnaryWith rp "Solo" Solo)+ liftReadPrec rp _ = readData (readUnaryWith rp "MkSolo" MkSolo) liftReadListPrec = liftReadListPrecDefault liftReadList = liftReadListDefault@@ -544,7 +607,7 @@ -- | @since 4.15 instance Show1 Solo where- liftShowsPrec sp _ d (Solo x) = showsUnaryWith sp "Solo" d x+ liftShowsPrec sp _ d (MkSolo x) = showsUnaryWith sp "MkSolo" d x -- | @since 4.9.0.0 instance (Show a) => Show1 ((,) a) where
Data/Functor/Compose.hs view
@@ -5,6 +5,7 @@ {-# LANGUAGE PolyKinds #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE Trustworthy #-}+{-# LANGUAGE StandaloneDeriving #-} ----------------------------------------------------------------------------- -- |@@ -32,7 +33,7 @@ import Data.Data (Data) import Data.Type.Equality (TestEquality(..), (:~:)(..)) import GHC.Generics (Generic, Generic1)-import Text.Read (Read(..), readListDefault, readListPrecDefault)+import Text.Read (Read(..), ReadPrec, readListDefault, readListPrecDefault) infixr 9 `Compose` @@ -47,6 +48,22 @@ , Monoid -- ^ @since 4.16.0.0 ) +-- Instances of Prelude classes++-- | @since 4.18.0.0+deriving instance Eq (f (g a)) => Eq (Compose f g a)+-- | @since 4.18.0.0+deriving instance Ord (f (g a)) => Ord (Compose f g a)+-- | @since 4.18.0.0+instance Read (f (g a)) => Read (Compose f g a) where+ readPrec = liftReadPrecCompose readPrec++ readListPrec = readListPrecDefault+ readList = readListDefault+-- | @since 4.18.0.0+instance Show (f (g a)) => Show (Compose f g a) where+ showsPrec = liftShowsPrecCompose showsPrec+ -- Instances of lifted Prelude classes -- | @since 4.9.0.0@@ -60,8 +77,8 @@ -- | @since 4.9.0.0 instance (Read1 f, Read1 g) => Read1 (Compose f g) where- liftReadPrec rp rl = readData $- readUnaryWith (liftReadPrec rp' rl') "Compose" Compose+ liftReadPrec rp rl =+ liftReadPrecCompose (liftReadPrec rp' rl') where rp' = liftReadPrec rp rl rl' = liftReadListPrec rp rl@@ -71,32 +88,19 @@ -- | @since 4.9.0.0 instance (Show1 f, Show1 g) => Show1 (Compose f g) where- liftShowsPrec sp sl d (Compose x) =- showsUnaryWith (liftShowsPrec sp' sl') "Compose" d x+ liftShowsPrec sp sl =+ liftShowsPrecCompose (liftShowsPrec sp' sl') where sp' = liftShowsPrec sp sl sl' = liftShowList sp sl --- Instances of Prelude classes---- | @since 4.9.0.0-instance (Eq1 f, Eq1 g, Eq a) => Eq (Compose f g a) where- (==) = eq1---- | @since 4.9.0.0-instance (Ord1 f, Ord1 g, Ord a) => Ord (Compose f g a) where- compare = compare1---- | @since 4.9.0.0-instance (Read1 f, Read1 g, Read a) => Read (Compose f g a) where- readPrec = readPrec1-- readListPrec = readListPrecDefault- readList = readListDefault+-- The workhorse for Compose's Read and Read1 instances.+liftReadPrecCompose :: ReadPrec (f (g a)) -> ReadPrec (Compose f g a)+liftReadPrecCompose rp = readData $ readUnaryWith rp "Compose" Compose --- | @since 4.9.0.0-instance (Show1 f, Show1 g, Show a) => Show (Compose f g a) where- showsPrec = showsPrec1+-- The workhorse for Compose's Show and Show1 instances.+liftShowsPrecCompose :: (Int -> f (g a) -> ShowS) -> Int -> Compose f g a -> ShowS+liftShowsPrecCompose sp d (Compose x) = showsUnaryWith sp "Compose" d x -- Functor instances
Data/Functor/Product.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE Safe #-}+{-# LANGUAGE StandaloneDeriving #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Functor.Product@@ -28,7 +29,7 @@ import Data.Data (Data) import Data.Functor.Classes import GHC.Generics (Generic, Generic1)-import Text.Read (Read(..), readListDefault, readListPrecDefault)+import Text.Read () -- | Lifted product of functors. data Product f g a = Pair (f a) (g a)@@ -37,6 +38,15 @@ , Generic1 -- ^ @since 4.9.0.0 ) +-- | @since 4.18.0.0+deriving instance (Eq (f a), Eq (g a)) => Eq (Product f g a)+-- | @since 4.18.0.0+deriving instance (Ord (f a), Ord (g a)) => Ord (Product f g a)+-- | @since 4.18.0.0+deriving instance (Read (f a), Read (g a)) => Read (Product f g a)+-- | @since 4.18.0.0+deriving instance (Show (f a), Show (g a)) => Show (Product f g a)+ -- | @since 4.9.0.0 instance (Eq1 f, Eq1 g) => Eq1 (Product f g) where liftEq eq (Pair x1 y1) (Pair x2 y2) = liftEq eq x1 x2 && liftEq eq y1 y2@@ -58,25 +68,6 @@ instance (Show1 f, Show1 g) => Show1 (Product f g) where liftShowsPrec sp sl d (Pair x y) = showsBinaryWith (liftShowsPrec sp sl) (liftShowsPrec sp sl) "Pair" d x y---- | @since 4.9.0.0-instance (Eq1 f, Eq1 g, Eq a) => Eq (Product f g a)- where (==) = eq1---- | @since 4.9.0.0-instance (Ord1 f, Ord1 g, Ord a) => Ord (Product f g a) where- compare = compare1---- | @since 4.9.0.0-instance (Read1 f, Read1 g, Read a) => Read (Product f g a) where- readPrec = readPrec1-- readListPrec = readListPrecDefault- readList = readListDefault---- | @since 4.9.0.0-instance (Show1 f, Show1 g, Show a) => Show (Product f g a) where- showsPrec = showsPrec1 -- | @since 4.9.0.0 instance (Functor f, Functor g) => Functor (Product f g) where
Data/Functor/Sum.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE Safe #-}+{-# LANGUAGE StandaloneDeriving #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Functor.Sum@@ -25,7 +26,7 @@ import Data.Data (Data) import Data.Functor.Classes import GHC.Generics (Generic, Generic1)-import Text.Read (Read(..), readListDefault, readListPrecDefault)+import Text.Read () -- | Lifted sum of functors. data Sum f g a = InL (f a) | InR (g a)@@ -34,6 +35,15 @@ , Generic1 -- ^ @since 4.9.0.0 ) +-- | @since 4.18.0.0+deriving instance (Eq (f a), Eq (g a)) => Eq (Sum f g a)+-- | @since 4.18.0.0+deriving instance (Ord (f a), Ord (g a)) => Ord (Sum f g a)+-- | @since 4.18.0.0+deriving instance (Read (f a), Read (g a)) => Read (Sum f g a)+-- | @since 4.18.0.0+deriving instance (Show (f a), Show (g a)) => Show (Sum f g a)+ -- | @since 4.9.0.0 instance (Eq1 f, Eq1 g) => Eq1 (Sum f g) where liftEq eq (InL x1) (InL x2) = liftEq eq x1 x2@@ -63,22 +73,6 @@ showsUnaryWith (liftShowsPrec sp sl) "InL" d x liftShowsPrec sp sl d (InR y) = showsUnaryWith (liftShowsPrec sp sl) "InR" d y---- | @since 4.9.0.0-instance (Eq1 f, Eq1 g, Eq a) => Eq (Sum f g a) where- (==) = eq1--- | @since 4.9.0.0-instance (Ord1 f, Ord1 g, Ord a) => Ord (Sum f g a) where- compare = compare1--- | @since 4.9.0.0-instance (Read1 f, Read1 g, Read a) => Read (Sum f g a) where- readPrec = readPrec1-- readListPrec = readListPrecDefault- readList = readListDefault--- | @since 4.9.0.0-instance (Show1 f, Show1 g, Show a) => Show (Sum f g a) where- showsPrec = showsPrec1 -- | @since 4.9.0.0 instance (Functor f, Functor g) => Functor (Sum f g) where
Data/Functor/Utils.hs view
@@ -10,8 +10,8 @@ module Data.Functor.Utils where import Data.Coerce (Coercible, coerce)-import GHC.Base ( Applicative(..), Functor(..), Maybe(..), Monoid(..), Ord(..)- , Semigroup(..), ($), otherwise )+import GHC.Base ( Applicative(..), Functor(..), Maybe(..), Monad (..)+ , Monoid(..), Ord(..), Semigroup(..), ($), liftM, otherwise ) import qualified GHC.List as List -- We don't expose Max and Min because, as Edward Kmett pointed out to me,@@ -94,6 +94,37 @@ let (s', y) = ky s (s'', x) = kx s' in (s'', f x y)++-- | A state transformer monad parameterized by the state and inner monad.+-- The implementation is copied from the transformers package with the+-- return tuple swapped.+--+-- @since 4.18.0.0+newtype StateT s m a = StateT { runStateT :: s -> m (s, a) }++-- | @since 4.18.0.0+instance Monad m => Functor (StateT s m) where+ fmap = liftM+ {-# INLINE fmap #-}++-- | @since 4.18.0.0+instance Monad m => Applicative (StateT s m) where+ pure a = StateT $ \ s -> return (s, a)+ {-# INLINE pure #-}+ StateT mf <*> StateT mx = StateT $ \ s -> do+ (s', f) <- mf s+ (s'', x) <- mx s'+ return (s'', f x)+ {-# INLINE (<*>) #-}+ m *> k = m >>= \_ -> k+ {-# INLINE (*>) #-}++-- | @since 4.18.0.0+instance (Monad m) => Monad (StateT s m) where+ m >>= k = StateT $ \ s -> do+ (s', a) <- runStateT m s+ runStateT (k a) s'+ {-# INLINE (>>=) #-} -- See Note [Function coercion] (#.) :: Coercible b c => (b -> c) -> (a -> b) -> (a -> c)
Data/IORef.hs view
@@ -46,7 +46,9 @@ mkWeakIORef r@(IORef (STRef r#)) (IO finalizer) = IO $ \s -> case mkWeak# r# r finalizer s of (# s1, w #) -> (# s1, Weak w #) --- |Mutate the contents of an 'IORef'.+-- |Mutate the contents of an 'IORef', combining 'readIORef' and 'writeIORef'.+-- This is not an atomic update, consider using 'atomicModifyIORef' when+-- operating in a multithreaded environment. -- -- Be warned that 'modifyIORef' does not apply the function strictly. This -- means if the program calls 'modifyIORef' many times, but seldom uses the@@ -62,7 +64,9 @@ modifyIORef :: IORef a -> (a -> a) -> IO () modifyIORef ref f = readIORef ref >>= writeIORef ref . f --- |Strict version of 'modifyIORef'+-- |Strict version of 'modifyIORef'.+-- This is not an atomic update, consider using 'atomicModifyIORef'' when+-- operating in a multithreaded environment. -- -- @since 4.6.0.0 modifyIORef' :: IORef a -> (a -> a) -> IO ()@@ -90,13 +94,18 @@ -- -- Use 'atomicModifyIORef'' or 'atomicWriteIORef' to avoid this problem. --+-- This function imposes a memory barrier, preventing reordering;+-- see "Data.IORef#memmodel" for details.+-- atomicModifyIORef :: IORef a -> (a -> (a,b)) -> IO b atomicModifyIORef ref f = do (_old, ~(_new, res)) <- atomicModifyIORef2 ref f pure res --- | Variant of 'writeIORef' with the \"barrier to reordering\" property that--- 'atomicModifyIORef' has.+-- | Variant of 'writeIORef'. The prefix "atomic" relates to a fact that+-- it imposes a reordering barrier, similar to 'atomicModifyIORef'.+-- Such a write will not be reordered with other reads+-- or writes even on CPUs with weak memory model. -- -- @since 4.6.0.0 atomicWriteIORef :: IORef a -> a -> IO ()@@ -105,12 +114,16 @@ pure () {- $memmodel+ #memmodel# - In a concurrent program, 'IORef' operations may appear out-of-order- to another thread, depending on the memory model of the underlying- processor architecture. For example, on x86, loads can move ahead- of stores, so in the following example:+ Most modern CPU achitectures (e.g. x86/64, ARM) have a memory model which allows+ threads to reorder reads with earlier writes to different locations,+ e.g. see <https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html the x86/64 architecture manual>,+ 8.2.3.4 Loads May Be Reordered with Earlier Stores to Different Locations. + Because of that, in a concurrent program, 'IORef' operations may appear out-of-order+ to another thread. In the following example:+ > import Data.IORef > import Control.Monad (unless) > import Control.Concurrent (forkIO, threadDelay)@@ -131,20 +144,23 @@ it is possible that the string @"critical section"@ is printed twice, even though there is no interleaving of the operations of the- two threads that allows that outcome. The memory model of x86+ two threads that allows that outcome. The memory model of x86/64 allows 'readIORef' to happen before the earlier 'writeIORef'. + The ARM memory order model is typically even weaker than x86/64, allowing+ any reordering of reads and writes as long as they are independent+ from the point of view of the current thread.+ The implementation is required to ensure that reordering of memory operations cannot cause type-correct code to go wrong. In particular, when inspecting the value read from an 'IORef', the memory writes that created that value must have occurred from the point of view of the current thread. - 'atomicModifyIORef' acts as a barrier to reordering. Multiple- 'atomicModifyIORef' operations occur in strict program order. An- 'atomicModifyIORef' is never observed to take place ahead of any+ 'atomicWriteIORef', 'atomicModifyIORef' and 'atomicModifyIORef'' act+ as a barrier to reordering. Multiple calls to these functions+ occur in strict program order, never taking place ahead of any earlier (in program order) 'IORef' operations, or after any later 'IORef' operations. -}-
Data/List.hs view
@@ -229,14 +229,23 @@ -- -- @since 4.8.0.0 ----- ==== __Examples__--- -- >>> isSubsequenceOf "GHC" "The Glorious Haskell Compiler" -- True -- >>> isSubsequenceOf ['a','d'..'z'] ['a'..'z'] -- True -- >>> isSubsequenceOf [1..10] [10,9..0] -- False+--+-- For the result to be 'True', the first list must be finite;+-- for the result to be 'False', the second list must be finite:+--+-- >>> [0,2..10] `isSubsequenceOf` [0..]+-- True+-- >>> [0..] `isSubsequenceOf` [0,2..10]+-- False+-- >>> [0,2..] `isSubsequenceOf` [0..]+-- * Hangs forever*+-- isSubsequenceOf :: (Eq a) => [a] -> [a] -> Bool isSubsequenceOf [] _ = True isSubsequenceOf _ [] = False
Data/List/NonEmpty.hs view
@@ -47,7 +47,9 @@ , sort -- :: NonEmpty a -> NonEmpty a , reverse -- :: NonEmpty a -> NonEmpty a , inits -- :: Foldable f => f a -> NonEmpty a+ , inits1 -- :: NonEmpty a -> NonEmpty (NonEmpty a) , tails -- :: Foldable f => f a -> NonEmpty a+ , tails1 -- :: NonEmpty a -> NonEmpty (NonEmpty a) , append -- :: NonEmpty a -> NonEmpty a -> NonEmpty a , appendList -- :: NonEmpty a -> [a] -> NonEmpty a , prependList -- :: [a] -> NonEmpty a -> NonEmpty a@@ -100,7 +102,7 @@ last, length, map, repeat, reverse, scanl, scanl1, scanr, scanr1, span, splitAt, tail, take, takeWhile,- unzip, zip, zipWith, (!!))+ unzip, zip, zipWith, (!!), Applicative(..)) import qualified Prelude import Control.Applicative (Applicative (..), Alternative (many))@@ -215,14 +217,61 @@ map f ~(a :| as) = f a :| fmap f as -- | The 'inits' function takes a stream @xs@ and returns all the--- finite prefixes of @xs@.+-- finite prefixes of @xs@, starting with the shortest. The result is+-- 'NonEmpty' because the result always contains the empty list as the first+-- element.+--+-- > inits [1,2,3] == [] :| [[1], [1,2], [1,2,3]]+-- > inits [1] == [] :| [[1]]+-- > inits [] == [] :| [] inits :: Foldable f => f a -> NonEmpty [a] inits = fromList . List.inits . Foldable.toList +-- | The 'inits1' function takes a 'NonEmpty' stream @xs@ and returns all the+-- 'NonEmpty' finite prefixes of @xs@, starting with the shortest.+--+-- > inits1 (1 :| [2,3]) == (1 :| []) :| [1 :| [2], 1 :| [2,3]]+-- > inits1 (1 :| []) == (1 :| []) :| []+--+-- @since 4.18+inits1 :: NonEmpty a -> NonEmpty (NonEmpty a)+inits1 =+ -- fromList is an unsafe function, but this usage should be safe, since:+ -- * `inits xs = [[], ..., init (init xs), init xs, xs]`+ -- * If `xs` is nonempty, it follows that `inits xs` contains at least one nonempty+ -- list, since `last (inits xs) = xs`.+ -- * The only empty element of `inits xs` is the first one (by the definition of `inits`)+ -- * Therefore, if we take all but the first element of `inits xs` i.e.+ -- `tail (inits xs)`, we have a nonempty list of nonempty lists+ fromList . Prelude.map fromList . List.tail . List.inits . Foldable.toList+ -- | The 'tails' function takes a stream @xs@ and returns all the--- suffixes of @xs@.+-- suffixes of @xs@, starting with the longest. The result is 'NonEmpty'+-- because the result always contains the empty list as the last element.+--+-- > tails [1,2,3] == [1,2,3] :| [[2,3], [3], []]+-- > tails [1] == [1] :| [[]]+-- > tails [] == [] :| [] tails :: Foldable f => f a -> NonEmpty [a] tails = fromList . List.tails . Foldable.toList++-- | The 'tails1' function takes a 'NonEmpty' stream @xs@ and returns all the+-- non-empty suffixes of @xs@, starting with the longest.+--+-- > tails1 (1 :| [2,3]) == (1 :| [2,3]) :| [2 :| [3], 3 :| []]+-- > tails1 (1 :| []) == (1 :| []) :| []+--+-- @since 4.18+tails1 :: NonEmpty a -> NonEmpty (NonEmpty a)+tails1 =+ -- fromList is an unsafe function, but this usage should be safe, since:+ -- * `tails xs = [xs, tail xs, tail (tail xs), ..., []]`+ -- * If `xs` is nonempty, it follows that `tails xs` contains at least one nonempty+ -- list, since `head (tails xs) = xs`.+ -- * The only empty element of `tails xs` is the last one (by the definition of `tails`)+ -- * Therefore, if we take all but the last element of `tails xs` i.e.+ -- `init (tails xs)`, we have a nonempty list of nonempty lists+ fromList . Prelude.map fromList . List.init . List.tails . Foldable.toList -- | @'insert' x xs@ inserts @x@ into the last position in @xs@ where it -- is still less than or equal to the next element. In particular, if the
Data/Monoid.hs view
@@ -122,13 +122,19 @@ -- @ --- | Maybe monoid returning the leftmost non-Nothing value.+-- | Maybe monoid returning the leftmost non-'Nothing' value. -- -- @'First' a@ is isomorphic to @'Alt' 'Maybe' a@, but precedes it -- historically. -- -- >>> getFirst (First (Just "hello") <> First Nothing <> First (Just "world")) -- Just "hello"+--+-- Beware that @Data.Monoid.@'First' is different from+-- @Data.Semigroup.@'Data.Semigroup.First'. The former returns the first non-'Nothing',+-- so @Data.Monoid.First Nothing <> x = x@. The latter simply returns the first value,+-- thus @Data.Semigroup.First Nothing <> x = Data.Semigroup.First Nothing@.+-- newtype First a = First { getFirst :: Maybe a } deriving ( Eq -- ^ @since 2.01 , Ord -- ^ @since 2.01@@ -151,13 +157,19 @@ instance Monoid (First a) where mempty = First Nothing --- | Maybe monoid returning the rightmost non-Nothing value.+-- | Maybe monoid returning the rightmost non-'Nothing' value. -- -- @'Last' a@ is isomorphic to @'Dual' ('First' a)@, and thus to -- @'Dual' ('Alt' 'Maybe' a)@ -- -- >>> getLast (Last (Just "hello") <> Last Nothing <> Last (Just "world")) -- Just "world"+--+-- Beware that @Data.Monoid.@'Last' is different from+-- @Data.Semigroup.@'Data.Semigroup.Last'. The former returns the last non-'Nothing',+-- so @x <> Data.Monoid.Last Nothing = x@. The latter simply returns the last value,+-- thus @x <> Data.Semigroup.Last Nothing = Data.Semigroup.Last Nothing@.+-- newtype Last a = Last { getLast :: Maybe a } deriving ( Eq -- ^ @since 2.01 , Ord -- ^ @since 2.01
Data/OldList.hs view
@@ -266,23 +266,25 @@ -- | The 'elemIndex' function returns the index of the first element -- in the given list which is equal (by '==') to the query element, -- or 'Nothing' if there is no such element.+-- For the result to be 'Nothing', the list must be finite. -- -- >>> elemIndex 4 [0..] -- Just 4-elemIndex :: Eq a => a -> [a] -> Maybe Int-elemIndex x = findIndex (x==)+elemIndex :: Eq a => a -> [a] -> Maybe Int+elemIndex x xs = findIndex (x==) xs -- arity 2 so that we don't get a PAP; #21345 -- | The 'elemIndices' function extends 'elemIndex', by returning the -- indices of all elements equal to the query element, in ascending order. -- -- >>> elemIndices 'o' "Hello World" -- [4,7]-elemIndices :: Eq a => a -> [a] -> [Int]-elemIndices x = findIndices (x==)+elemIndices :: Eq a => a -> [a] -> [Int]+elemIndices x xs = findIndices (x==) xs -- arity 2 so that we don't get a PAP; #21345 -- | The 'find' function takes a predicate and a list and returns the -- first element in the list matching the predicate, or 'Nothing' if -- there is no such element.+-- For the result to be 'Nothing', the list must be finite. -- -- >>> find (> 4) [1..] -- Just 5@@ -295,6 +297,7 @@ -- | The 'findIndex' function takes a predicate and a list and returns -- the index of the first element in the list satisfying the predicate, -- or 'Nothing' if there is no such element.+-- For the result to be 'Nothing', the list must be finite. -- -- >>> findIndex isSpace "Hello World!" -- Just 5@@ -325,23 +328,41 @@ -- -- >>> "Hello" `isPrefixOf` "Hello World!" -- True--- -- >>> "Hello" `isPrefixOf` "Wello Horld!" -- False+--+-- For the result to be 'True', the first list must be finite;+-- 'False', however, results from any mismatch:+--+-- >>> [0..] `isPrefixOf` [1..]+-- False+-- >>> [0..] `isPrefixOf` [0..99]+-- False+-- >>> [0..99] `isPrefixOf` [0..]+-- True+-- >>> [0..] `isPrefixOf` [0..]+-- * Hangs forever *+-- isPrefixOf :: (Eq a) => [a] -> [a] -> Bool isPrefixOf [] _ = True isPrefixOf _ [] = False isPrefixOf (x:xs) (y:ys)= x == y && isPrefixOf xs ys -- | The 'isSuffixOf' function takes two lists and returns 'True' iff--- the first list is a suffix of the second. The second list must be--- finite.+-- the first list is a suffix of the second. -- -- >>> "ld!" `isSuffixOf` "Hello World!" -- True--- -- >>> "World" `isSuffixOf` "Hello World!" -- False+--+-- The second list must be finite; however the first list may be infinite:+--+-- >>> [0..] `isSuffixOf` [0..99]+-- False+-- >>> [0..99] `isSuffixOf` [0..]+-- * Hangs forever *+-- isSuffixOf :: (Eq a) => [a] -> [a] -> Bool ns `isSuffixOf` hs = maybe False id $ do delta <- dropLengthMaybe ns hs@@ -383,9 +404,19 @@ -- -- >>> isInfixOf "Haskell" "I really like Haskell." -- True--- -- >>> isInfixOf "Ial" "I really like Haskell." -- False+--+-- For the result to be 'True', the first list must be finite;+-- for the result to be 'False', the second list must be finite:+--+-- >>> [20..50] `isInfixOf` [0..]+-- True+-- >>> [0..] `isInfixOf` [20..50]+-- False+-- >>> [0..] `isInfixOf` [0..]+-- * Hangs forever *+-- isInfixOf :: (Eq a) => [a] -> [a] -> Bool isInfixOf needle haystack = any (isPrefixOf needle) (tails haystack) @@ -396,6 +427,12 @@ -- -- >>> nub [1,2,3,4,3,2,1,2,4,3,5] -- [1,2,3,4,5]+--+-- If the order of outputs does not matter and there exists @instance Ord a@,+-- it's faster to use+-- 'map' @Data.List.NonEmpty.@'Data.List.NonEmpty.head' . @Data.List.NonEmpty.@'Data.List.NonEmpty.group' . 'sort',+-- which takes only \(\mathcal{O}(n \log n)\) time.+-- nub :: (Eq a) => [a] -> [a] nub = nubBy (==) @@ -454,56 +491,103 @@ -- | The '\\' function is list difference (non-associative). -- In the result of @xs@ '\\' @ys@, the first occurrence of each element of -- @ys@ in turn (if any) has been removed from @xs@. Thus------ > (xs ++ ys) \\ xs == ys.+-- @(xs ++ ys) \\\\ xs == ys@. -- -- >>> "Hello World!" \\ "ell W" -- "Hoorld!" -- -- It is a special case of 'deleteFirstsBy', which allows the programmer -- to supply their own equality test.-+--+-- The second list must be finite, but the first may be infinite.+--+-- >>> take 5 ([0..] \\ [2..4])+-- [0,1,5,6,7]+-- >>> take 5 ([0..] \\ [2..])+-- * Hangs forever *+-- (\\) :: (Eq a) => [a] -> [a] -> [a] (\\) = foldl (flip delete) -- | The 'union' function returns the list union of the two lists.+-- It is a special case of 'unionBy', which allows the programmer to supply+-- their own equality test. -- For example, -- -- >>> "dog" `union` "cow" -- "dogcw" ----- Duplicates, and elements of the first list, are removed from the--- the second list, but if the first list contains duplicates, so will--- the result.--- It is a special case of 'unionBy', which allows the programmer to supply--- their own equality test.-+-- If equal elements are present in both lists, an element from the first list+-- will be used. If the second list contains equal elements, only the first one+-- will be retained:+--+-- >>> import Data.Semigroup+-- >>> union [Arg () "dog"] [Arg () "cow"]+-- [Arg () "dog"]+-- >>> union [] [Arg () "dog", Arg () "cow"]+-- [Arg () "dog"]+--+-- However if the first list contains duplicates, so will+-- the result:+--+-- >>> "coot" `union` "duck"+-- "cootduk"+-- >>> "duck" `union` "coot"+-- "duckot"+--+-- 'union' is productive even if both arguments are infinite.+-- union :: (Eq a) => [a] -> [a] -> [a] union = unionBy (==) -- | The 'unionBy' function is the non-overloaded version of 'union'.+-- Both arguments may be infinite.+-- unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a] unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs -- | The 'intersect' function takes the list intersection of two lists.+-- It is a special case of 'intersectBy', which allows the programmer to+-- supply their own equality test. -- For example, -- -- >>> [1,2,3,4] `intersect` [2,4,6,8] -- [2,4] ----- If the first list contains duplicates, so will the result.+-- If equal elements are present in both lists, an element from the first list+-- will be used, and all duplicates from the second list quashed: ----- >>> [1,2,2,3,4] `intersect` [6,4,4,2]--- [2,2,4]+-- >>> import Data.Semigroup+-- >>> intersect [Arg () "dog"] [Arg () "cow", Arg () "cat"]+-- [Arg () "dog"] ----- It is a special case of 'intersectBy', which allows the programmer to--- supply their own equality test. If the element is found in both the first--- and the second list, the element from the first list will be used.-+-- However if the first list contains duplicates, so will the result.+--+-- >>> "coot" `intersect` "heron"+-- "oo"+-- >>> "heron" `intersect` "coot"+-- "o"+--+-- If the second list is infinite, 'intersect' either hangs+-- or returns its first argument in full. Otherwise if the first list+-- is infinite, 'intersect' might be productive:+--+-- >>> intersect [100..] [0..]+-- [100,101,102,103...+-- >>> intersect [0] [1..]+-- * Hangs forever *+-- >>> intersect [1..] [0]+-- * Hangs forever *+-- >>> intersect (cycle [1..3]) [2]+-- [2,2,2,2...+-- intersect :: (Eq a) => [a] -> [a] -> [a] intersect = intersectBy (==) -- | The 'intersectBy' function is the non-overloaded version of 'intersect'.+-- It is productive for infinite arguments only if the first one+-- is a subset of the second.+-- intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a] intersectBy _ [] _ = [] intersectBy _ _ [] = []@@ -547,6 +631,12 @@ -- -- >>> transpose [[10,11],[20],[],[30,31,32]] -- [[10,20,30],[11,31],[32]]+--+-- For this reason the outer list must be finite; otherwise 'transpose' hangs:+--+-- >>> transpose (repeat [])+-- * Hangs forever *+-- transpose :: [[a]] -> [[a]] transpose [] = [] transpose ([] : xss) = transpose xss@@ -681,7 +771,8 @@ GT -> y : insertBy cmp x ys' _ -> x : ys --- | The 'maximumBy' function takes a comparison function and a list+-- | The 'maximumBy' function is the non-overloaded version of 'maximum',+-- which takes a comparison function and a list -- and returns the greatest element of the list by the comparison function. -- The list must be finite and non-empty. --@@ -697,7 +788,8 @@ GT -> x _ -> y --- | The 'minimumBy' function takes a comparison function and a list+-- | The 'minimumBy' function is the non-overloaded version of 'minimum',+-- which takes a comparison function and a list -- and returns the least element of the list by the comparison function. -- The list must be finite and non-empty. --@@ -749,6 +841,7 @@ where gl [] a = a gl (_:xs) a = let a' = a + 1 in a' `seq` gl xs a'+{-# INLINABLE strictGenericLength #-} -- | The 'genericTake' function is an overloaded version of 'take', which -- accepts any 'Integral' value as the number of elements to take.@@ -756,6 +849,7 @@ genericTake n _ | n <= 0 = [] genericTake _ [] = [] genericTake n (x:xs) = x : genericTake (n-1) xs+{-# INLINABLE genericTake #-} -- | The 'genericDrop' function is an overloaded version of 'drop', which -- accepts any 'Integral' value as the number of elements to drop.@@ -763,6 +857,7 @@ genericDrop n xs | n <= 0 = xs genericDrop _ [] = [] genericDrop n (_:xs) = genericDrop (n-1) xs+{-# INLINABLE genericDrop #-} -- | The 'genericSplitAt' function is an overloaded version of 'splitAt', which@@ -772,6 +867,7 @@ genericSplitAt _ [] = ([],[]) genericSplitAt n (x:xs) = (x:xs',xs'') where (xs',xs'') = genericSplitAt (n-1) xs+{-# INLINABLE genericSplitAt #-} -- | The 'genericIndex' function is an overloaded version of '!!', which -- accepts any 'Integral' value as the index.@@ -781,11 +877,13 @@ | n > 0 = genericIndex xs (n-1) | otherwise = errorWithoutStackTrace "List.genericIndex: negative argument." genericIndex _ _ = errorWithoutStackTrace "List.genericIndex: index too large."+{-# INLINABLE genericIndex #-} -- | The 'genericReplicate' function is an overloaded version of 'replicate', -- which accepts any 'Integral' value as the number of repetitions to make. genericReplicate :: (Integral i) => i -> a -> [a] genericReplicate n x = genericTake n (repeat x)+{-# INLINABLE genericReplicate #-} -- | The 'zip4' function takes four lists and returns a list of -- quadruples, analogous to 'zip'.@@ -1045,23 +1143,42 @@ -- | The 'deleteFirstsBy' function takes a predicate and two lists and -- returns the first list with the first occurrence of each element of--- the second list removed.+-- the second list removed. This is the non-overloaded version of '(\\)'.+--+-- The second list must be finite, but the first may be infinite.+-- deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a] deleteFirstsBy eq = foldl (flip (deleteBy eq)) -- | The 'group' function takes a list and returns a list of lists such -- that the concatenation of the result is equal to the argument. Moreover,--- each sublist in the result contains only equal elements. For example,+-- each sublist in the result is non-empty and all elements are equal+-- to the first one. For example, -- -- >>> group "Mississippi" -- ["M","i","ss","i","ss","i","pp","i"] ----- It is a special case of 'groupBy', which allows the programmer to supply+-- 'group' is a special case of 'groupBy', which allows the programmer to supply -- their own equality test.+--+-- It's often preferable to use @Data.List.NonEmpty.@'Data.List.NonEmpty.group',+-- which provides type-level guarantees of non-emptiness of inner lists.+-- group :: Eq a => [a] -> [[a]] group = groupBy (==) -- | The 'groupBy' function is the non-overloaded version of 'group'.+--+-- When a supplied relation is not transitive, it is important+-- to remember that equality is checked against the first element in the group,+-- not against the nearest neighbour:+--+-- >>> groupBy (\a b -> b - a < 5) [0..19]+-- [[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14],[15,16,17,18,19]]+--+-- It's often preferable to use @Data.List.NonEmpty.@'Data.List.NonEmpty.groupBy',+-- which provides type-level guarantees of non-emptiness of inner lists.+-- groupBy :: (a -> a -> Bool) -> [a] -> [[a]] groupBy _ [] = [] groupBy eq (x:xs) = (x:ys) : groupBy eq zs@@ -1078,6 +1195,10 @@ -- -- In particular, -- @inits _|_ = [] : _|_@+--+-- 'inits' is semantically equivalent to @'map' 'reverse' . 'scanl' ('flip' (:)) []@,+-- but under the hood uses a queue to amortize costs of 'reverse'.+-- inits :: [a] -> [[a]] inits = map toListSB . scanl' snocSB emptySB {-# NOINLINE inits #-}@@ -1106,6 +1227,12 @@ -- -- >>> subsequences "abc" -- ["","a","b","ab","c","ac","bc","abc"]+--+-- This function is productive on infinite inputs:+--+-- >>> take 8 $ subsequences ['a'..]+-- ["","a","b","ab","c","ac","bc","abc"]+-- subsequences :: [a] -> [[a]] subsequences xs = [] : nonEmptySubsequences xs @@ -1124,16 +1251,40 @@ -- -- >>> permutations "abc" -- ["abc","bac","cba","bca","cab","acb"]-permutations :: [a] -> [[a]]-permutations xs0 = xs0 : perms xs0 []+--+-- The 'permutations' function is maximally lazy:+-- for each @n@, the value of @'permutations' xs@ starts with those permutations+-- that permute @'take' n xs@ and keep @'drop' n xs@.+--+-- This function is productive on infinite inputs:+--+-- >>> take 6 $ map (take 3) $ permutations ['a'..]+-- ["abc","bac","cba","bca","cab","acb"]+--+-- Note that the order of permutations is not lexicographic.+-- It satisfies the following property:+--+-- > map (take n) (take (product [1..n]) (permutations ([1..n] ++ undefined))) == permutations [1..n]+--+permutations :: [a] -> [[a]]+-- See https://stackoverflow.com/questions/24484348/what-does-this-list-permutations-implementation-in-haskell-exactly-do/24564307#24564307+-- for the analysis of this rather cryptic implementation.+-- Related discussions:+-- * https://mail.haskell.org/pipermail/haskell-cafe/2021-December/134920.html+-- * https://mail.haskell.org/pipermail/libraries/2007-December/008788.html+permutations xs0 = xs0 : perms xs0 [] where+ perms :: forall a. [a] -> [a] -> [[a]] perms [] _ = [] perms (t:ts) is = foldr interleave (perms ts (t:is)) (permutations is)- where interleave xs r = let (_,zs) = interleave' id xs r in zs- interleave' _ [] r = (ts, r)- interleave' f (y:ys) r = let (us,zs) = interleave' (f . (y:)) ys r- in (y:us, f (t:y:us) : zs)+ where+ interleave :: [a] -> [[a]] -> [[a]]+ interleave xs r = let (_,zs) = interleave' id xs r in zs + interleave' :: ([a] -> b) -> [a] -> [b] -> ([a], [b])+ interleave' _ [] r = (ts, r)+ interleave' f (y:ys) r = let (us,zs) = interleave' (f . (y:)) ys r+ in (y:us, f (t:y:us) : zs) ------------------------------------------------------------------------------ -- Quick Sort algorithm taken from HBC's QSort library.@@ -1147,12 +1298,22 @@ -- -- >>> sort [1,6,4,3,2,5] -- [1,2,3,4,5,6]+--+-- The argument must be finite.+-- sort :: (Ord a) => [a] -> [a] -- | The 'sortBy' function is the non-overloaded version of 'sort'.+-- The argument must be finite. -- -- >>> sortBy (\(a,_) (b,_) -> compare a b) [(2, "world"), (4, "!"), (1, "Hello")] -- [(1,"Hello"),(2,"world"),(4,"!")]+--+-- The supplied comparison relation is supposed to be reflexive and antisymmetric,+-- otherwise, e. g., for @\_ _ -> GT@, the ordered list simply does not exist.+-- The relation is also expected to be transitive: if it is not then 'sortBy'+-- might fail to find an ordered permutation, even if it exists.+-- sortBy :: (a -> a -> Ordering) -> [a] -> [a] #if defined(USE_REPORT_PRELUDE)@@ -1310,10 +1471,10 @@ #endif /* USE_REPORT_PRELUDE */ -- | Sort a list by comparing the results of a key function applied to each--- element. @sortOn f@ is equivalent to @sortBy (comparing f)@, but has the+-- element. @'sortOn' f@ is equivalent to @'sortBy' ('comparing' f)@, but has the -- performance advantage of only evaluating @f@ once for each element in the -- input list. This is called the decorate-sort-undecorate paradigm, or--- Schwartzian transform.+-- <https://en.wikipedia.org/wiki/Schwartzian_transform Schwartzian transform>. -- -- Elements are arranged from lowest to highest, keeping duplicates in -- the order they appeared in the input.@@ -1321,6 +1482,8 @@ -- >>> sortOn fst [(2, "world"), (4, "!"), (1, "Hello")] -- [(1,"Hello"),(2,"world"),(4,"!")] --+-- The argument must be finite.+-- -- @since 4.8.0.0 sortOn :: Ord b => (a -> b) -> [a] -> [a] sortOn f =@@ -1397,35 +1560,29 @@ -- Functions on strings -- | Splits the argument into a list of /lines/ stripped of their terminating--- @\n@ characters. The @\n@ terminator is optional in a final non-empty+-- @\\n@ characters. The @\\n@ terminator is optional in a final non-empty -- line of the argument string. -- -- For example: -- -- >>> lines "" -- empty input contains no lines -- []--- -- >>> lines "\n" -- single empty line -- [""]--- -- >>> lines "one" -- single unterminated line -- ["one"]--- -- >>> lines "one\n" -- single non-empty line -- ["one"]--- -- >>> lines "one\n\n" -- second line is empty -- ["one",""]--- -- >>> lines "one\ntwo" -- second line is unterminated -- ["one","two"]--- -- >>> lines "one\ntwo\n" -- two non-empty lines -- ["one","two"] ----- When the argument string is empty, or ends in a @\n@ character, it can be+-- When the argument string is empty, or ends in a @\\n@ character, it can be -- recovered by passing the result of 'lines' to the 'unlines' function.--- Otherwise, 'unlines' appends the missing terminating @\n@. This makes+-- Otherwise, 'unlines' appends the missing terminating @\\n@. This makes -- @unlines . lines@ /idempotent/: -- -- > (unlines . lines) . (unlines . lines) = (unlines . lines)@@ -1443,15 +1600,13 @@ where cons ~(h, t) = h : t --- | Appends a @\n@ character to each input string, then concatenates the--- results. Equivalent to @'foldMap' (\s -> s '++' "\n")@.+-- | Appends a @\\n@ character to each input string, then concatenates the+-- results. Equivalent to @'foldMap' (\s -> s '++' "\\n")@. -- -- >>> unlines ["Hello", "World", "!"] -- "Hello\nWorld\n!\n" ----- = Note------ @'unlines' '.' 'lines' '/=' 'id'@ when the input is not @\n@-terminated:+-- Note that @'unlines' '.' 'lines' '/=' 'id'@ when the input is not @\\n@-terminated: -- -- >>> unlines . lines $ "foo\nbar" -- "foo\nbar\n"@@ -1466,10 +1621,14 @@ #endif -- | 'words' breaks a string up into a list of words, which were delimited--- by white space.+-- by white space (as defined by 'isSpace'). This function trims any white spaces+-- at the beginning and at the end. -- -- >>> words "Lorem ipsum\ndolor" -- ["Lorem","ipsum","dolor"]+-- >>> words " foo bar "+-- ["foo","bar"]+-- words :: String -> [String] {-# NOINLINE [1] words #-} words s = case dropWhile {-partain:Char.-}isSpace s of@@ -1491,11 +1650,18 @@ s' -> w `c` go s'' where (w, s'') = break isSpace s' --- | 'unwords' is an inverse operation to 'words'.--- It joins words with separating spaces.+-- | 'unwords' joins words with separating spaces (U+0020 SPACE). -- -- >>> unwords ["Lorem", "ipsum", "dolor"] -- "Lorem ipsum dolor"+--+-- 'unwords' is neither left nor right inverse of 'words':+--+-- >>> words (unwords [" "])+-- []+-- >>> unwords (words "foo\nbar")+-- "foo bar"+-- unwords :: [String] -> String #if defined(USE_REPORT_PRELUDE) unwords [] = ""
Data/Ord.hs view
@@ -24,11 +24,11 @@ clamp, ) where -import Data.Bits (Bits, FiniteBits)+import Data.Bits (Bits, FiniteBits, complement) import Foreign.Storable (Storable) import GHC.Ix (Ix) import GHC.Base-import GHC.Enum (Bounded(..))+import GHC.Enum (Bounded(..), Enum(..)) import GHC.Float (Floating, RealFloat) import GHC.Num import GHC.Read@@ -51,7 +51,7 @@ -- | -- > clamp (low, high) a = min high (max a low) ----- Function for ensursing the value @a@ is within the inclusive bounds given by+-- Function for ensuring the value @a@ is within the inclusive bounds given by -- @low@ and @high@. If it is, @a@ is returned unchanged. The result -- is otherwise @low@ if @a <= low@, or @high@ if @high <= a@. --@@ -132,6 +132,12 @@ -- | @since 4.6.0.0 instance Ord a => Ord (Down a) where compare (Down x) (Down y) = y `compare` x+ Down x < Down y = y < x+ Down x > Down y = y > x+ Down x <= Down y = y <= x+ Down x >= Down y = y >= x+ min (Down x) (Down y) = Down (max y x)+ max (Down x) (Down y) = Down (min y x) -- | Swaps @'minBound'@ and @'maxBound'@ of the underlying type. --@@ -139,6 +145,26 @@ instance Bounded a => Bounded (Down a) where minBound = Down maxBound maxBound = Down minBound++-- | Swaps @'succ'@ and @'pred'@ of the underlying type.+--+-- @since 4.18.0.0+instance (Enum a, Bounded a, Eq a) => Enum (Down a) where+ succ = fmap pred+ pred = fmap succ++ -- Here we use the fact that 'comparing (complement @Int)' behaves+ -- as an order-swapping `compare @Int`.+ fromEnum = complement . fromEnum . getDown+ toEnum = Down . toEnum . complement++ enumFrom (Down x)+ | x == minBound+ = [Down x] -- We can't rely on 'enumFromThen _ (pred @a minBound)` behaving nicely,+ -- since 'enumFromThen _' might be strict and 'pred minBound' might throw+ | otherwise+ = coerce $ enumFromThen x (pred x)+ enumFromThen (Down x) (Down y) = coerce $ enumFromThen x y -- | @since 4.11.0.0 instance Functor Down where
Data/Semigroup.hs view
@@ -98,7 +98,7 @@ , ArgMax ) where -import Prelude hiding (foldr1)+import Prelude hiding (foldr1, Applicative(..)) import GHC.Base (Semigroup(..)) @@ -357,6 +357,13 @@ instance Bitraversable Arg where bitraverse f g (Arg a b) = Arg <$> f a <*> g b +-- |+-- Beware that @Data.Semigroup.@'First' is different from+-- @Data.Monoid.@'Data.Monoid.First'. The former simply returns the first value,+-- so @Data.Semigroup.First Nothing <> x = Data.Semigroup.First Nothing@.+-- The latter returns the first non-'Nothing',+-- thus @Data.Monoid.First Nothing <> x = x@.+-- newtype First a = First { getFirst :: a } deriving ( Bounded -- ^ @since 4.9.0.0 , Eq -- ^ @since 4.9.0.0@@ -413,6 +420,13 @@ instance MonadFix First where mfix f = fix (f . getFirst) +-- |+-- Beware that @Data.Semigroup.@'Last' is different from+-- @Data.Monoid.@'Data.Monoid.Last'. The former simply returns the last value,+-- so @x <> Data.Semigroup.Last Nothing = Data.Semigroup.Last Nothing@.+-- The latter returns the last non-'Nothing',+-- thus @x <> Data.Monoid.Last Nothing = x@.+-- newtype Last a = Last { getLast :: a } deriving ( Bounded -- ^ @since 4.9.0.0 , Eq -- ^ @since 4.9.0.0
Data/Semigroup/Internal.hs view
@@ -67,7 +67,7 @@ | y == 1 = x `mappend` z | otherwise = g (x `mappend` x) (y `quot` 2) (x `mappend` z) -- See Note [Half of y - 1] --- this is used by the class definitionin GHC.Base;+-- this is used by the class definition in GHC.Base; -- it lives here to avoid cycles stimesDefault :: (Integral b, Semigroup a) => b -> a -> a stimesDefault y0 x0
Data/String.hs view
@@ -37,26 +37,8 @@ import Data.Functor.Identity (Identity (Identity)) import Data.List (lines, words, unlines, unwords) --- | `IsString` is used in combination with the @-XOverloadedStrings@--- language extension to convert the literals to different string types.------ For example, if you use the [text](https://hackage.haskell.org/package/text) package,--- you can say------ @--- {-# LANGUAGE OverloadedStrings #-}------ myText = "hello world" :: Text--- @------ Internally, the extension will convert this to the equivalent of------ @--- myText = fromString @Text ("hello world" :: String)--- @------ __Note:__ You can use @fromString@ in normal code as well,--- but the usual performance/memory efficiency problems with 'String' apply.+-- | Class for string-like datastructures; used by the overloaded string+-- extension (-XOverloadedStrings in GHC). class IsString a where fromString :: String -> a
Data/Traversable.hs view
@@ -28,8 +28,10 @@ -- * Utility functions for, forM,+ forAccumM, mapAccumL, mapAccumR,+ mapAccumM, -- * General definitions for superclass methods fmapDefault, foldMapDefault,@@ -99,7 +101,7 @@ import Data.Foldable import Data.Functor import Data.Functor.Identity ( Identity(..) )-import Data.Functor.Utils ( StateL(..), StateR(..) )+import Data.Functor.Utils ( StateL(..), StateR(..), StateT(..), (#.) ) import Data.Monoid ( Dual(..), Sum(..), Product(..), First(..), Last(..), Alt(..), Ap(..) ) import Data.Ord ( Down(..) )@@ -482,6 +484,45 @@ -- See Note [Function coercion] in Data.Functor.Utils. mapAccumR f s t = coerce (traverse @t @(StateR s) @a @b) (flip f) t s +-- | The `mapAccumM` function behaves like a combination of `mapM` and+-- `mapAccumL` that traverses the structure while evaluating the actions+-- and passing an accumulating parameter from left to right.+-- It returns a final value of this accumulator together with the new structure.+-- The accummulator is often used for caching the intermediate results of a computation.+--+-- @since 4.18.0.0+--+-- ==== __Examples__+--+-- Basic usage:+--+-- >>> let expensiveDouble a = putStrLn ("Doubling " <> show a) >> pure (2 * a)+-- >>> :{+-- mapAccumM (\cache a -> case lookup a cache of+-- Nothing -> expensiveDouble a >>= \double -> pure ((a, double):cache, double)+-- Just double -> pure (cache, double)+-- ) [] [1, 2, 3, 1, 2, 3]+-- :}+-- Doubling 1+-- Doubling 2+-- Doubling 3+-- ([(3,6),(2,4),(1,2)],[2,4,6,2,4,6])+--+mapAccumM+ :: forall m t s a b. (Monad m, Traversable t)+ => (s -> a -> m (s, b))+ -> s -> t a -> m (s, t b)+mapAccumM f s t = coerce (mapM @t @(StateT s m) @a @b) (StateT #. flip f) t s++-- | 'forAccumM' is 'mapAccumM' with the arguments rearranged.+--+-- @since 4.18.0.0+forAccumM+ :: (Monad m, Traversable t)+ => s -> t a -> (s -> a -> m (s, b)) -> m (s, t b)+{-# INLINE forAccumM #-}+forAccumM s t f = mapAccumM f s t+ -- | This function may be used as a value for `fmap` in a `Functor` -- instance, provided that 'traverse' is defined. (Using -- `fmapDefault` with a `Traversable` instance defined only by@@ -573,8 +614,9 @@ -- -- When the traversable term is a simple variable or expression, and the -- monadic action to run is a non-trivial do block, it can be more natural to--- write the action last. This idiom is supported by 'for' and 'forM', which--- are the flipped versions of 'traverse' and 'mapM', respectively.+-- write the action last. This idiom is supported by 'for', 'forM', and+-- 'forAccumM' which are the flipped versions of 'traverse', 'mapM', and+-- 'mapAccumM' respectively. ------------------ @@ -1426,7 +1468,7 @@ -- -- Since in fact __@'traverse' id@__ is just 'sequenceA' the above boils down -- to a rather concise definition of /transpose/, with [coercion](#coercion)--- used to implicily wrap and unwrap the @ZipList@ @newtype@ as neeed, giving+-- used to implicitly wrap and unwrap the @ZipList@ @newtype@ as needed, giving -- a function that operates on a list of lists: -- -- >>> {-# LANGUAGE ScopedTypeVariables #-}
Data/Type/Equality.hs view
@@ -152,14 +152,14 @@ -- The result should be @Just Refl@ if and only if the types applied to @f@ are -- equal: ----- @TestEquality (x :: f a) (y :: f b) = Just Refl ⟺ a = b@+-- @testEquality (x :: f a) (y :: f b) = Just Refl ⟺ a = b@ -- -- Typically, only singleton types should inhabit this class. In that case type -- argument equality coincides with term equality: ----- @TestEquality (x :: f a) (y :: f b) = Just Refl ⟺ a = b ⟺ x = y@+-- @testEquality (x :: f a) (y :: f b) = Just Refl ⟺ a = b ⟺ x = y@ ----- @isJust (TestEquality x y) = x == y@+-- @isJust (testEquality x y) = x == y@ -- -- Singleton types are not required, however, and so the latter two would-be -- laws are not in fact valid in general.
Data/Typeable.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE PolyKinds #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE Trustworthy #-}+{-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} -----------------------------------------------------------------------------@@ -56,6 +57,7 @@ -- * Type-safe cast , cast , eqT+ , heqT , gcast -- a generalisation of cast -- * Generalized casts for higher-order kinds@@ -135,8 +137,14 @@ -- @since 4.7.0.0 eqT :: forall a b. (Typeable a, Typeable b) => Maybe (a :~: b) eqT- | Just HRefl <- ta `I.eqTypeRep` tb = Just Refl- | otherwise = Nothing+ | Just HRefl <- heqT @a @b = Just Refl+ | otherwise = Nothing++-- | Extract a witness of heterogeneous equality of two types+--+-- @since 4.18.0.0+heqT :: forall a b. (Typeable a, Typeable b) => Maybe (a :~~: b)+heqT = ta `I.eqTypeRep` tb where ta = I.typeRep :: I.TypeRep a tb = I.typeRep :: I.TypeRep b
Data/Typeable/Internal.hs view
@@ -182,8 +182,9 @@ * * ********************************************************************* -} --- | A concrete representation of a (monomorphic) type.+-- | TypeRep is a concrete representation of a (monomorphic) type. -- 'TypeRep' supports reasonably efficient equality.+-- See Note [Grand plan for Typeable] in GHC.Tc.Instance.Typeable type TypeRep :: k -> Type data TypeRep a where -- The TypeRep of Type. See Note [Kind caching], Wrinkle 2@@ -214,8 +215,13 @@ , trAppKind :: !(TypeRep k2) } -- See Note [Kind caching] -> TypeRep (a b) - -- | @TrFun fpr m a b@ represents a function type @a # m -> b@. We use this for+ -- | @TrFun fpr m a b@ represents a function type @a % m -> b@. We use this for -- the sake of efficiency as functions are quite ubiquitous.+ -- A TrFun can represent `t1 -> t2` or `t1 -= t2`; but not (a => b) or (a ==> b).+ -- See Note [No Typeable for polytypes or qualified types] in GHC.Tc.Instance.Class+ -- and Note [Function type constructors and FunTy] in GHC.Builtin.Types.Prim+ -- We do not represent the function TyCon (i.e. (->) vs (-=>)) explicitly;+ -- instead, the TyCon is implicit in the kinds of the arguments. TrFun :: forall (m :: Multiplicity) (r1 :: RuntimeRep) (r2 :: RuntimeRep) (a :: TYPE r1) (b :: TYPE r2). { -- See Note [TypeRep fingerprints]@@ -830,6 +836,8 @@ showTypeable :: Int -> TypeRep (a :: k) -> ShowS showTypeable _ TrType = showChar '*' showTypeable _ rep+ | isListTyCon tc, [] <- tys =+ showString "[]" | isListTyCon tc, [ty] <- tys = showChar '[' . shows ty . showChar ']'
Data/Void.hs view
@@ -1,8 +1,4 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE EmptyCase #-}-{-# LANGUAGE EmptyDataDeriving #-}-{-# LANGUAGE Safe #-}+{-# LANGUAGE Trustworthy #-} ----------------------------------------------------------------------------- -- |@@ -24,64 +20,4 @@ , vacuous ) where -import Control.Exception-import Data.Data-import Data.Ix-import GHC.Generics-import Data.Semigroup (Semigroup(..), stimesIdempotent)---- $setup--- >>> import Prelude---- | Uninhabited data type------ @since 4.8.0.0-data Void deriving- ( Eq -- ^ @since 4.8.0.0- , Data -- ^ @since 4.8.0.0- , Generic -- ^ @since 4.8.0.0- , Ord -- ^ @since 4.8.0.0- , Read -- ^ Reading a 'Void' value is always a parse error, considering- -- 'Void' as a data type with no constructors.- --- -- @since 4.8.0.0- , Show -- ^ @since 4.8.0.0- )---- | @since 4.8.0.0-instance Ix Void where- range _ = []- index _ = absurd- inRange _ = absurd- rangeSize _ = 0---- | @since 4.8.0.0-instance Exception Void---- | @since 4.9.0.0-instance Semigroup Void where- a <> _ = a- stimes = stimesIdempotent---- | Since 'Void' values logically don't exist, this witnesses the--- logical reasoning tool of \"ex falso quodlibet\".------ >>> let x :: Either Void Int; x = Right 5--- >>> :{--- case x of--- Right r -> r--- Left l -> absurd l--- :}--- 5------ @since 4.8.0.0-absurd :: Void -> a-absurd a = case a of {}---- | If 'Void' is uninhabited then any 'Functor' that holds only--- values of type 'Void' is holding no values.--- It is implemented in terms of @fmap absurd@.------ @since 4.8.0.0-vacuous :: Functor f => f Void -> f a-vacuous = fmap absurd+import GHC.Base (Void, absurd, vacuous)
Debug/Trace.hs view
@@ -27,6 +27,8 @@ traceId, traceShow, traceShowId,+ traceWith,+ traceShowWith, traceStack, traceIO, traceM,@@ -36,6 +38,7 @@ -- * Eventlog tracing -- $eventlog_tracing traceEvent,+ traceEventWith, traceEventIO, flushEventLog, @@ -164,6 +167,31 @@ traceShowId a = trace (show a) a {-|+Like 'trace', but outputs the result of calling a function on the argument.++>>> traceWith fst ("hello","world")+hello+("hello","world")++@since 4.17.0.0+-}+traceWith :: (a -> String) -> a -> a+traceWith f a = trace (f a) a++{-|+Like 'traceWith', but uses 'show' on the result of the function to convert it to+a 'String'.++>>> traceShowWith length [1,2,3]+3+[1,2,3]++@since 4.17.0.0+-}+traceShowWith :: Show b => (a -> b) -> a -> a+traceShowWith f = traceWith (show . f)++{-| Like 'trace' but returning unit in an arbitrary 'Applicative' context. Allows for convenient use in do-notation. @@ -271,6 +299,13 @@ traceEventIO msg = GHC.Foreign.withCString utf8 msg $ \(Ptr p) -> IO $ \s -> case traceEvent# p s of s' -> (# s', () #)++-- | Like 'traceEvent', but emits the result of calling a function on its+-- argument.+--+-- @since 4.17.0.0+traceEventWith :: (a -> String) -> a -> a+traceEventWith f a = traceEvent (f a) a -- $markers --
+ Foreign/C/ConstPtr.hs view
@@ -0,0 +1,45 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE RoleAnnotations #-}+{-# LANGUAGE StandaloneKindSignatures #-}+{-# LANGUAGE Trustworthy #-}++-----------------------------------------------------------------------------+-- |+-- Module : Foreign.C.ConstPtr+-- Copyright : (c) GHC Developers+-- License : BSD-style (see the file libraries/base/LICENSE)+--+-- Maintainer : ffi@haskell.org+-- Stability : provisional+-- Portability : portable+--+-- This module provides typed @const@ pointers to foreign data. It is part+-- of the Foreign Function Interface (FFI).+--+-----------------------------------------------------------------------------++module Foreign.C.ConstPtr (+ ConstPtr(..)+) where++import GHC.Base+import GHC.Ptr+import GHC.Show++-- | A pointer with the C @const@ qualifier. For instance, an argument of type+-- @ConstPtr CInt@ would be marshalled as @const int*@.+--+-- While @const@-ness generally does not matter for @ccall@ imports (since+-- @const@ and non-@const@ pointers typically have equivalent calling+-- conventions), it does matter for @capi@ imports. See GHC #22043.+--+-- @since 4.18.0.0+--+type ConstPtr :: Type -> Type+type role ConstPtr phantom+newtype ConstPtr a = ConstPtr { unConstPtr :: Ptr a }+ deriving (Eq, Ord)++-- doesn't use record syntax+instance Show (ConstPtr a) where+ showsPrec d (ConstPtr p) = showParen (d > 10) $ showString "ConstPtr " . showsPrec 11 p
Foreign/C/String.hs view
@@ -110,19 +110,10 @@ import {-# SOURCE #-} GHC.IO.Encoding import qualified GHC.Foreign as GHC+import GHC.Foreign (CString, CStringLen) ----------------------------------------------------------------------------- -- Strings---- representation of strings in C--- ---------------------------------- | A C string is a reference to an array of C characters terminated by NUL.-type CString = Ptr CChar---- | A string with explicit length information in bytes instead of a--- terminating NUL (allowing NUL characters in the middle of the string).-type CStringLen = (Ptr CChar, Int) -- exported functions -- ------------------
Foreign/C/Types.hs view
@@ -21,6 +21,8 @@ -- ----------------------------------------------------------------------------- +#include <ghcplatform.h>+ module Foreign.C.Types ( -- * Representations of C types -- $ctypes@@ -176,9 +178,16 @@ -- | Haskell type representing the C @wchar_t@ type. -- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/ INTEGRAL_TYPE(CWchar,"wchar_t",HTYPE_WCHAR_T)++#if defined(HTYPE_SIG_ATOMIC_T) -- | 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]. INTEGRAL_TYPE(CSigAtomic,"sig_atomic_t",HTYPE_SIG_ATOMIC_T)+#else+newtype CSigAtomic = CSigAtomic Int32+ deriving newtype (Read, Show, ARITHMETIC_CLASSES, INTEGRAL_CLASSES, Ix)+#endif -- | Haskell type representing the C @clock_t@ type. -- /(The concrete types of "Foreign.C.Types#platform" are platform-specific.)/@@ -259,4 +268,3 @@ corresponding bitwise operation in C on @t@. -}-
Foreign/Concurrent.hs view
@@ -38,11 +38,16 @@ -- -- ^Turns a plain memory reference into a foreign object by -- associating a finalizer - given by the monadic operation - with the--- reference. The storage manager will start the finalizer, in a--- separate thread, some time after the last reference to the--- 'ForeignPtr' is dropped. There is no guarantee of promptness, and+-- reference.+--+-- When finalization is triggered by GC, the storage manager will start the+-- finalizer, in a separate thread, some time after the last reference to the+-- @ForeignPtr@ is dropped. There is __no guarantee of promptness__, and -- in fact there is no guarantee that the finalizer will eventually--- run at all.+-- run at all for GC-triggered finalization.+--+-- When finalization is triggered by explicitly calling @finalizeForeignPtr@,+-- the finalizer will run immediately on the current Haskell thread. -- -- Note that references from a finalizer do not necessarily prevent -- another object from being finalized. If A's finalizer refers to B
Foreign/Marshal/Array.hs view
@@ -76,6 +76,15 @@ import GHC.List import GHC.Base +{- Note [Specialising array operations]+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+The functions in this module are all overloaded, and specialising them+is sometimes crucial for performance. So they all have++* An INLINE pragma, so they outright inline+* An INLINEABLE pragma, so they can be specialised to the call site+-}+ -- allocation -- ---------- @@ -83,29 +92,34 @@ -- (like 'Foreign.Marshal.Alloc.malloc', but for multiple elements). -- mallocArray :: forall a . Storable a => Int -> IO (Ptr a)+{-# INLINE mallocArray #-} mallocArray size = mallocBytes (size * sizeOf (undefined :: a)) -- |Like 'mallocArray', but add an extra position to hold a special -- termination element. -- mallocArray0 :: Storable a => Int -> IO (Ptr a)+{-# INLINE mallocArray0 #-} mallocArray0 size = mallocArray (size + 1) -- |Like 'mallocArray', but allocated memory is filled with bytes of value zero. -- callocArray :: forall a . Storable a => Int -> IO (Ptr a)+{-# INLINE callocArray #-} callocArray size = callocBytes (size * sizeOf (undefined :: a)) -- |Like 'callocArray0', but allocated memory is filled with bytes of value -- zero. -- callocArray0 :: Storable a => Int -> IO (Ptr a)+{-# INLINE callocArray0 #-} callocArray0 size = callocArray (size + 1) -- |Temporarily allocate space for the given number of elements -- (like 'Foreign.Marshal.Alloc.alloca', but for multiple elements). -- allocaArray :: forall a b . Storable a => Int -> (Ptr a -> IO b) -> IO b+{-# INLINE allocaArray #-} allocaArray size = allocaBytesAligned (size * sizeOf (undefined :: a)) (alignment (undefined :: a)) @@ -121,11 +135,13 @@ -- |Adjust the size of an array -- reallocArray :: forall a . Storable a => Ptr a -> Int -> IO (Ptr a)+{-# INLINE reallocArray #-} reallocArray ptr size = reallocBytes ptr (size * sizeOf (undefined :: a)) -- |Adjust the size of an array including an extra position for the end marker. -- reallocArray0 :: Storable a => Ptr a -> Int -> IO (Ptr a)+{-# INLINE reallocArray0 #-} reallocArray0 ptr size = reallocArray ptr (size + 1) @@ -136,6 +152,7 @@ -- is tail-recursive and so uses constant stack space. -- peekArray :: Storable a => Int -> Ptr a -> IO [a]+{-# INLINEABLE peekArray #-} peekArray size ptr | size <= 0 = return [] | otherwise = f (size-1) [] where@@ -145,6 +162,7 @@ -- |Convert an array terminated by the given end marker into a Haskell list -- peekArray0 :: (Storable a, Eq a) => a -> Ptr a -> IO [a]+{-# INLINEABLE peekArray0 #-} peekArray0 marker ptr = do size <- lengthArray0 marker ptr peekArray size ptr@@ -152,6 +170,7 @@ -- |Write the list elements consecutive into memory -- pokeArray :: Storable a => Ptr a -> [a] -> IO ()+{-# INLINEABLE pokeArray #-} pokeArray ptr vals0 = go vals0 0# where go [] _ = return () go (val:vals) n# = do pokeElemOff ptr (I# n#) val; go vals (n# +# 1#)@@ -160,6 +179,7 @@ -- given marker element -- pokeArray0 :: Storable a => a -> Ptr a -> [a] -> IO ()+{-# INLINEABLE pokeArray0 #-} pokeArray0 marker ptr vals0 = go vals0 0# where go [] n# = pokeElemOff ptr (I# n#) marker go (val:vals) n# = do pokeElemOff ptr (I# n#) val; go vals (n# +# 1#)@@ -172,6 +192,7 @@ -- (like 'Foreign.Marshal.Utils.new', but for multiple elements). -- newArray :: Storable a => [a] -> IO (Ptr a)+{-# INLINEABLE newArray #-} newArray vals = do ptr <- mallocArray (length vals) pokeArray ptr vals@@ -181,6 +202,7 @@ -- sequence of storable values, where the end is fixed by the given end marker -- newArray0 :: Storable a => a -> [a] -> IO (Ptr a)+{-# INLINEABLE newArray0 #-} newArray0 marker vals = do ptr <- mallocArray0 (length vals) pokeArray0 marker ptr vals@@ -190,12 +212,14 @@ -- (like 'Foreign.Marshal.Utils.with', but for multiple elements). -- withArray :: Storable a => [a] -> (Ptr a -> IO b) -> IO b+{-# INLINE withArray #-} withArray vals = withArrayLen vals . const -- |Like 'withArray', but the action gets the number of values -- as an additional parameter -- withArrayLen :: Storable a => [a] -> (Int -> Ptr a -> IO b) -> IO b+{-# INLINEABLE withArrayLen #-} withArrayLen vals f = allocaArray len $ \ptr -> do pokeArray ptr vals@@ -206,11 +230,13 @@ -- |Like 'withArray', but a terminator indicates where the array ends -- withArray0 :: Storable a => a -> [a] -> (Ptr a -> IO b) -> IO b+{-# INLINE withArray0 #-} withArray0 marker vals = withArrayLen0 marker vals . const -- |Like 'withArrayLen', but a terminator indicates where the array ends -- withArrayLen0 :: Storable a => a -> [a] -> (Int -> Ptr a -> IO b) -> IO b+{-# INLINEABLE withArrayLen0 #-} withArrayLen0 marker vals f = allocaArray0 len $ \ptr -> do pokeArray0 marker ptr vals@@ -225,13 +251,15 @@ -- first array (destination); the copied areas may /not/ overlap -- copyArray :: forall a . Storable a => Ptr a -> Ptr a -> Int -> IO ()+{-# INLINE copyArray #-} copyArray dest src size = copyBytes dest src (size * sizeOf (undefined :: a)) -- |Copy the given number of elements from the second array (source) into the -- first array (destination); the copied areas /may/ overlap -- moveArray :: forall a . Storable a => Ptr a -> Ptr a -> Int -> IO ()-moveArray dest src size = moveBytes dest src (size * sizeOf (undefined :: a))+{-# INLINE moveArray #-}+moveArray dest src size = moveBytes dest src (size * sizeOf (undefined :: a)) -- finding the length@@ -240,6 +268,7 @@ -- |Return the number of elements in an array, excluding the terminator -- lengthArray0 :: (Storable a, Eq a) => a -> Ptr a -> IO Int+{-# INLINEABLE lengthArray0 #-} lengthArray0 marker ptr = loop 0 where loop i = do@@ -253,4 +282,5 @@ -- |Advance a pointer into an array by the given number of elements -- advancePtr :: forall a . Storable a => Ptr a -> Int -> Ptr a+{-# INLINE advancePtr #-} advancePtr ptr i = ptr `plusPtr` (i * sizeOf (undefined :: a))
Foreign/Marshal/Pool.hs view
@@ -46,19 +46,18 @@ pooledNewArray0 ) where -import GHC.Base ( Int, Monad(..), (.), liftM, not )+import GHC.Base ( Int, Monad(..) ) import GHC.Err ( undefined ) import GHC.Exception ( throw ) import GHC.IO ( IO, mask, catchAny )-import GHC.IORef ( IORef, newIORef, readIORef, writeIORef )-import GHC.List ( elem, length )+import GHC.List ( length ) import GHC.Num ( Num(..) )+import GHC.Real ( fromIntegral ) -import Data.OldList ( delete )-import Foreign.Marshal.Alloc ( mallocBytes, reallocBytes, free )+import Foreign.C.Types ( CSize(..) ) import Foreign.Marshal.Array ( pokeArray, pokeArray0 )-import Foreign.Marshal.Error ( throwIf )-import Foreign.Ptr ( Ptr, castPtr )+import Foreign.Marshal.Utils ( moveBytes )+import Foreign.Ptr ( Ptr ) import Foreign.Storable ( Storable(sizeOf, poke) ) --------------------------------------------------------------------------------@@ -68,20 +67,18 @@ -- | A memory pool. -newtype Pool = Pool (IORef [Ptr ()])+newtype Pool = Pool (Ptr ()) -- | Allocate a fresh memory pool. newPool :: IO Pool-newPool = liftM Pool (newIORef [])+newPool = c_newArena -- | Deallocate a memory pool and everything which has been allocated in the -- pool itself. freePool :: Pool -> IO ()-freePool (Pool pool) = readIORef pool >>= freeAll- where freeAll [] = return ()- freeAll (p:ps) = free p >> freeAll ps+freePool = c_arenaFree -- | Execute an action with a fresh memory pool, which gets automatically -- deallocated (including its contents) after the action has finished.@@ -108,11 +105,7 @@ -- | Allocate the given number of bytes of storage in the pool. pooledMallocBytes :: Pool -> Int -> IO (Ptr a)-pooledMallocBytes (Pool pool) size = do- ptr <- mallocBytes size- ptrs <- readIORef pool- writeIORef pool (ptr:ptrs)- return (castPtr ptr)+pooledMallocBytes pool size = c_arenaAlloc pool (fromIntegral size) -- | Adjust the storage area for an element in the pool to the given size of -- the required type.@@ -120,16 +113,15 @@ pooledRealloc :: forall a . Storable a => Pool -> Ptr a -> IO (Ptr a) pooledRealloc pool ptr = pooledReallocBytes pool ptr (sizeOf (undefined :: a)) --- | Adjust the storage area for an element in the pool to the given size.+-- | Adjust the storage area for an element in the pool to the given size. Note+-- that the previously allocated space is still retained in the same 'Pool' and+-- will only be freed when the entire 'Pool' is freed. pooledReallocBytes :: Pool -> Ptr a -> Int -> IO (Ptr a)-pooledReallocBytes (Pool pool) ptr size = do- let cPtr = castPtr ptr- _ <- throwIf (not . (cPtr `elem`)) (\_ -> "pointer not in pool") (readIORef pool)- newPtr <- reallocBytes cPtr size- ptrs <- readIORef pool- writeIORef pool (newPtr : delete cPtr ptrs)- return (castPtr newPtr)+pooledReallocBytes pool ptr size = do+ newPtr <- pooledMallocBytes pool size+ moveBytes newPtr ptr size+ return newPtr -- | Allocate storage for the given number of elements of a storable type in the -- pool.@@ -185,3 +177,9 @@ ptr <- pooledMallocArray0 pool (length vals) pokeArray0 marker ptr vals return ptr++foreign import ccall unsafe "newArena" c_newArena :: IO Pool++foreign import ccall unsafe "arenaAlloc" c_arenaAlloc :: Pool -> CSize -> IO (Ptr a)++foreign import ccall unsafe "arenaFree" c_arenaFree :: Pool -> IO ()
Foreign/Storable.hs view
@@ -1,5 +1,8 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, NoImplicitPrelude, ScopedTypeVariables, BangPatterns #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE StandaloneDeriving #-} ----------------------------------------------------------------------------- -- |@@ -42,6 +45,7 @@ import GHC.Ptr import GHC.Base import GHC.Fingerprint.Type+import Foreign.C.ConstPtr import Data.Bits import GHC.Real @@ -280,3 +284,5 @@ pokeW64 (castPtr p0) 8 high pokeW64 (castPtr p0 `plusPtr` 8) 8 low++deriving newtype instance Storable (ConstPtr a)
GHC/ArrayArray.hs view
@@ -49,6 +49,7 @@ where import GHC.Prim+import GHC.Prim.PtrEq ( unsafePtrEquality# ) import GHC.Types ( Type, UnliftedType, isTrue# ) import Unsafe.Coerce ( unsafeCoerce, unsafeCoerceUnlifted ) default ()@@ -148,8 +149,8 @@ -- | Compare the underlying pointers of two arrays of arrays. sameArrayArray# :: ArrayArray# -> ArrayArray# -> Int#-sameArrayArray# (ArrayArray# arr1) (ArrayArray# arr2) = reallyUnsafePtrEquality# arr1 arr2+sameArrayArray# (ArrayArray# arr1) (ArrayArray# arr2) = unsafePtrEquality# arr1 arr2 -- | Compare the underlying pointers of two mutable arrays of arrays. sameMutableArrayArray# :: MutableArrayArray# s -> MutableArrayArray# s -> Int#-sameMutableArrayArray# (MutableArrayArray# marr1) (MutableArrayArray# marr2 ) = reallyUnsafePtrEquality# marr1 marr2+sameMutableArrayArray# (MutableArrayArray# marr1) (MutableArrayArray# marr2 ) = unsafePtrEquality# marr1 marr2
GHC/Base.hs view
@@ -17,7 +17,7 @@ copied to make GHC.Prim.hi GHC.Base Classes: Eq, Ord, Functor, Monad- Types: list, (), Int, Bool, Ordering, Char, String+ Types: List, (), Int, Bool, Ordering, Char, String Data.Tuple Types: tuples, plus instances for GHC.Base classes @@ -65,6 +65,8 @@ {-# LANGUAGE BangPatterns #-} {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-}+{-# LANGUAGE EmptyCase #-}+{-# LANGUAGE EmptyDataDeriving #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE NoImplicitPrelude #-}@@ -122,7 +124,7 @@ import GHC.Maybe import {-# SOURCE #-} GHC.IO (mkUserError, mplusIO) -import GHC.Tuple (Solo (..)) -- Note [Depend on GHC.Tuple]+import GHC.Tuple (Solo (MkSolo)) -- Note [Depend on GHC.Tuple] import GHC.Num.Integer () -- Note [Depend on GHC.Num.Integer] -- for 'class Semigroup'@@ -162,10 +164,6 @@ Failed to load interface for ‘GHC.Num.Integer’ There are files missing in the ‘ghc-bignum’ package, -Note that this is only a problem with the make-based build system. Hadrian-doesn't interleave compilation of modules from separate packages and respects-the dependency between `base` and `ghc-bignum`.- To ensure that GHC.Num.Integer is there, we must ensure that there is a visible dependency on GHC.Num.Integer from every module in base. We make GHC.Base depend on GHC.Num.Integer; and everything else either depends on GHC.Base,@@ -203,6 +201,37 @@ foldr = errorWithoutStackTrace "urk" #endif +-- | Uninhabited data type+--+-- @since 4.8.0.0+data Void deriving+ ( Eq -- ^ @since 4.8.0.0+ , Ord -- ^ @since 4.8.0.0+ )++-- | Since 'Void' values logically don't exist, this witnesses the+-- logical reasoning tool of \"ex falso quodlibet\".+--+-- >>> let x :: Either Void Int; x = Right 5+-- >>> :{+-- case x of+-- Right r -> r+-- Left l -> absurd l+-- :}+-- 5+--+-- @since 4.8.0.0+absurd :: Void -> a+absurd a = case a of {}++-- | If 'Void' is uninhabited then any 'Functor' that holds only+-- values of type 'Void' is holding no values.+-- It is implemented in terms of @fmap absurd@.+--+-- @since 4.8.0.0+vacuous :: Functor f => f Void -> f a+vacuous = fmap absurd+ infixr 6 <> -- | The class of semigroups (types with an associative binary operation).@@ -211,6 +240,12 @@ -- -- [Associativity] @x '<>' (y '<>' z) = (x '<>' y) '<>' z@ --+-- You can alternatively define `sconcat` instead of (`<>`), in which case the+-- laws are:+--+-- [Unit]: @'sconcat' ('pure' x) = x@+-- [Multiplication]: @'sconcat' ('join' xss) = 'sconcat' ('fmap' 'sconcat' xss)@+-- -- @since 4.9.0.0 class Semigroup a where -- | An associative operation.@@ -218,6 +253,7 @@ -- >>> [1,2,3] <> [4,5,6] -- [1,2,3,4,5,6] (<>) :: a -> a -> a+ a <> b = sconcat (a :| [ b ]) -- | Reduce a non-empty list with '<>' --@@ -248,7 +284,9 @@ stimes :: Integral b => b -> a -> a stimes = stimesDefault + {-# MINIMAL (<>) | sconcat #-} + -- | The class of monoids (types with an associative binary operation that -- has an identity). Instances should satisfy the following: --@@ -257,6 +295,13 @@ -- [Associativity] @x '<>' (y '<>' z) = (x '<>' y) '<>' z@ ('Semigroup' law) -- [Concatenation] @'mconcat' = 'foldr' ('<>') 'mempty'@ --+-- You can alternatively define `mconcat` instead of `mempty`, in which case the+-- laws are:+--+-- [Unit]: @'mconcat' ('pure' x) = x@+-- [Multiplication]: @'mconcat' ('join' xss) = 'mconcat' ('fmap' 'mconcat' xss)@+-- [Subclass]: @'mconcat' ('toList' xs) = 'sconcat' xs@+-- -- The method names refer to the monoid of lists under concatenation, -- but there are many other instances. --@@ -271,7 +316,9 @@ -- -- >>> "Hello world" <> mempty -- "Hello world"- mempty :: a+ mempty :: a+ mempty = mconcat []+ {-# INLINE mempty #-} -- | An associative operation --@@ -297,6 +344,8 @@ {-# INLINE mconcat #-} -- INLINE in the hope of fusion with mconcat's argument (see !4890) + {-# MINIMAL mempty | mconcat #-}+ -- | @since 4.9.0.0 instance Semigroup [a] where (<>) = (++)@@ -312,6 +361,11 @@ mconcat xss = [x | xs <- xss, x <- xs] -- See Note: [List comprehensions and inlining] +-- | @since 4.9.0.0+instance Semigroup Void where+ a <> _ = a+ stimes _ a = a+ {- Note: [List comprehensions and inlining] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@@ -363,12 +417,12 @@ -- | @since 4.15 instance Semigroup a => Semigroup (Solo a) where- Solo a <> Solo b = Solo (a <> b)- stimes n (Solo a) = Solo (stimes n a)+ MkSolo a <> MkSolo b = MkSolo (a <> b)+ stimes n (MkSolo a) = MkSolo (stimes n a) -- | @since 4.15 instance Monoid a => Monoid (Solo a) where- mempty = Solo mempty+ mempty = MkSolo mempty -- | @since 4.9.0.0 instance (Semigroup a, Semigroup b) => Semigroup (a, b) where@@ -446,17 +500,17 @@ -- | @since 4.15 instance Applicative Solo where- pure = Solo+ pure = MkSolo -- Note: we really want to match strictly here. This lets us write, -- for example, -- -- forceSpine :: Foldable f => f a -> () -- forceSpine xs- -- | Solo r <- traverse_ Solo xs+ -- | MkSolo r <- traverse_ MkSolo xs -- = r- Solo f <*> Solo x = Solo (f x)- liftA2 f (Solo x) (Solo y) = Solo (f x y)+ MkSolo f <*> MkSolo x = MkSolo (f x)+ liftA2 f (MkSolo x) (MkSolo y) = MkSolo (f x y) -- | For tuples, the 'Monoid' constraint on @a@ determines -- how the first values merge.@@ -473,7 +527,7 @@ -- | @since 4.15 instance Monad Solo where- Solo x >>= f = f x+ MkSolo x >>= f = f x -- | @since 4.9.0.0 instance Monoid a => Monad ((,) a) where@@ -505,6 +559,18 @@ instance (Monoid a, Monoid b, Monoid c) => Monad ((,,,) a b c) where (u, v, w, a) >>= k = case k a of (u', v', w', b) -> (u <> u', v <> v', w <> w', b) +-- | @since 4.18.0.0+instance Functor ((,,,,) a b c d) where+ fmap f (a, b, c, d, e) = (a, b, c, d, f e)++-- | @since 4.18.0.0+instance Functor ((,,,,,) a b c d e) where+ fmap fun (a, b, c, d, e, f) = (a, b, c, d, e, fun f)++-- | @since 4.18.0.0+instance Functor ((,,,,,,) a b c d e f) where+ fmap fun (a, b, c, d, e, f, g) = (a, b, c, d, e, f, fun g)+ -- | @since 4.10.0.0 instance Semigroup a => Semigroup (IO a) where (<>) = liftA2 (<>)@@ -583,6 +649,15 @@ -- The default definition is @'fmap' . 'const'@, but this may be -- overridden with a more efficient version. --+ -- ==== __Examples__+ --+ -- Perform a computation with 'Maybe' and replace the result with a+ -- constant value if it is 'Just':+ --+ -- >>> 'a' <$ Just 2+ -- Just 'a'+ -- >>> 'a' <$ Nothing+ -- Nothing (<$) :: a -> f b -> f a (<$) = fmap . const @@ -739,10 +814,9 @@ -- | Lift a function to actions. -- Equivalent to Functor's `fmap` but implemented using only `Applicative`'s methods:--- `liftA f a = pure f <*> a`+-- @'liftA' f a = 'pure' f '<*>' a@ -- -- As such this function may be used to implement a `Functor` instance from an `Applicative` one.- -- -- ==== __Examples__ -- Using the Applicative instance for Lists:@@ -1026,12 +1100,12 @@ -- | @since 4.15 instance Functor Solo where- fmap f (Solo a) = Solo (f a)+ fmap f (MkSolo a) = MkSolo (f a) -- Being strict in the `Solo` argument here seems most consistent -- with the concept behind `Solo`: always strict in the wrapper and lazy -- in the contents.- x <$ Solo _ = Solo x+ x <$ MkSolo _ = MkSolo x -- | @since 2.01 instance Functor ((,) a) where@@ -1096,7 +1170,9 @@ some_v = liftA2 (:) v many_v --- | @since 2.01+-- | Picks the leftmost 'Just' value, or, alternatively, 'Nothing'.+--+-- @since 2.01 instance Alternative Maybe where empty = Nothing Nothing <|> r = r@@ -1128,7 +1204,9 @@ mplus :: m a -> m a -> m a mplus = (<|>) --- | @since 2.01+-- | Picks the leftmost 'Just' value, or, alternatively, 'Nothing'.+--+-- @since 2.01 instance MonadPlus Maybe ---------------------------------------------@@ -1190,12 +1268,16 @@ {-# INLINE (>>) #-} (>>) = (*>) --- | @since 2.01+-- | Combines lists by concatenation, starting from the empty list.+--+-- @since 2.01 instance Alternative [] where empty = [] (<|>) = (++) --- | @since 2.01+-- | Combines lists by concatenation, starting from the empty list.+--+-- @since 2.01 instance MonadPlus [] {-@@ -1271,7 +1353,7 @@ -- when we disable the rule that expands (++) into foldr -- The foldr/cons rule looks nice, but it can give disastrously--- bloated code when commpiling+-- bloated code when compiling -- array (a,b) [(1,2), (2,2), (3,2), ...very long list... ] -- i.e. when there are very very long literal lists -- So I've disabled it for now. We could have special cases@@ -1411,42 +1493,10 @@ -- Type Char and String ---------------------------------------------- --- | 'String' is an alias for a list of characters.------ String constants in Haskell are values of type 'String'.--- That means if you write a string literal like @"hello world"@,--- it will have the type @[Char]@, which is the same as @String@.------ __Note:__ You can ask the compiler to automatically infer different types--- with the @-XOverloadedStrings@ language extension, for example--- @"hello world" :: Text@. See t'Data.String.IsString' for more information.------ Because @String@ is just a list of characters, you can use normal list functions--- to do basic string manipulation. See "Data.List" for operations on lists.------ === __Performance considerations__------ @[Char]@ is a relatively memory-inefficient type.--- It is a linked list of boxed word-size characters, internally it looks something like:------ > ╭─────┬───┬──╮ ╭─────┬───┬──╮ ╭─────┬───┬──╮ ╭────╮--- > │ (:) │ │ ─┼─>│ (:) │ │ ─┼─>│ (:) │ │ ─┼─>│ [] │--- > ╰─────┴─┼─┴──╯ ╰─────┴─┼─┴──╯ ╰─────┴─┼─┴──╯ ╰────╯--- > v v v--- > 'a' 'b' 'c'------ The @String@ "abc" will use @5*3+1 = 16@ (in general @5n+1@)--- words of space in memory.------ Furthermore, operations like '(++)' (string concatenation) are @O(n)@--- (in the left argument).+-- | A 'String' is a list of characters. String constants in Haskell are values+-- of type 'String'. ----- For historical reasons, the @base@ library uses @String@ in a lot of places--- for the conceptual simplicity, but library code dealing with user-data--- should use the [text](https://hackage.haskell.org/package/text)--- package for Unicode text, or the the--- [bytestring](https://hackage.haskell.org/package/bytestring) package--- for binary data.+-- See "Data.List" for operations on lists. type String = [Char] unsafeChr :: Int -> Char@@ -1610,12 +1660,18 @@ (>>) = (*>) (>>=) = bindIO --- | @since 4.9.0.0+-- | Takes the first non-throwing 'IO' action\'s result.+-- 'empty' throws an exception.+--+-- @since 4.9.0.0 instance Alternative IO where empty = failIO "mzero" (<|>) = mplusIO --- | @since 4.9.0.0+-- | Takes the first non-throwing 'IO' action\'s result.+-- 'mzero' throws an exception.+--+-- @since 4.9.0.0 instance MonadPlus IO returnIO :: a -> IO a
+ GHC/ByteOrder.hs-boot view
@@ -0,0 +1,28 @@+{-# LANGUAGE NoImplicitPrelude #-}++{-+This SOURCE-imported hs-boot module cuts a big dependency loop:++module ‘GHC.Stable’+imports module ‘GHC.Ptr’+imports module ‘Numeric’+imports module ‘GHC.Read’+imports module ‘GHC.Unicode’+imports module ‘GHC.Unicode.Internal.Char.UnicodeData.GeneralCategory’+imports module ‘GHC.Unicode.Internal.Bits’+imports module ‘GHC.ByteOrder’+imports module ‘GHC.Generics’+imports module ‘Data.Ord’+imports module ‘Foreign.Storable’+imports module ‘GHC.Stable’+-}++module GHC.ByteOrder where++import GHC.Types ()++data ByteOrder+ = BigEndian+ | LittleEndian++targetByteOrder :: ByteOrder
GHC/Conc.hs view
@@ -45,6 +45,7 @@ , yield , labelThread , mkWeakThreadId+ , listThreads , ThreadStatus(..), BlockReason(..) , threadStatus
GHC/Conc/IO.hs view
@@ -65,12 +65,14 @@ import GHC.Conc.Windows (asyncRead, asyncWrite, asyncDoProc, asyncReadBA, asyncWriteBA, ConsoleEvent(..), win32ConsoleHandler, toWin32ConsoleEvent)-#else+#elif !defined(javascript_HOST_ARCH) import qualified GHC.Event.Thread as Event #endif ensureIOManagerIsRunning :: IO ()-#if !defined(mingw32_HOST_OS)+#if defined(javascript_HOST_ARCH)+ensureIOManagerIsRunning = pure ()+#elif !defined(mingw32_HOST_OS) ensureIOManagerIsRunning = Event.ensureIOManagerIsRunning #else ensureIOManagerIsRunning = Windows.ensureIOManagerIsRunning@@ -89,7 +91,7 @@ #endif ioManagerCapabilitiesChanged :: IO ()-#if !defined(mingw32_HOST_OS)+#if !defined(mingw32_HOST_OS) && !defined(javascript_HOST_ARCH) ioManagerCapabilitiesChanged = Event.ioManagerCapabilitiesChanged #else ioManagerCapabilitiesChanged = return ()@@ -103,7 +105,7 @@ -- that has been used with 'threadWaitRead', use 'closeFdWith'. threadWaitRead :: Fd -> IO () threadWaitRead fd-#if !defined(mingw32_HOST_OS)+#if !defined(mingw32_HOST_OS) && !defined(javascript_HOST_ARCH) | threaded = Event.threadWaitRead fd #endif | otherwise = IO $ \s ->@@ -119,7 +121,7 @@ -- that has been used with 'threadWaitWrite', use 'closeFdWith'. threadWaitWrite :: Fd -> IO () threadWaitWrite fd-#if !defined(mingw32_HOST_OS)+#if !defined(mingw32_HOST_OS) && !defined(javascript_HOST_ARCH) | threaded = Event.threadWaitWrite fd #endif | otherwise = IO $ \s ->@@ -133,7 +135,7 @@ -- in the file descriptor. threadWaitReadSTM :: Fd -> IO (Sync.STM (), IO ()) threadWaitReadSTM fd-#if !defined(mingw32_HOST_OS)+#if !defined(mingw32_HOST_OS) && !defined(javascript_HOST_ARCH) | threaded = Event.threadWaitReadSTM fd #endif | otherwise = do@@ -152,7 +154,7 @@ -- in the file descriptor. threadWaitWriteSTM :: Fd -> IO (Sync.STM (), IO ()) threadWaitWriteSTM fd-#if !defined(mingw32_HOST_OS)+#if !defined(mingw32_HOST_OS) && !defined(javascript_HOST_ARCH) | threaded = Event.threadWaitWriteSTM fd #endif | otherwise = do@@ -177,7 +179,7 @@ -> Fd -- ^ File descriptor to close. -> IO () closeFdWith close fd-#if !defined(mingw32_HOST_OS)+#if !defined(mingw32_HOST_OS) && !defined(javascript_HOST_ARCH) | threaded = Event.closeFdWith close fd #endif | otherwise = close fd@@ -189,13 +191,16 @@ -- when the delay has expired, but the thread will never continue to -- run /earlier/ than specified. --+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- Consider using @Control.Concurrent.Thread.Delay.delay@ from @unbounded-delays@ package. threadDelay :: Int -> IO () threadDelay time #if defined(mingw32_HOST_OS) | isWindowsNativeIO = Windows.threadDelay time | threaded = Windows.threadDelay time-#else- | threaded = Event.threadDelay time+#elif !defined(javascript_HOST_ARCH)+ | threaded = Event.threadDelay time #endif | otherwise = IO $ \s -> case time of { I# time# ->@@ -206,14 +211,19 @@ -- after a given number of microseconds. The caveats associated with -- 'threadDelay' also apply. --+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- registerDelay :: Int -> IO (TVar Bool)-registerDelay usecs+registerDelay _usecs #if defined(mingw32_HOST_OS)- | isWindowsNativeIO = Windows.registerDelay usecs- | threaded = Windows.registerDelay usecs-#else- | threaded = Event.registerDelay usecs+ | isWindowsNativeIO = Windows.registerDelay _usecs+ | threaded = Windows.registerDelay _usecs+#elif !defined(javascript_HOST_ARCH)+ | threaded = Event.registerDelay _usecs #endif | otherwise = errorWithoutStackTrace "registerDelay: requires -threaded" +#if !defined(javascript_HOST_ARCH) foreign import ccall unsafe "rtsSupportsBoundThreads" threaded :: Bool+#endif
GHC/Conc/POSIX.hs view
@@ -107,6 +107,9 @@ -- when the delay has expired, but the thread will never continue to -- run /earlier/ than specified. --+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- threadDelay :: Int -> IO () threadDelay time | threaded = waitForDelayEvent time@@ -117,6 +120,9 @@ -- | Set the value of returned TVar to True after a given number of -- microseconds. The caveats associated with threadDelay also apply.+--+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes. -- registerDelay :: Int -> IO (TVar Bool) registerDelay usecs
GHC/Conc/Sync.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE UnboxedTuples #-} {-# LANGUAGE UnliftedFFITypes #-}+{-# LANGUAGE KindSignatures #-} {-# LANGUAGE Unsafe #-} {-# OPTIONS_HADDOCK not-home #-}@@ -29,34 +30,44 @@ -- #not-home module GHC.Conc.Sync- ( ThreadId(..)+ (+ -- * Threads+ ThreadId(..) , showThreadId+ , myThreadId+ , killThread+ , throwTo+ , yield+ , labelThread+ , labelThreadByteArray#+ , mkWeakThreadId+ -- ** Queries+ , listThreads+ , threadLabel+ , ThreadStatus(..), BlockReason(..)+ , threadStatus+ , threadCapability -- * Forking and suchlike , forkIO , forkIOWithUnmask , forkOn , forkOnWithUnmask++ -- * Capabilities , numCapabilities , getNumCapabilities , setNumCapabilities , getNumProcessors++ -- * Sparks , numSparks , childHandler- , myThreadId- , killThread- , throwTo , par , pseq , runSparks- , yield- , labelThread- , mkWeakThreadId - , ThreadStatus(..), BlockReason(..)- , threadStatus- , threadCapability-+ -- * PrimMVar , newStablePtrPrimMVar, PrimMVar -- * Allocation counter and quota@@ -101,15 +112,13 @@ import GHC.Base import {-# SOURCE #-} GHC.IO.Handle ( hFlush ) import {-# SOURCE #-} GHC.IO.StdHandles ( stdout )+import GHC.Encoding.UTF8 import GHC.Int import GHC.IO-import GHC.IO.Encoding.UTF8 import GHC.IO.Exception import GHC.Exception-import qualified GHC.Foreign import GHC.IORef import GHC.MVar-import GHC.Ptr import GHC.Real ( fromIntegral ) import GHC.Show ( Show(..), showParen, showString ) import GHC.Stable ( StablePtr(..) )@@ -264,7 +273,7 @@ WARNING: Exceptions in the new thread will not be rethrown in the thread that created it. This means that you might be completely unaware of the problem if/when this happens. You may want to use the-<hackage.haskell.org/package/async async> library instead.+<https://hackage.haskell.org/package/async async> library instead. -} forkIO :: IO () -> IO ThreadId forkIO action = IO $ \ s ->@@ -489,18 +498,19 @@ identifier will be used in the debugging output to make distinction of different threads easier (otherwise you only have the thread state object\'s address in the heap). It also emits an event to the RTS eventlog.--Other applications like the graphical Concurrent Haskell Debugger-(<http://www.informatik.uni-kiel.de/~fhu/chd/>) may choose to overload-'labelThread' for their purposes as well. -}- labelThread :: ThreadId -> String -> IO ()-labelThread (ThreadId t) str =- GHC.Foreign.withCString utf8 str $ \(Ptr p) ->- IO $ \ s ->- case labelThread# t p s of s1 -> (# s1, () #)+labelThread t str =+ labelThreadByteArray# t (utf8EncodeByteArray# str) +-- | 'labelThreadByteArray#' sets the label of a thread to the given UTF-8+-- encoded string contained in a `ByteArray#`.+--+-- @since 4.18+labelThreadByteArray# :: ThreadId -> ByteArray# -> IO ()+labelThreadByteArray# (ThreadId t) str =+ IO $ \s -> case labelThread# t str s of s1 -> (# s1, () #)+ -- Nota Bene: 'pseq' used to be 'seq' -- but 'seq' is now defined in GHC.Prim --@@ -529,6 +539,25 @@ then (# s', () #) else p `seq` loop s' +-- | List the Haskell threads of the current process.+--+-- @since 4.18+listThreads :: IO [ThreadId]+listThreads = IO $ \s ->+ case listThreads# s of+ (# s', arr #) ->+ (# s', mapListArrayUnlifted ThreadId arr #)++mapListArrayUnlifted :: forall (a :: TYPE UnliftedRep) b. (a -> b) -> Array# a -> [b]+mapListArrayUnlifted f arr = go 0#+ where+ sz = sizeofArray# arr+ go i#+ | isTrue# (i# ==# sz) = []+ | otherwise = case indexArray# arr i# of+ (# x #) -> f x : go (i# +# 1#)+{-# NOINLINE mapListArrayUnlifted #-}+ data BlockReason = BlockedOnMVar -- ^blocked on 'MVar'@@ -568,6 +597,7 @@ , Show -- ^ @since 4.3.0.0 ) +-- | Query the current execution status of a thread. threadStatus :: ThreadId -> IO ThreadStatus threadStatus (ThreadId t) = IO $ \s -> case threadStatus# t s of@@ -598,6 +628,19 @@ case threadStatus# t s of (# s', _, cap#, locked# #) -> (# s', (I# cap#, isTrue# (locked# /=# 0#)) #) +-- | Query the label of thread, returning 'Nothing' if the+-- thread's label has not been set.+--+-- @since 4.18+threadLabel :: ThreadId -> IO (Maybe String)+threadLabel (ThreadId t) = IO $ \s ->+ case threadLabel# t s of+ (# s', 1#, lbl #) ->+ let lbl' = utf8DecodeByteArray# lbl+ in (# s', Just lbl' #)+ (# s', 0#, _ #) -> (# s', Nothing #)+ _ -> error "threadLabel: impossible"+ -- | Make a weak pointer to a 'ThreadId'. It can be important to do -- this if you want to hold a reference to a 'ThreadId' while still -- allowing the thread to receive the @BlockedIndefinitely@ family of@@ -622,10 +665,10 @@ data PrimMVar --- | Make a StablePtr that can be passed to the C function--- @hs_try_putmvar()@. The RTS wants a 'StablePtr' to the underlying--- 'MVar#', but a 'StablePtr#' can only refer to lifted types, so we--- have to cheat by coercing.+-- | Make a 'StablePtr' that can be passed to the C function+-- @hs_try_putmvar()@. The RTS wants a 'StablePtr' to the+-- underlying 'MVar#', but a 'StablePtr#' can only refer to+-- lifted types, so we have to cheat by coercing. newStablePtrPrimMVar :: MVar a -> IO (StablePtr PrimMVar) newStablePtrPrimMVar (MVar m) = IO $ \s0 -> case makeStablePtr# (unsafeCoerce# m :: PrimMVar) s0 of@@ -690,12 +733,16 @@ returnSTM :: a -> STM a returnSTM x = STM (\s -> (# s, x #)) --- | @since 4.8.0.0+-- | Takes the first non-'retry'ing 'STM' action.+--+-- @since 4.8.0.0 instance Alternative STM where empty = retry (<|>) = orElse --- | @since 4.3.0.0+-- | Takes the first non-'retry'ing 'STM' action.+--+-- @since 4.3.0.0 instance MonadPlus STM -- | Unsafely performs IO in the STM monad. Beware: this is a highly
GHC/Conc/Sync.hs-boot view
@@ -23,7 +23,8 @@ showThreadId, ThreadStatus(..), threadStatus,- sharedCAF+ sharedCAF,+ labelThreadByteArray# ) where import GHC.Base@@ -68,3 +69,4 @@ showThreadId :: ThreadId -> String threadStatus :: ThreadId -> IO ThreadStatus sharedCAF :: a -> (Ptr a -> IO (Ptr a)) -> IO a+labelThreadByteArray# :: ThreadId -> ByteArray# -> IO ()
GHC/Conc/Windows.hs view
@@ -19,6 +19,9 @@ -- #not-home module GHC.Conc.Windows+#if defined(javascript_HOST_ARCH)+ () where+#else ( ensureIOManagerIsRunning , interruptIOManager @@ -95,12 +98,18 @@ -- when the delay has expired, but the thread will never continue to -- run /earlier/ than specified. --+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- threadDelay :: Int -> IO () threadDelay = POSIX.threadDelay <!> WINIO.threadDelay -- | Set the value of returned TVar to True after a given number of -- microseconds. The caveats associated with threadDelay also apply. --+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- registerDelay :: Int -> IO (TVar Bool) registerDelay = POSIX.registerDelay <!> WINIO.registerDelay @@ -111,4 +120,4 @@ interruptIOManager :: IO () interruptIOManager = POSIX.interruptIOManager <!> WINIO.interruptIOManager -+#endif
+ GHC/Encoding/UTF8.hs view
@@ -0,0 +1,318 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE BangPatterns, MagicHash, UnboxedTuples, NoImplicitPrelude #-}+{-# OPTIONS_GHC -O2 -fno-warn-name-shadowing #-}++-- | Simple UTF-8 codecs supporting non-streaming encoding/decoding.+-- For encoding where codepoints may be broken across buffers,+-- see "GHC.IO.Encoding.UTF8".+--+-- This is one of several UTF-8 implementations provided by GHC; see Note+-- [GHC's many UTF-8 implementations] in "GHC.Encoding.UTF8" for an+-- overview.+--+module GHC.Encoding.UTF8+ ( -- * Decoding single characters+ utf8DecodeCharAddr#+ , utf8DecodeCharPtr+ , utf8DecodeCharByteArray#+ -- * Decoding strings+ , utf8DecodeByteArray#+ , utf8DecodeForeignPtr+ -- * Counting characters+ , utf8CountCharsByteArray#+ -- * Comparison+ , utf8CompareByteArray#+ -- * Encoding strings+ , utf8EncodePtr+ , utf8EncodeByteArray#+ , utf8EncodedLength+ ) where++import GHC.Types+import GHC.Base+import GHC.IO+import GHC.ST+import GHC.Word+import GHC.ForeignPtr+import GHC.Num+import GHC.Bits+import GHC.Real+import GHC.Ptr++{-+Note [GHC's many UTF-8 implementations]+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Currently GHC ships with at least five UTF-8 implementations:++a. the implementation used by GHC in `ghc-boot:GHC.Utils.Encoding`; this can be+ used at a number of types including `Addr#`, `ByteArray#`, `ForeignPtr`,+ `Ptr`, `ShortByteString`, and `ByteString`. Most of this can be removed in+ GHC 9.6+2, when the copies in `base` will become available to `ghc-boot`.++b. the copy of the `ghc-boot` definition now exported by `base:GHC.Encoding.UTF8`.+ This can be used at `Addr#`, `Ptr`, `ByteArray#`, and `ForeignPtr`.++c. the decoder used by `unpackCStringUtf8#` in `ghc-prim:GHC.CString`; this is+ specialised at `Addr#`.++d. the codec used by the IO subsystem in `base:GHC.IO.Encoding.UTF8`; this is+ specialised at `Addr#` but, unlike the above, supports recovery in the presence+ of partial codepoints (since in IO contexts codepoints may be broken across+ buffers)++e. the implementation provided by the `text` library++On its face, this seems a tad silly. On the other hand, these implementations do+materially differ from one another (e.g. in the types they support, the+detail in errors they can report, and the ability to recover from partial+codepoints). Consequently, it's quite unclear that further consolidation+would be worthwhile.++The most obvious opportunity is to move (b) into `ghc-prim` and use it to+implement (c) (namely `unpackCStringUtf8#` and friends). However, it's not+clear that this would be worthwhile as several of the types supported by (b)+are defined in `base`.+-}++-- We can't write the decoder as efficiently as we'd like without+-- resorting to unboxed extensions, unfortunately. I tried to write+-- an IO version of this function, but GHC can't eliminate boxed+-- results from an IO-returning function.+--+-- We assume we can ignore overflow when parsing a multibyte character here.+-- To make this safe, we add extra sentinel bytes to unparsed UTF-8 sequences+-- before decoding them (see "GHC.Data.StringBuffer").++{-# INLINE utf8DecodeChar# #-}+-- | Decode a single codepoint from a byte buffer indexed by the given indexing+-- function.+utf8DecodeChar# :: (Int# -> Word#) -> (# Char#, Int# #)+utf8DecodeChar# indexWord8# =+ let !ch0 = word2Int# (indexWord8# 0#) in+ case () of+ _ | isTrue# (ch0 <=# 0x7F#) -> (# chr# ch0, 1# #)++ | isTrue# ((ch0 >=# 0xC0#) `andI#` (ch0 <=# 0xDF#)) ->+ let !ch1 = word2Int# (indexWord8# 1#) in+ if isTrue# ((ch1 <# 0x80#) `orI#` (ch1 >=# 0xC0#)) then fail 1# else+ (# chr# (((ch0 -# 0xC0#) `uncheckedIShiftL#` 6#) +#+ (ch1 -# 0x80#)),+ 2# #)++ | isTrue# ((ch0 >=# 0xE0#) `andI#` (ch0 <=# 0xEF#)) ->+ let !ch1 = word2Int# (indexWord8# 1#) in+ if isTrue# ((ch1 <# 0x80#) `orI#` (ch1 >=# 0xC0#)) then fail 1# else+ let !ch2 = word2Int# (indexWord8# 2#) in+ if isTrue# ((ch2 <# 0x80#) `orI#` (ch2 >=# 0xC0#)) then fail 2# else+ (# chr# (((ch0 -# 0xE0#) `uncheckedIShiftL#` 12#) +#+ ((ch1 -# 0x80#) `uncheckedIShiftL#` 6#) +#+ (ch2 -# 0x80#)),+ 3# #)++ | isTrue# ((ch0 >=# 0xF0#) `andI#` (ch0 <=# 0xF8#)) ->+ let !ch1 = word2Int# (indexWord8# 1#) in+ if isTrue# ((ch1 <# 0x80#) `orI#` (ch1 >=# 0xC0#)) then fail 1# else+ let !ch2 = word2Int# (indexWord8# 2#) in+ if isTrue# ((ch2 <# 0x80#) `orI#` (ch2 >=# 0xC0#)) then fail 2# else+ let !ch3 = word2Int# (indexWord8# 3#) in+ if isTrue# ((ch3 <# 0x80#) `orI#` (ch3 >=# 0xC0#)) then fail 3# else+ (# chr# (((ch0 -# 0xF0#) `uncheckedIShiftL#` 18#) +#+ ((ch1 -# 0x80#) `uncheckedIShiftL#` 12#) +#+ ((ch2 -# 0x80#) `uncheckedIShiftL#` 6#) +#+ (ch3 -# 0x80#)),+ 4# #)++ | otherwise -> fail 1#+ where+ -- all invalid sequences end up here:+ fail :: Int# -> (# Char#, Int# #)+ fail nBytes# = (# '\0'#, nBytes# #)+ -- '\xFFFD' would be the usual replacement character, but+ -- that's a valid symbol in Haskell, so will result in a+ -- confusing parse error later on. Instead we use '\0' which+ -- will signal a lexer error immediately.++-- | Decode a single character at the given 'Addr#'.+utf8DecodeCharAddr# :: Addr# -> Int# -> (# Char#, Int# #)+utf8DecodeCharAddr# a# off# =+#if !MIN_VERSION_base(4,16,0)+ utf8DecodeChar# (\i# -> indexWord8OffAddr# a# (i# +# off#))+#else+ utf8DecodeChar# (\i# -> word8ToWord# (indexWord8OffAddr# a# (i# +# off#)))+#endif++-- | Decode a single codepoint starting at the given 'Ptr'.+utf8DecodeCharPtr :: Ptr Word8 -> (Char, Int)+utf8DecodeCharPtr !(Ptr a#) =+ case utf8DecodeCharAddr# a# 0# of+ (# c#, nBytes# #) -> ( C# c#, I# nBytes# )++-- | Decode a single codepoint starting at the given byte offset into a+-- 'ByteArray#'.+utf8DecodeCharByteArray# :: ByteArray# -> Int# -> (# Char#, Int# #)+utf8DecodeCharByteArray# ba# off# =+#if !MIN_VERSION_base(4,16,0)+ utf8DecodeChar# (\i# -> indexWord8Array# ba# (i# +# off#))+#else+ utf8DecodeChar# (\i# -> word8ToWord# (indexWord8Array# ba# (i# +# off#)))+#endif++{-# INLINE utf8Decode# #-}+utf8Decode# :: (IO ()) -> (Int# -> (# Char#, Int# #)) -> Int# -> IO [Char]+utf8Decode# retain decodeChar# len#+ = unpack 0#+ where+ unpack i#+ | isTrue# (i# >=# len#) = retain >> return []+ | otherwise =+ case decodeChar# i# of+ (# c#, nBytes# #) -> do+ rest <- unsafeDupableInterleaveIO $ unpack (i# +# nBytes#)+ return (C# c# : rest)++utf8DecodeForeignPtr :: ForeignPtr Word8 -> Int -> Int -> [Char]+utf8DecodeForeignPtr fp offset (I# len#)+ = unsafeDupablePerformIO $ do+ let !(Ptr a#) = unsafeForeignPtrToPtr fp `plusPtr` offset+ utf8Decode# (touchForeignPtr fp) (utf8DecodeCharAddr# a#) len#+-- Note that since utf8Decode# returns a thunk the lifetime of the+-- ForeignPtr actually needs to be longer than the lexical lifetime+-- withForeignPtr would provide here. That's why we use touchForeignPtr to+-- keep the fp alive until the last character has actually been decoded.++utf8DecodeByteArray# :: ByteArray# -> [Char]+utf8DecodeByteArray# ba#+ = unsafeDupablePerformIO $+ let len# = sizeofByteArray# ba# in+ utf8Decode# (return ()) (utf8DecodeCharByteArray# ba#) len#++utf8CompareByteArray# :: ByteArray# -> ByteArray# -> Ordering+utf8CompareByteArray# a1 a2 = go 0# 0#+ -- UTF-8 has the property that sorting by bytes values also sorts by+ -- code-points.+ -- BUT we use "Modified UTF-8" which encodes \0 as 0xC080 so this property+ -- doesn't hold and we must explicitly check this case here.+ -- Note that decoding every code point would also work but it would be much+ -- more costly.+ where+ !sz1 = sizeofByteArray# a1+ !sz2 = sizeofByteArray# a2+ go off1 off2+ | isTrue# ((off1 >=# sz1) `andI#` (off2 >=# sz2)) = EQ+ | isTrue# (off1 >=# sz1) = LT+ | isTrue# (off2 >=# sz2) = GT+ | otherwise =+#if !MIN_VERSION_base(4,16,0)+ let !b1_1 = indexWord8Array# a1 off1+ !b2_1 = indexWord8Array# a2 off2+#else+ let !b1_1 = word8ToWord# (indexWord8Array# a1 off1)+ !b2_1 = word8ToWord# (indexWord8Array# a2 off2)+#endif+ in case b1_1 of+ 0xC0## -> case b2_1 of+ 0xC0## -> go (off1 +# 1#) (off2 +# 1#)+#if !MIN_VERSION_base(4,16,0)+ _ -> case indexWord8Array# a1 (off1 +# 1#) of+#else+ _ -> case word8ToWord# (indexWord8Array# a1 (off1 +# 1#)) of+#endif+ 0x80## -> LT+ _ -> go (off1 +# 1#) (off2 +# 1#)+ _ -> case b2_1 of+#if !MIN_VERSION_base(4,16,0)+ 0xC0## -> case indexWord8Array# a2 (off2 +# 1#) of+#else+ 0xC0## -> case word8ToWord# (indexWord8Array# a2 (off2 +# 1#)) of+#endif+ 0x80## -> GT+ _ -> go (off1 +# 1#) (off2 +# 1#)+ _ | isTrue# (b1_1 `gtWord#` b2_1) -> GT+ | isTrue# (b1_1 `ltWord#` b2_1) -> LT+ | otherwise -> go (off1 +# 1#) (off2 +# 1#)++utf8CountCharsByteArray# :: ByteArray# -> Int+utf8CountCharsByteArray# ba = go 0# 0#+ where+ len# = sizeofByteArray# ba+ go i# n#+ | isTrue# (i# >=# len#) = I# n#+ | otherwise =+ case utf8DecodeCharByteArray# ba i# of+ (# _, nBytes# #) -> go (i# +# nBytes#) (n# +# 1#)++{-# INLINE utf8EncodeChar #-}+utf8EncodeChar :: (Int# -> Word8# -> State# s -> State# s)+ -> Char -> ST s Int+utf8EncodeChar write# c =+ let x = fromIntegral (ord c) in+ case () of+ _ | x > 0 && x <= 0x007f -> do+ write 0 x+ return 1+ -- NB. '\0' is encoded as '\xC0\x80', not '\0'. This is so that we+ -- can have 0-terminated UTF-8 strings (see GHC.Base.unpackCStringUtf8).+ | x <= 0x07ff -> do+ write 0 (0xC0 .|. ((x `shiftR` 6) .&. 0x1F))+ write 1 (0x80 .|. (x .&. 0x3F))+ return 2+ | x <= 0xffff -> do+ write 0 (0xE0 .|. (x `shiftR` 12) .&. 0x0F)+ write 1 (0x80 .|. (x `shiftR` 6) .&. 0x3F)+ write 2 (0x80 .|. (x .&. 0x3F))+ return 3+ | otherwise -> do+ write 0 (0xF0 .|. (x `shiftR` 18))+ write 1 (0x80 .|. ((x `shiftR` 12) .&. 0x3F))+ write 2 (0x80 .|. ((x `shiftR` 6) .&. 0x3F))+ write 3 (0x80 .|. (x .&. 0x3F))+ return 4+ where+ {-# INLINE write #-}+ write (I# off#) (W# c#) = ST $ \s ->+#if !MIN_VERSION_base(4,16,0)+ case write# off# (narrowWord8# c#) s of+#else+ case write# off# (wordToWord8# c#) s of+#endif+ s -> (# s, () #)++utf8EncodePtr :: Ptr Word8 -> String -> IO ()+utf8EncodePtr (Ptr a#) str = go a# str+ where go !_ [] = return ()+ go a# (c:cs) = do+#if !MIN_VERSION_base(4,16,0)+ -- writeWord8OffAddr# was taking a Word#+ I# off# <- stToIO $ utf8EncodeChar (\i w -> writeWord8OffAddr# a# i (extendWord8# w)) c+#else+ I# off# <- stToIO $ utf8EncodeChar (writeWord8OffAddr# a#) c+#endif+ go (a# `plusAddr#` off#) cs++utf8EncodeByteArray# :: String -> ByteArray#+utf8EncodeByteArray# str = runRW# $ \s ->+ case utf8EncodedLength str of { I# len# ->+ case newByteArray# len# s of { (# s, mba# #) ->+ case go mba# 0# str of { ST f_go ->+ case f_go s of { (# s, () #) ->+ case unsafeFreezeByteArray# mba# s of { (# _, ba# #) ->+ ba# }}}}}+ where+ go _ _ [] = return ()+ go mba# i# (c:cs) = do+#if !MIN_VERSION_base(4,16,0)+ -- writeWord8Array# was taking a Word#+ I# off# <- utf8EncodeChar (\j# w -> writeWord8Array# mba# (i# +# j#) (extendWord8# w)) c+#else+ I# off# <- utf8EncodeChar (\j# -> writeWord8Array# mba# (i# +# j#)) c+#endif+ go mba# (i# +# off#) cs++utf8EncodedLength :: String -> Int+utf8EncodedLength str = go 0 str+ where go !n [] = n+ go n (c:cs)+ | ord c > 0 && ord c <= 0x007f = go (n+1) cs+ | ord c <= 0x07ff = go (n+2) cs+ | ord c <= 0xffff = go (n+3) cs+ | otherwise = go (n+4) cs
GHC/Enum.hs view
@@ -160,14 +160,14 @@ {-# INLINABLE enumFromThenTo #-} enumFromThenTo x1 x2 y = map toEnum [fromEnum x1, fromEnum x2 .. fromEnum y] --- See Note [Stable Unfolding for list producers]-{-# INLINABLE boundedEnumFrom #-}+-- See Note [Inline Enum method helpers]+{-# INLINE boundedEnumFrom #-} -- Default methods for bounded enumerations boundedEnumFrom :: (Enum a, Bounded a) => a -> [a] boundedEnumFrom n = map toEnum [fromEnum n .. fromEnum (maxBound `asTypeOf` n)] --- See Note [Stable Unfolding for list producers]-{-# INLINABLE boundedEnumFromThen #-}+-- See Note [Inline Enum method helpers]+{-# INLINE boundedEnumFromThen #-} boundedEnumFromThen :: (Enum a, Bounded a) => a -> a -> [a] boundedEnumFromThen n1 n2 | i_n2 >= i_n1 = map toEnum [i_n1, i_n2 .. fromEnum (maxBound `asTypeOf` n1)]@@ -176,11 +176,55 @@ i_n1 = fromEnum n1 i_n2 = fromEnum n2 -{--Note [Stable Unfolding for list producers]-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+{- Note [Stable Unfolding for list producers]+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The INLINABLE/INLINE pragmas ensure that we export stable (unoptimised) unfoldings in the interface file so we can do list fusion at usage sites.++Related tickets: #15185, #8763, #18178.++Note [Inline Enum method helpers]+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+The overloaded `numericEnumFrom` functions are used to abbreviate Enum+instances. We call them "method helpers". For example, in GHC.Float:++ numericEnumFromTo :: (Ord a, Fractional a) => a -> a -> [a]+ mnumericEnumFromTo = ...blah...++ instance Enum Double where+ ...+ enumFromTo = numericEnumFromTo++Similarly with the overloaded `boundedEnumFrom` functions. E.g. in GHC.Word++ boundedEnumFrom :: (Enum a, Bounded a) => a -> [a]+ boundedEnumFrom n = map toEnum [fromEnum n .. fromEnum (maxBound `asTypeOf` n)]++ instance Enum Word8 where+ ...+ enumFrom = boundedEnumFrom++In both cases, it is super-important to specialise these overloaded+helper function (`numericEnumFromTo`, `boundedEnumFrom` etc) to the+particular type of the instance, else every use of that instance will+be inefficient.++Moreover (see Note [Stable Unfolding for list producers]) the helper+function is a list producer, so we want it to have a stable unfolding+to support fusion.++So we attach an INLINE pragma to them.++Alternatives might be+* An `INLINABLE` pragma on `numericEnumFromTo`, relying on the+ specialiser to create a specialised version. But (a) if the+ instance method is marked INLINE we may get spurious INLINE+ loop-breaker warnings (#21343), and (b) specialision gains no extra+ sharing, because there is just one call at each type.++* Using `inline` at the call site+ enumFromTo = inline numericEnumFromTo+ But that means remembering to do this in multiple places. -} ------------------------------------------------------------------------@@ -235,19 +279,19 @@ enumFromThenTo () () () = let many = ():many in many instance Enum a => Enum (Solo a) where- succ (Solo a) = Solo (succ a)- pred (Solo a) = Solo (pred a)+ succ (MkSolo a) = MkSolo (succ a)+ pred (MkSolo a) = MkSolo (pred a) - toEnum x = Solo (toEnum x)+ toEnum x = MkSolo (toEnum x) - fromEnum (Solo x) = fromEnum x- enumFrom (Solo x) = [Solo a | a <- enumFrom x]- enumFromThen (Solo x) (Solo y) =- [Solo a | a <- enumFromThen x y]- enumFromTo (Solo x) (Solo y) =- [Solo a | a <- enumFromTo x y]- enumFromThenTo (Solo x) (Solo y) (Solo z) =- [Solo a | a <- enumFromThenTo x y z]+ fromEnum (MkSolo x) = fromEnum x+ enumFrom (MkSolo x) = [MkSolo a | a <- enumFrom x]+ enumFromThen (MkSolo x) (MkSolo y) =+ [MkSolo a | a <- enumFromThen x y]+ enumFromTo (MkSolo x) (MkSolo y) =+ [MkSolo a | a <- enumFromTo x y]+ enumFromThenTo (MkSolo x) (MkSolo y) (MkSolo z) =+ [MkSolo a | a <- enumFromThenTo x y z] deriving instance Bounded a => Bounded (Solo a) -- Report requires instances up to 15
GHC/Event.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE CPP #-} -- ---------------------------------------------------------------------------- -- | This module provides scalable event notification for file@@ -10,6 +11,9 @@ -- ---------------------------------------------------------------------------- module GHC.Event+#if defined(javascript_HOST_ARCH)+ ( ) where+#else ( -- * Types EventManager , TimerManager@@ -44,3 +48,4 @@ updateTimeout, unregisterTimeout, TimerManager) import GHC.Event.Thread (getSystemEventManager, getSystemTimerManager) +#endif
GHC/Event/Control.hs view
@@ -26,6 +26,7 @@ , setNonBlockingFD ) where +#include <ghcplatform.h> #include "EventConfig.h" import GHC.Base@@ -145,6 +146,10 @@ io_MANAGER_WAKEUP = 0xff io_MANAGER_DIE = 0xfe +#if !defined(HAVE_SIGNAL_H)+readControlMessage :: Control -> Fd -> IO ControlMessage+readControlMessage _ _ = errorWithoutStackTrace "readControlMessage"+#else foreign import ccall "__hscore_sizeof_siginfo_t" sizeof_siginfo_t :: CSize @@ -180,6 +185,7 @@ #else 4096 #endif+#endif sendWakeup :: Control -> IO () #if defined(HAVE_EVENTFD)@@ -229,5 +235,10 @@ c_eventfd_write :: CInt -> CULLong -> IO CInt #endif +#if defined(wasm32_HOST_ARCH)+c_setIOManagerWakeupFd :: CInt -> IO ()+c_setIOManagerWakeupFd _ = pure ()+#else foreign import ccall unsafe "setIOManagerWakeupFd" c_setIOManagerWakeupFd :: CInt -> IO ()+#endif
GHC/Event/Thread.hs view
@@ -1,7 +1,13 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE Trustworthy #-} {-# LANGUAGE BangPatterns, NoImplicitPrelude #-} +#include <ghcplatform.h>+ module GHC.Event.Thread+#if defined(javascript_HOST_ARCH)+ ( ) where+#else ( getSystemEventManager , getSystemTimerManager , ensureIOManagerIsRunning@@ -15,6 +21,8 @@ , registerDelay , blockedOnBadFD -- used by RTS ) where++ -- TODO: Use new Windows I/O manager import Control.Exception (finally, SomeException, toException) import Data.Foldable (forM_, mapM_, sequence_)@@ -55,6 +63,10 @@ -- There is no guarantee that the thread will be rescheduled promptly -- when the delay has expired, but the thread will never continue to -- run /earlier/ than specified.+--+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- threadDelay :: Int -> IO () threadDelay usecs = mask_ $ do mgr <- getSystemTimerManager@@ -65,6 +77,9 @@ -- | Set the value of returned TVar to True after a given number of -- microseconds. The caveats associated with threadDelay also apply. --+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- registerDelay :: Int -> IO (TVar Bool) registerDelay usecs = do t <- atomically $ newTVar False@@ -414,9 +429,19 @@ tid <- restartPollLoop mgr i writeIOArray eventManagerArray i (Just (tid,mgr)) +#if defined(wasm32_HOST_ARCH)+c_setIOManagerControlFd :: CUInt -> CInt -> IO ()+c_setIOManagerControlFd _ _ = pure ()++c_setTimerManagerControlFd :: CInt -> IO ()+c_setTimerManagerControlFd _ = pure ()+#else -- Used to tell the RTS how it can send messages to the I/O manager. foreign import ccall unsafe "setIOManagerControlFd" c_setIOManagerControlFd :: CUInt -> CInt -> IO () foreign import ccall unsafe "setTimerManagerControlFd" c_setTimerManagerControlFd :: CInt -> IO ()+#endif++#endif
GHC/Event/TimerManager.hs view
@@ -7,6 +7,9 @@ -- TODO: use the new Windows IO manager module GHC.Event.TimerManager+#if defined(javascript_HOST_ARCH)+ () where+#else ( -- * Types TimerManager @@ -212,6 +215,10 @@ -- returned 'TimeoutKey' can be used to later unregister or update the -- timeout. The timeout is automatically unregistered after the given -- time has passed.+--+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- registerTimeout :: TimerManager -> Int -> TimeoutCallback -> IO TimeoutKey registerTimeout mgr us cb = do !key <- newUnique (emUniqueSource mgr)@@ -231,6 +238,10 @@ -- | Update an active timeout to fire in the given number of -- microseconds.+--+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- updateTimeout :: TimerManager -> TimeoutKey -> Int -> IO () updateTimeout mgr (TK key) us = do expTime <- expirationTime us@@ -253,3 +264,5 @@ -- minimum element didn't change. t0 /= t1 _ -> True++#endif
GHC/Event/Windows.hsc view
@@ -68,7 +68,7 @@ module GHC.Event.Windows.ConsoleEvent ) where --- define DEBUG 1+-- #define DEBUG 1 -- #define DEBUG_TRACE 1 @@ -853,6 +853,10 @@ -- The timeout is automatically unregistered when it fires. -- -- The 'TimeoutCallback' will not be called more than once.+--+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- {-# NOINLINE registerTimeout #-} registerTimeout :: Manager -> Int -> TimeoutCallback -> IO TimeoutKey registerTimeout mgr@Manager{..} uSrelTime cb = do@@ -866,6 +870,10 @@ -- | Update an active timeout to fire in the given number of seconds (from the -- time 'updateTimeout' is called), instead of when it was going to fire. -- This has no effect if the timeout has already fired.+--+-- Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- updateTimeout :: Manager -> TimeoutKey -> Seconds -> IO () updateTimeout mgr (TK key) relTime = do now <- getTime (mgrClock mgr)@@ -1031,7 +1039,7 @@ -- before adding something to the work queue. -- -- Thread safety: This function atomically replaces outstanding events with--- a pointer to nullReq. This means it's safe (but potentially wastefull) to+-- a pointer to nullReq. This means it's safe (but potentially wasteful) to -- have two concurrent or parallel invocations on the same array. processCompletion :: Manager -> Int -> Maybe Seconds -> IO (Bool, Maybe Seconds) processCompletion Manager{..} n delay = do
GHC/Event/Windows/FFI.hsc view
@@ -263,7 +263,7 @@ -- | Tag type for @LPOVERLAPPED@. data OVERLAPPED --- | Tag type for the extended version of @OVERLAPPED@ containg some book+-- | Tag type for the extended version of @OVERLAPPED@ containing some book -- keeping information. data HASKELL_OVERLAPPED @@ -305,7 +305,7 @@ -- | Allocate a new -- <http://msdn.microsoft.com/en-us/library/windows/desktop/ms684342%28v=vs.85%29.aspx -- OVERLAPPED> structure on the unmanaged heap. This also zeros the memory to--- prevent the values inside the struct to be incorrectlt interpreted as data+-- prevent the values inside the struct to be incorrectly interpreted as data -- payload. -- -- We extend the overlapped structure with some extra book keeping information@@ -361,7 +361,7 @@ -- [2] https://docs.microsoft.com/en-us/windows/win32/sync/synchronization-and-overlapped-input-and-output -- -- As such we need to annotate all NativeHandles with a Boolean to indicate--- wether it's an asynchronous handle or not.+-- whether it's an asynchronous handle or not. -- This allows us to manually wait for the completion instead of relying -- on the I/O system to do the right thing. As we have been using the -- buffers in async mode we may not have moved the file pointer on the kernel
GHC/Event/Windows/Thread.hs view
@@ -19,6 +19,8 @@ interruptIOManager :: IO () interruptIOManager = interruptSystemManager +-- | Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes. threadDelay :: Int -> IO () threadDelay usecs = mask_ $ do m <- newEmptyIOPort@@ -26,6 +28,8 @@ reg <- registerTimeout mgr usecs $ writeIOPort m () >> return () readIOPort m `onException` unregisterTimeout mgr reg +-- | Be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes. registerDelay :: Int -> IO (TVar Bool) registerDelay usecs = do t <- newTVarIO False
GHC/Exception.hs view
@@ -5,7 +5,7 @@ , RecordWildCards , PatternSynonyms #-}-{-# LANGUAGE TypeInType #-}+{-# LANGUAGE DataKinds, PolyKinds #-} {-# OPTIONS_HADDOCK not-home #-} -----------------------------------------------------------------------------
GHC/Exception/Type.hs view
@@ -143,6 +143,9 @@ displayException :: e -> String displayException = show +-- | @since 4.8.0.0+instance Exception Void+ -- | @since 3.0 instance Exception SomeException where toException se = se
GHC/Exts.hs view
@@ -48,6 +48,7 @@ -- ** Pointer comparison operations -- See `Note [Pointer comparison operations]` in primops.txt.pp reallyUnsafePtrEquality,+ unsafePtrEquality#, eqStableName#, sameArray#, sameMutableArray#,@@ -59,6 +60,7 @@ sameMutVar#, sameTVar#, sameIOPort#,+ samePromptTag#, -- ** Compat wrapper atomicModifyMutVar#,
GHC/Fingerprint.hs view
@@ -43,7 +43,7 @@ fingerprintFingerprints :: [Fingerprint] -> Fingerprint fingerprintFingerprints fs = unsafeDupablePerformIO $ withArrayLen fs $ \len p ->- fingerprintData (castPtr p) (len * sizeOf (head fs))+ fingerprintData (castPtr p) (len * sizeOf (undefined :: Fingerprint)) fingerprintData :: Ptr Word8 -> Int -> IO Fingerprint fingerprintData buf len =
GHC/Float.hs view
@@ -335,6 +335,9 @@ -- -- >>> 0/0 * (recip 0/0 :: Float) -- NaN+--+-- Additionally, because of @NaN@ this instance does not obey the left-inverse+-- law for 'toRational'/'fromRational'. instance Fractional Float where (/) x y = divideFloat x y {-# INLINE fromRational #-}@@ -342,7 +345,8 @@ recip x = 1.0 / x rationalToFloat :: Integer -> Integer -> Float-{-# NOINLINE [1] rationalToFloat #-}+{-# NOINLINE [0] rationalToFloat #-}+-- Re NOINLINE pragma, see Note [realToFrac natural-to-float] rationalToFloat n 0 | n == 0 = 0/0 | n < 0 = (-1)/0@@ -564,6 +568,9 @@ -- -- >>> 0/0 * (recip 0/0 :: Double) -- NaN+--+-- Additionally, because of @NaN@ this instance does not obey the left-inverse+-- law for 'toRational'/'fromRational'. instance Fractional Double where (/) x y = divideDouble x y {-# INLINE fromRational #-}@@ -571,7 +578,8 @@ recip x = 1.0 / x rationalToDouble :: Integer -> Integer -> Double-{-# NOINLINE [1] rationalToDouble #-}+{-# NOINLINE [0] rationalToDouble #-}+-- Re NOINLINE pragma, see Note [realToFrac natural-to-float] rationalToDouble n 0 | n == 0 = 0/0 | n < 0 = (-1)/0@@ -1482,6 +1490,25 @@ A few more details in #2251, and the patch message "Add RULES for realToFrac from Int".++Note [realToFrac natural-to-float]+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Consider (realToFrac @Natural @Float ..dicts.. (NS lit#))+We want to constant-fold this. For many types this is guaranteed+by a RULE for realToFrac: eg. RULE "realToFrac/Float->Double" above.++In case there is a similar rule, we do not inline realToFrac in stage 2.+But for whatever reason, there is no such RULE for Natural. So in stage 1+we end up with+ rationalToFloat (integerFromNatural (NS lit))+and that turns into+ rationalToFloat (IS lit#) (IS 1#)++Now we'd have a BUILTIN constant folding rule for rationalToFloat; but+to allow that rule to fire reliably we should delay inlining rationalToFloat+until stage 0. (It may get an inlining from CPR analysis.)++Hence the NOINLINE[0] rationalToFloat, and similarly rationalToDouble. -} -- Utils@@ -1613,22 +1640,3 @@ "Word# -> Natural -> Double#" forall x. naturalToDouble# (NS x) = word2Double# x #-}---- We don't have word64ToFloat/word64ToDouble primops (#23908), only--- word2Float/word2Double, so we can only perform these transformations when--- word-size is 64-bit.-#if WORD_SIZE_IN_BITS == 64-{-# RULES--"Int64# -> Integer -> Float#"- forall x. integerToFloat# (integerFromInt64# x) = int2Float# (int64ToInt# x)--"Int64# -> Integer -> Double#"- forall x. integerToDouble# (integerFromInt64# x) = int2Double# (int64ToInt# x)--"Word64# -> Integer -> Float#"- forall x. integerToFloat# (integerFromWord64# x) = word2Float# (word64ToWord# x)--"Word64# -> Integer -> Double#"- forall x. integerToDouble# (integerFromWord64# x) = word2Double# (word64ToWord# x) #-}-#endif
GHC/Foreign.hs view
@@ -19,6 +19,7 @@ module GHC.Foreign ( -- * C strings with a configurable encoding+ CString, CStringLen, -- conversion of C strings into Haskell strings --@@ -74,8 +75,11 @@ | otherwise = const (return ()) --- These definitions are identical to those in Foreign.C.String, but copied in here to avoid a cycle:+-- | A C string is a reference to an array of C characters terminated by NUL. type CString = Ptr CChar++-- | A string with explicit length information in bytes instead of a+-- terminating NUL (allowing NUL characters in the middle of the string). type CStringLen = (Ptr CChar, Int) -- exported functions@@ -301,7 +305,7 @@ first to the size check failing and *then* call the continuation. Making this evident to the compiler avoids historic space leaks. -In a previous interation of this code we had a pattern that, somewhat simplified,+In a previous iteration of this code we had a pattern that, somewhat simplified, looked like this: go :: State -> (State -> IO a) -> IO a@@ -323,6 +327,6 @@ for `action` until `action` returns. Which in turn keeps alive the *whole* lazy list via `action` until the action has fully run. This went wrong in #20107, where the continuation kept an entire lazy bytestring alive-rather than allowing it to be incrementaly consumed and collected.+rather than allowing it to be incrementally consumed and collected. -}
GHC/ForeignPtr.hs view
@@ -237,12 +237,17 @@ -- -- ^Turns a plain memory reference into a foreign object by -- associating a finalizer - given by the monadic operation - with the--- reference. The storage manager will start the finalizer, in a--- separate thread, some time after the last reference to the--- @ForeignPtr@ is dropped. There is no guarantee of promptness, and+-- reference.+--+-- When finalization is triggered by GC, the storage manager will start the+-- finalizer, in a separate thread, some time after the last reference to the+-- @ForeignPtr@ is dropped. There is __no guarantee of promptness__, and -- in fact there is no guarantee that the finalizer will eventually--- run at all.+-- run at all for GC-triggered finalization. --+-- When finalization is triggered by explicitly calling @finalizeForeignPtr@,+-- the finalizer will run immediately on the current Haskell thread.+-- -- Note that references from a finalizer do not necessarily prevent -- another object from being finalized. If A's finalizer refers to B -- (perhaps using 'touchForeignPtr', then the only guarantee is that@@ -402,8 +407,10 @@ -- object which have already been registered. -- -- This is a variant of @addForeignPtrFinalizer@, where the finalizer--- is an arbitrary @IO@ action. When it is invoked, the finalizer--- will run in a new thread.+-- is an arbitrary @IO@ action.+-- When finalization is triggered by GC, the finalizer will run in a new thread.+-- When finalization is triggered by explicitly calling @finalizeForeignPtr@,+-- the finalizer will run immediately on the current Haskell thread. -- -- NB. Be very careful with these finalizers. One common trap is that -- if a finalizer references another finalized value, it does not@@ -554,7 +561,7 @@ -- ^This function ensures that the foreign object in -- question is alive at the given place in the sequence of IO -- actions. However, this comes with a significant caveat: the contract above--- does not hold if GHC can demonstrate that the code preceeding+-- does not hold if GHC can demonstrate that the code preceding -- @touchForeignPtr@ diverges (e.g. by looping infinitely or throwing an -- exception). For this reason, you are strongly advised to use instead -- 'withForeignPtr' where possible.
GHC/Generics.hs view
@@ -746,7 +746,7 @@ import GHC.Ix ( Ix ) import GHC.Base ( Alternative(..), Applicative(..), Functor(..) , Monad(..), MonadPlus(..), NonEmpty(..), String, coerce- , Semigroup(..), Monoid(..) )+ , Semigroup(..), Monoid(..), Void ) import GHC.Classes ( Eq(..), Ord(..) ) import GHC.Enum ( Bounded, Enum ) import GHC.Read ( Read(..) )@@ -1480,6 +1480,15 @@ newtype Generically1 f a where Generically1 :: forall {k} f a. f a -> Generically1 @k f a +-- | @since 4.18.0.0+instance (Generic1 f, Eq (Rep1 f a)) => Eq (Generically1 f a) where+ Generically1 x == Generically1 y = from1 x == from1 y+ Generically1 x /= Generically1 y = from1 x /= from1 y++-- | @since 4.18.0.0+instance (Generic1 f, Ord (Rep1 f a)) => Ord (Generically1 f a) where+ Generically1 x `compare` Generically1 y = from1 x `compare` from1 y+ -- | @since 4.17.0.0 instance (Generic1 f, Functor (Rep1 f)) => Functor (Generically1 f) where fmap :: (a -> a') -> (Generically1 f a -> Generically1 f a')@@ -1543,6 +1552,9 @@ -------------------------------------------------------------------------------- -- Derived instances --------------------------------------------------------------------------------++-- | @since 4.8.0.0+deriving instance Generic Void -- | @since 4.6.0.0 deriving instance Generic [a]
GHC/IO/Encoding.hs view
@@ -180,7 +180,11 @@ -- N.B. initLocaleEncoding is exported for use in System.IO.localeEncoding. -- NOINLINE ensures that this result is shared. -#if !defined(mingw32_HOST_OS)+#if defined(javascript_HOST_ARCH)+initLocaleEncoding = utf8+initFileSystemEncoding = utf8+initForeignEncoding = utf8+#elif !defined(mingw32_HOST_OS) -- It is rather important that we don't just call Iconv.mkIconvEncoding here -- because some iconvs (in particular GNU iconv) will brokenly UTF-8 encode -- lone surrogates without complaint.
GHC/IO/Encoding/CodePage/API.hs view
@@ -32,6 +32,10 @@ import System.Posix.Internals +#if defined(javascript_HOST_ARCH)+mkCodePageEncoding :: String+mkCodePageEncoding = ""+#else c_DEBUG_DUMP :: Bool c_DEBUG_DUMP = False@@ -422,3 +426,5 @@ -- Must have interpreted all given bytes successfully -- We need to iterate until we have consumed the complete contents of the buffer Right wrote_elts -> go (bufferRemove n ibuf) (obuf { bufR = bufR obuf + wrote_elts })++#endif
GHC/IO/Encoding/Failure.hs view
@@ -61,7 +61,7 @@ -- Roundtripping is based on the ideas of PEP383. -- -- We used to use the range of private-use characters from 0xEF80 to--- 0xEFFF designated for "encoding hacks" by the ConScript Unicode Registery+-- 0xEFFF designated for "encoding hacks" by the ConScript Unicode Registry -- to encode these characters. -- -- However, people didn't like this because it means we don't get
GHC/IO/Encoding/UTF8.hs view
@@ -18,6 +18,10 @@ -- -- UTF-8 Codec for the IO library --+-- This is one of several UTF-8 implementations provided by GHC; see Note+-- [GHC's many UTF-8 implementations] in "GHC.Encoding.UTF8" for an+-- overview.+-- -- Portions Copyright : (c) Tom Harper 2008-2009, -- (c) Bryan O'Sullivan 2009, -- (c) Duncan Coutts 2009
GHC/IO/FD.hs view
@@ -177,7 +177,7 @@ -- file. If an exception occurs in @act1@, then the file will be closed. -- @act1@ /must not/ close the file itself. If it does so and then receives an -- exception, then the exception handler will attempt to close it again, which--- is impermissable.+-- is impermissible. -- -- @act2@ is performed with asynchronous exceptions masked. It is passed a -- function to restore the masking state and the result of @act1@. It /must@@ -570,6 +570,10 @@ readRawBufferPtr :: String -> FD -> Ptr Word8 -> Int -> CSize -> IO Int readRawBufferPtr loc !fd !buf !off !len+#if defined(javascript_HOST_ARCH)+ = fmap fromIntegral . uninterruptibleMask_ $+ throwErrnoIfMinus1 loc (c_read (fdFD fd) (buf `plusPtr` off) len)+#else | isNonBlocking fd = unsafe_read -- unsafe is ok, it can't block | otherwise = do r <- throwErrnoIfMinus1 loc (unsafe_fdReady (fdFD fd) 0 0 0)@@ -583,10 +587,19 @@ read = if threaded then safe_read else unsafe_read unsafe_read = do_read (c_read (fdFD fd) (buf `plusPtr` off) len) safe_read = do_read (c_safe_read (fdFD fd) (buf `plusPtr` off) len)+#endif -- return: -1 indicates EOF, >=0 is bytes read readRawBufferPtrNoBlock :: String -> FD -> Ptr Word8 -> Int -> CSize -> IO Int readRawBufferPtrNoBlock loc !fd !buf !off !len+#if defined(javascript_HOST_ARCH)+ = uninterruptibleMask_ $ do+ r <- throwErrnoIfMinus1 loc (c_read (fdFD fd) (buf `plusPtr` off) len)+ case r of+ (-1) -> return 0+ 0 -> return (-1)+ n -> return (fromIntegral n)+#else | isNonBlocking fd = unsafe_read -- unsafe is ok, it can't block | otherwise = do r <- unsafe_fdReady (fdFD fd) 0 0 0 if r /= 0 then safe_read@@ -600,9 +613,14 @@ n -> return (fromIntegral n) unsafe_read = do_read (c_read (fdFD fd) (buf `plusPtr` off) len) safe_read = do_read (c_safe_read (fdFD fd) (buf `plusPtr` off) len)+#endif writeRawBufferPtr :: String -> FD -> Ptr Word8 -> Int -> CSize -> IO CInt writeRawBufferPtr loc !fd !buf !off !len+#if defined(javascript_HOST_ARCH)+ = fmap fromIntegral . uninterruptibleMask_ $+ throwErrnoIfMinus1 loc (c_write (fdFD fd) (buf `plusPtr` off) len)+#else | isNonBlocking fd = unsafe_write -- unsafe is ok, it can't block | otherwise = do r <- unsafe_fdReady (fdFD fd) 1 0 0 if r /= 0@@ -615,9 +633,17 @@ write = if threaded then safe_write else unsafe_write unsafe_write = do_write (c_write (fdFD fd) (buf `plusPtr` off) len) safe_write = do_write (c_safe_write (fdFD fd) (buf `plusPtr` off) len)+#endif writeRawBufferPtrNoBlock :: String -> FD -> Ptr Word8 -> Int -> CSize -> IO CInt writeRawBufferPtrNoBlock loc !fd !buf !off !len+#if defined(javascript_HOST_ARCH)+ = uninterruptibleMask_ $ do+ r <- throwErrnoIfMinus1 loc (c_write (fdFD fd) (buf `plusPtr` off) len)+ case r of+ (-1) -> return 0+ n -> return (fromIntegral n)+#else | isNonBlocking fd = unsafe_write -- unsafe is ok, it can't block | otherwise = do r <- unsafe_fdReady (fdFD fd) 1 0 0 if r /= 0 then write@@ -630,12 +656,15 @@ write = if threaded then safe_write else unsafe_write unsafe_write = do_write (c_write (fdFD fd) (buf `plusPtr` off) len) safe_write = do_write (c_safe_write (fdFD fd) (buf `plusPtr` off) len)+#endif +#if !defined(javascript_HOST_ARCH) isNonBlocking :: FD -> Bool isNonBlocking fd = fdIsNonBlocking fd /= 0 foreign import ccall unsafe "fdReady" unsafe_fdReady :: CInt -> CBool -> Int64 -> CBool -> IO CInt+#endif #else /* mingw32_HOST_OS.... */ @@ -725,12 +754,14 @@ #endif +#if !defined(javascript_HOST_ARCH) foreign import ccall unsafe "rtsSupportsBoundThreads" threaded :: Bool+#endif -- ----------------------------------------------------------------------------- -- utils -#if !defined(mingw32_HOST_OS)+#if !defined(mingw32_HOST_OS) && !defined(javascript_HOST_ARCH) throwErrnoIfMinus1RetryOnBlock :: String -> IO CSsize -> IO CSsize -> IO CSsize throwErrnoIfMinus1RetryOnBlock loc f on_block = do
GHC/IO/Handle/Internals.hs view
@@ -440,9 +440,39 @@ handleFinalizer :: FilePath -> MVar Handle__ -> IO () handleFinalizer fp m = do handle_ <- takeMVar m- (handle_', _) <- hClose_help handle_+ (handle_', mb_exc) <- hClose_help handle_ putMVar m handle_'- return ()+ case mb_exc of+ Just exc -> throwIO exc+ Nothing -> return ()++{-+ Note [Handling exceptions during Handle finalization]+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ Handles which become unreachable are flushed closed automatically by the+ garbage collector, which calls 'GHC.IO.Handle.Internals.handleFinalizer'.+ However, numerous things can go wrong during this process. For instance,+ while we are flushing we may find that the handle's device is full. What to+ do in this case?++ For a long time we would simply ignore the failure. However, silently+ ignoring failures is rarely a good option. For this reason the+ 'GHC.Weak.Finalizer.runFinalizerBatch' now catches exceptions and+ dispatches them to a notification action (which can be set via+ 'GHC.Weak.Finalize.setFinalizerExceptionHandler').++ This then poses the question of what happens if the exception notification+ action itself throws an exception. We currently ignore such second-order+ exceptions.++ Note that stdout/stderr are handled a bit differently, since they are never+ finalized by the GC. Instead, 'GHC.TopHandler.flushStdHandles' explicitly+ catches exceptions from hFlush and dispatches them to the usual Weak+ finalization exception notifier.++ See #21336.++ -} -- --------------------------------------------------------------------------- -- Allocating buffers
GHC/IO/StdHandles.hs view
@@ -12,7 +12,7 @@ -- Stability : internal -- Portability : non-portable ----- This model abtracts away the platform specific handles that can be toggled+-- This model abstracts away the platform specific handles that can be toggled -- through the RTS. -- -----------------------------------------------------------------------------
GHC/IO/Unsafe.hs view
@@ -47,7 +47,7 @@ But if we were to define unsafePerformIO like this unsafePerformIO (IO m) = case runRW# m of (# _, r #) -> r -then we'll push that `case` inside the arugment to runRW#, givign+then we'll push that `case` inside the argument to runRW#, giving runRW# (\s -> case lockMemoTable s of s1 -> let r = f x in case updateMemoTable s1 of s2 ->
GHC/IO/Windows/Paths.hs view
@@ -35,7 +35,7 @@ -- | This function converts Windows paths between namespaces. More specifically -- It converts an explorer style path into a NT or Win32 namespace.--- This has several caveats but they are caviats that are native to Windows and+-- This has several caveats but they are caveats that are native to Windows and -- not POSIX. See -- https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247.aspx. -- Anything else such as raw device paths we leave untouched. The main benefit
GHC/IOPort.hs view
@@ -96,7 +96,7 @@ writeIOPort ioport value >> return ioport --- |Atomically read the the contents of the 'IOPort'. If the 'IOPort' is+-- |Atomically read the contents of the 'IOPort'. If the 'IOPort' is -- currently empty, 'readIOPort' will wait until it is full. After a -- 'readIOPort', the 'IOPort' is left empty. --
GHC/IORef.hs view
@@ -32,7 +32,27 @@ -- --------------------------------------------------------------------------- -- IORefs --- |A mutable variable in the 'IO' monad+-- |A mutable variable in the 'IO' monad.+--+-- >>> import Data.IORef+-- >>> r <- newIORef 0+-- >>> readIORef r+-- 0+-- >>> writeIORef r 1+-- >>> readIORef r+-- 1+-- >>> atomicWriteIORef r 2+-- >>> readIORef r+-- 2+-- >>> modifyIORef' r (+ 1)+-- >>> readIORef r+-- 3+-- >>> atomicModifyIORef' r (\a -> (a + 1, ()))+-- >>> readIORef r+-- 4+--+-- See also 'Data.STRef.STRef' and 'Control.Concurrent.MVar.MVar'.+-- newtype IORef a = IORef (STRef RealWorld a) deriving Eq -- ^ Pointer equality.@@ -43,15 +63,23 @@ newIORef :: a -> IO (IORef a) newIORef v = stToIO (newSTRef v) >>= \ var -> return (IORef var) --- |Read the value of an 'IORef'+-- |Read the value of an 'IORef'.+--+-- Beware that the CPU executing a thread can reorder reads or writes+-- to independent locations. See "Data.IORef#memmodel" for more details. readIORef :: IORef a -> IO a readIORef (IORef var) = stToIO (readSTRef var) --- |Write a new value into an 'IORef'+-- |Write a new value into an 'IORef'.+--+-- This function does not create a memory barrier and can be reordered+-- with other independent reads and writes within a thread, which may cause issues+-- for multithreaded execution. In these cases, consider using 'Data.IORef.atomicWriteIORef'+-- instead. See "Data.IORef#memmodel" for more details. writeIORef :: IORef a -> a -> IO () writeIORef (IORef var) v = stToIO (writeSTRef var v) --- Atomically apply a function to the contents of an 'IORef',+-- | Atomically apply a function to the contents of an 'IORef', -- installing its first component in the 'IORef' and returning -- the old contents and the result of applying the function. -- The result of the function application (the pair) is not forced.@@ -62,7 +90,7 @@ IO (\s -> case atomicModifyMutVar2# r# f s of (# s', old, res #) -> (# s', (old, res) #)) --- Atomically apply a function to the contents of an 'IORef',+-- | Atomically apply a function to the contents of an 'IORef', -- installing its first component in the 'IORef' and returning -- the old contents and the result of applying the function. -- The result of the function application (the pair) is forced,@@ -115,6 +143,9 @@ -- -- will increment the 'IORef' and then throw an exception in the calling -- thread.+--+-- This function imposes a memory barrier, preventing reordering;+-- see "Data.IORef#memmodel" for details. -- -- @since 4.6.0.0 atomicModifyIORef' :: IORef a -> (a -> (a,b)) -> IO b
+ GHC/InfoProv.hsc view
@@ -0,0 +1,113 @@+{-# LANGUAGE Trustworthy #-}+{-# LANGUAGE UnboxedTuples #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE NoImplicitPrelude #-}++-----------------------------------------------------------------------------+-- |+-- Module : GHC.InfoProv+-- Copyright : (c) The University of Glasgow 2011+-- License : see libraries/base/LICENSE+--+-- Maintainer : cvs-ghc@haskell.org+-- Stability : internal+-- Portability : non-portable (GHC Extensions)+--+-- Access to GHC's info-table provenance metadata.+--+-- @since 4.18.0.0+-----------------------------------------------------------------------------++module GHC.InfoProv+ ( InfoProv(..)+ , ipLoc+ , ipeProv+ , whereFrom+ -- * Internals+ , InfoProvEnt+ , peekInfoProv+ ) where++#include "Rts.h"++import GHC.Base+import GHC.Show+import GHC.Ptr (Ptr(..), plusPtr, nullPtr)+import GHC.Foreign (CString, peekCString)+import GHC.IO.Encoding (utf8)+import Foreign.Storable (peekByteOff)++data InfoProv = InfoProv {+ ipName :: String,+ ipDesc :: String,+ ipTyDesc :: String,+ ipLabel :: String,+ ipMod :: String,+ ipSrcFile :: String,+ ipSrcSpan :: String+} deriving (Eq, Show)++data InfoProvEnt++ipLoc :: InfoProv -> String+ipLoc ipe = ipSrcFile ipe ++ ":" ++ ipSrcSpan ipe++getIPE :: a -> IO (Ptr InfoProvEnt)+getIPE obj = IO $ \s ->+ case whereFrom## obj s of+ (## s', addr ##) -> (## s', Ptr addr ##)++ipeProv :: Ptr InfoProvEnt -> Ptr InfoProv+ipeProv p = (#ptr InfoProvEnt, prov) p++peekIpName, peekIpDesc, peekIpLabel, peekIpModule, peekIpSrcFile, peekIpSrcSpan, peekIpTyDesc :: Ptr InfoProv -> IO CString+peekIpName p = (# peek InfoProv, table_name) p+peekIpDesc p = (# peek InfoProv, closure_desc) p+peekIpLabel p = (# peek InfoProv, label) p+peekIpModule p = (# peek InfoProv, module) p+peekIpSrcFile p = (# peek InfoProv, src_file) p+peekIpSrcSpan p = (# peek InfoProv, src_span) p+peekIpTyDesc p = (# peek InfoProv, ty_desc) p++peekInfoProv :: Ptr InfoProv -> IO InfoProv+peekInfoProv infop = do+ name <- peekCString utf8 =<< peekIpName infop+ desc <- peekCString utf8 =<< peekIpDesc infop+ tyDesc <- peekCString utf8 =<< peekIpTyDesc infop+ label <- peekCString utf8 =<< peekIpLabel infop+ mod <- peekCString utf8 =<< peekIpModule infop+ file <- peekCString utf8 =<< peekIpSrcFile infop+ span <- peekCString utf8 =<< peekIpSrcSpan infop+ return InfoProv {+ ipName = name,+ ipDesc = desc,+ ipTyDesc = tyDesc,+ ipLabel = label,+ ipMod = mod,+ ipSrcFile = file,+ ipSrcSpan = span+ }++-- | Get information about where a value originated from.+-- This information is stored statically in a binary when `-finfo-table-map` is+-- enabled. The source positions will be greatly improved by also enabled debug+-- information with `-g3`. Finally you can enable `-fdistinct-constructor-tables` to+-- get more precise information about data constructor allocations.+--+-- The information is collect by looking at the info table address of a specific closure and+-- then consulting a specially generated map (by `-finfo-table-map`) to find out where we think+-- the best source position to describe that info table arose from.+--+-- @since 4.16.0.0+whereFrom :: a -> IO (Maybe InfoProv)+whereFrom obj = do+ ipe <- getIPE obj+ -- The primop returns the null pointer in two situations at the moment+ -- 1. The lookup fails for whatever reason+ -- 2. -finfo-table-map is not enabled.+ -- It would be good to distinguish between these two cases somehow.+ if ipe == nullPtr+ then return Nothing+ else do+ infoProv <- peekInfoProv (ipeProv ipe)+ return $ Just infoProv
GHC/Ix.hs view
@@ -140,12 +140,30 @@ The default method for 'index' generates hoplelessIndexError, because Ix doesn't have Show as a superclass. For particular base types we can do better, so we override the default method for index.--} --- Abstract these errors from the relevant index functions so that--- the guts of the function will be small enough to inline.+Note [indexError]+~~~~~~~~~~~~~~~~~+We abstract the guts of constructing an out-of-bounds error into `indexError`.+We give it a NOINLINE pragma, because we don't want to duplicate this+cold-path code. +We give it a SPECIALISE pragma because we really want it to take+its arguments unboxed, to avoid reboxing code in the caller, and+perhaps even some reboxing code in the hot path of a caller.+See Note [Boxity for bottoming functions] in GHC.Core.Opt.DmdAnal.++The SPECIALISE pragma means that at least the Int-indexed case+of indexError /will/ unbox its arguments.++The [2] phase is because if we don't give an activation we'll get+the one from the inline pragama (i.e. never) which is a bit silly.+See Note [Activation pragmas for SPECIALISE] in GHC.HsToCore.Binds.+-}++-- indexError: see Note [indexError] {-# NOINLINE indexError #-}+{-# SPECIALISE [2] indexError :: (Int,Int) -> Int -> String -> b #-}+ indexError :: Show a => (a,a) -> a -> String -> b indexError rng i tp = errorWithoutStackTrace (showString "Ix{" . showString tp . showString "}.index: Index " .@@ -255,6 +273,14 @@ inRange (l,u) i = fromEnum i >= fromEnum l && fromEnum i <= fromEnum u ----------------------------------------------------------------------+-- | @since 4.8.0.0+instance Ix Void where+ range _ = []+ index _ = absurd+ inRange _ = absurd+ rangeSize _ = 0++---------------------------------------------------------------------- -- | @since 2.01 instance Ix () where {-# INLINE range #-}@@ -271,15 +297,15 @@ {-# SPECIALISE instance Ix (Solo Int) #-} {-# INLINE range #-}- range (Solo l, Solo u) =- [ Solo i | i <- range (l,u) ]+ range (MkSolo l, MkSolo u) =+ [ MkSolo i | i <- range (l,u) ] {-# INLINE unsafeIndex #-}- unsafeIndex (Solo l, Solo u) (Solo i) =+ unsafeIndex (MkSolo l, MkSolo u) (MkSolo i) = unsafeIndex (l,u) i {-# INLINE inRange #-}- inRange (Solo l, Solo u) (Solo i) =+ inRange (MkSolo l, MkSolo u) (MkSolo i) = inRange (l, u) i -- Default method for index
+ GHC/JS/Prim.hs view
@@ -0,0 +1,332 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE JavaScriptFFI #-}+{-# LANGUAGE GHCForeignImportPrim #-}+{-# LANGUAGE UnliftedFFITypes #-}+{-# LANGUAGE UnboxedTuples #-}++module GHC.JS.Prim ( JSVal(..), JSVal#+ , JSException(..)+ , WouldBlockException(..)+#if defined(javascript_HOST_ARCH)+ , toIO+ , resolve+ , resolveIO+ , mkJSException+ , fromJSString+ , toJSString+ , toJSArray+ , fromJSArray+ , fromJSInt+ , toJSInt+ , isNull+ , isUndefined+ , jsNull+ , getProp+ , getProp'+ , getProp#+ , unsafeGetProp+ , unsafeGetProp'+ , unsafeGetProp#+ , unpackJSString#+ , unpackJSStringUtf8#+ , unsafeUnpackJSString#+ , unsafeUnpackJSStringUtf8#+ , unpackJSStringUtf8##+ , unsafeUnpackJSStringUtf8##++#endif+ ) where++import Data.Typeable (Typeable)+import Unsafe.Coerce (unsafeCoerce)++import GHC.Prim+import qualified GHC.Exception as Ex+import qualified GHC.Exts as Exts+import qualified GHC.CString as GHC+import GHC.IO++{-+ JSVal is a boxed type that can be used as FFI+ argument or result.+-}++#if defined(javascript_HOST_ARCH)+data JSVal = JSVal ByteArray#+type JSVal# = ByteArray#+#else+data JSVal = JSVal Addr#+type JSVal# = Addr#+#endif++{-+ When a JavaScript exception is raised inside+ a safe or interruptible foreign call, it is converted+ to a JSException+ -}+data JSException = JSException JSVal String+ deriving (Typeable)++instance Ex.Exception JSException++instance Show JSException where+ show (JSException _ xs) = "JavaScript exception: " ++ xs++#if defined(javascript_HOST_ARCH)++{-# NOINLINE toIO #-}+toIO :: Exts.Any -> IO Exts.Any+toIO x = pure x++{-# NOINLINE resolve #-}+resolve :: JSVal# -> JSVal# -> Exts.Any -> IO ()+resolve accept reject x = resolveIO accept reject (pure x)++{-# NOINLINE resolveIO #-}+resolveIO :: JSVal# -> JSVal# -> IO Exts.Any -> IO ()+resolveIO accept reject x =+ (x >>= evaluate >>= js_callback_any accept) `catch`+ (\(e::Ex.SomeException) -> do+ exceptionText <- evaluate (toJSString $ Ex.displayException e) `catch`+ (\(_::Ex.SomeException) -> evaluate (toJSString "unknown exception"))+ js_callback_jsval reject exceptionText)++mkJSException :: JSVal -> IO JSException+mkJSException ref =+ return (JSException (unsafeCoerce ref) (fromJSString ref))++{- | Low-level conversion utilities for packages that cannot+ depend on ghcjs-base+ -}++{- | returns an empty string if the JSVal does not contain+ a string+ -}+fromJSString :: JSVal -> String+fromJSString = unsafeCoerce . js_fromJSString+{-# INLINE fromJSString #-}++toJSString :: String -> JSVal+toJSString = js_toJSString . unsafeCoerce . seqList+{-# INLINE [0] toJSString #-}+{-# RULES+"GHC.JS.PRIM toJSString/literal" forall a.+ toJSString (GHC.unpackCString# a) = JSVal (unsafeUnpackJSStringUtf8## a)+"GHC.JS.PRIM toJSString/literalUtf8" forall a.+ toJSString (GHC.unpackCStringUtf8# a) = JSVal (unsafeUnpackJSStringUtf8## a)+ #-}++fromJSArray :: JSVal -> IO [JSVal]+fromJSArray = unsafeCoerce . js_fromJSArray+{-# INLINE fromJSArray #-}++toJSArray :: [JSVal] -> IO JSVal+toJSArray = js_toJSArray . unsafeCoerce . seqList+{-# INLINE toJSArray #-}++{- | returns zero if the JSVal does not contain a number+ -}+fromJSInt :: JSVal -> Int+fromJSInt = js_fromJSInt+{-# INLINE fromJSInt #-}++toJSInt :: Int -> JSVal+toJSInt = js_toJSInt+{-# INLINE toJSInt #-}++isNull :: JSVal -> Bool+isNull = js_isNull+{-# INLINE isNull #-}++isUndefined :: JSVal -> Bool+isUndefined = js_isUndefined+{-# INLINE isUndefined #-}++jsNull :: JSVal+jsNull = js_null+{-# INLINE CONLIKE jsNull #-}++getProp :: JSVal -> String -> IO JSVal+getProp o p = js_getProp o (unsafeCoerce $ seqList p)+{-# INLINE [0] getProp #-}+{-# RULES+"GHC.JS.PRIM getProp/literal" forall o a.+ getProp o (GHC.unpackCString# a) = getProp# o a+"GHC.JS.PRIM getProp/literalUtf8" forall o a.+ getProp o (GHC.unpackCStringUtf8# a) = getPropUtf8# o a+ #-}++-- | only safe on immutable object+unsafeGetProp :: JSVal -> String -> JSVal+unsafeGetProp o p = js_unsafeGetProp o (unsafeCoerce $ seqList p)+{-# INLINE [0] unsafeGetProp #-}+{-# RULES+"GHC.JS.PRIM unsafeGetProp/literal" forall o a.+ unsafeGetProp o (GHC.unpackCString# a) = unsafeGetProp# o a+"GHC.JS.PRIM unsafeGetProp/literalUtf8" forall o a.+ unsafeGetProp o (GHC.unpackCStringUtf8# a) = unsafeGetPropUtf8# o a+ #-}++getProp' :: JSVal -> JSVal -> IO JSVal+getProp' o p = js_getProp' o p+{-# INLINE [0] getProp' #-}+{-# RULES+"GHC.JS.PRIM getProp'/literal" forall o a.+ getProp' o (unsafeUnpackJSString# a) = getProp# o a+"GHC.JS.PRIM getProp'/literalUtf8" forall o a.+ getProp' o (unsafeUnpackJSStringUtf8# a) = getPropUtf8# o a+ #-}++-- | only safe on immutable object+unsafeGetProp' :: JSVal -> JSVal -> JSVal+unsafeGetProp' o p = js_unsafeGetProp' o p+{-# INLINE [0] unsafeGetProp' #-}+{-# RULES+"GHC.JS.PRIM unsafeGetProp'/literal" forall o a.+ unsafeGetProp' o (unsafeUnpackJSString# a) = unsafeGetPropUtf8# o a+"GHC.JS.PRIM unsafeGetProp'/literalUtf8" forall o a.+ unsafeGetProp' o (unsafeUnpackJSStringUtf8# a) = unsafeGetPropUtf8# o a+ #-}+++-- | only safe on immutable Addr#+getProp# :: JSVal -> Addr# -> IO JSVal+getProp# (JSVal o) p = IO $+ \s -> case getPropUtf8## o p s of (# s', v #) -> (# s', JSVal v #)+{-# INLINE [0] getProp# #-}+-- js_getProp# o p++-- | only safe on immutable Addr#+getPropUtf8# :: JSVal -> Addr# -> IO JSVal+getPropUtf8# (JSVal o) p = IO $+ \s -> case getPropUtf8## o p s of (# s', v #) -> (# s', JSVal v #)+{-# INLINE [0] getPropUtf8# #-}++getPropUtf8## :: JSVal# -> Addr# -> State# s -> (# State# s, JSVal# #)+getPropUtf8## o p = js_getPropUtf8## o p+{-# NOINLINE getPropUtf8## #-}++-- | only safe on immutable Addr# and JSVal+unsafeGetProp# :: JSVal -> Addr# -> JSVal+unsafeGetProp# (JSVal o) p = JSVal (unsafeGetPropUtf8## o p)+{-# INLINE [0] unsafeGetProp# #-}++-- | only safe on immutable Addr# and JSVal+unsafeGetPropUtf8# :: JSVal -> Addr# -> JSVal+unsafeGetPropUtf8# (JSVal o) p = JSVal (unsafeGetPropUtf8## o p)+{-# INLINE [0] unsafeGetPropUtf8# #-}++unsafeGetPropUtf8## :: JSVal# -> Addr# -> JSVal#+unsafeGetPropUtf8## o p = js_unsafeGetPropUtf8## o p+{-# NOINLINE unsafeGetPropUtf8## #-}++unpackJSString# :: Addr# -> IO JSVal+unpackJSString# a = IO $+ \s -> case unpackJSStringUtf8## a s of (# s', v #) -> (# s', JSVal v #)+{-# INLINE [0] unpackJSString# #-}++unpackJSStringUtf8# :: Addr# -> IO JSVal+unpackJSStringUtf8# a = IO $+ \s -> case unpackJSStringUtf8## a s of (# s', v #) -> (# s', JSVal v #)+{-# INLINE [0] unpackJSStringUtf8# #-}++unpackJSStringUtf8## :: Addr# -> State# s -> (# State# s, JSVal# #)+unpackJSStringUtf8## a s = js_unpackJSStringUtf8## a s+{-# NOINLINE unpackJSStringUtf8## #-}++-- | only safe on immutable Addr#+unsafeUnpackJSString# :: Addr# -> JSVal+unsafeUnpackJSString# a = JSVal (unsafeUnpackJSStringUtf8## a)+ -- js_unsafeUnpackJSString# a+{-# INLINE [0] unsafeUnpackJSString# #-}++-- | only safe on immutable Addr#+unsafeUnpackJSStringUtf8# :: Addr# -> JSVal+unsafeUnpackJSStringUtf8# a = JSVal (unsafeUnpackJSStringUtf8## a)+{-# INLINE [0] unsafeUnpackJSStringUtf8# #-}++unsafeUnpackJSStringUtf8## :: Addr# -> JSVal#+unsafeUnpackJSStringUtf8## a = js_unsafeUnpackJSStringUtf8## a+{-# NOINLINE unsafeUnpackJSStringUtf8## #-}+++-- reduce the spine and all list elements to whnf+seqList :: [a] -> [a]+seqList xs = go xs `seq` xs+ where go (y:ys) = y `seq` go ys+ go [] = ()++foreign import javascript unsafe "(($1) => { return h$toHsString($1); })"+ js_fromJSString :: JSVal -> Exts.Any++foreign import javascript unsafe "(($1) => { return h$fromHsString($1); })"+ js_toJSString :: Exts.Any -> JSVal++foreign import javascript unsafe "(($1) => { return h$toHsListJSVal($1); })"+ js_fromJSArray :: JSVal -> IO Exts.Any++foreign import javascript unsafe "(($1) => { return h$fromHsListJSVal($1); })"+ js_toJSArray :: Exts.Any -> IO JSVal++foreign import javascript unsafe "(($1) => { return ($1 === null); })"+ js_isNull :: JSVal -> Bool++foreign import javascript unsafe "(($1) => { return ($1 === undefined); })"+ js_isUndefined :: JSVal -> Bool++foreign import javascript unsafe "(($1) => { return ($r = typeof($1) === 'number' ? ($1|0) : 0;); })"+ js_fromJSInt :: JSVal -> Int++foreign import javascript unsafe "(($1) => { return ($r = $1;); })"+ js_toJSInt :: Int -> JSVal++foreign import javascript unsafe "$r = null;"+ js_null :: JSVal++foreign import javascript unsafe "(($1,$2) => { return $1[h$fromHsString($2)]; })"+ js_getProp :: JSVal -> Exts.Any -> IO JSVal++foreign import javascript unsafe "(($1,$2) => { return $1[h$fromHsString($2)]; })"+ js_unsafeGetProp :: JSVal -> Exts.Any -> JSVal++foreign import javascript unsafe "(($1,$2) => { return $1[$2]; })"+ js_getProp' :: JSVal -> JSVal -> IO JSVal++foreign import javascript unsafe "(($1,$2) => { return $1[$2]; })"+ js_unsafeGetProp' :: JSVal -> JSVal -> JSVal++foreign import javascript unsafe "(($1,$2_1,$2_2) => { return $1[h$decodeUtf8z($2_1, $2_2)]; })"+ js_getPropUtf8## :: JSVal# -> Addr# -> State# s -> (# State# s, JSVal# #)++foreign import javascript unsafe "(($1,$2_1,$2_2) => { return $1[h$decodeUtf8z($2_1, $2_2)]; })"+ js_unsafeGetPropUtf8## :: JSVal# -> Addr# -> JSVal#++foreign import javascript unsafe "(($1_1,$1_2) => { return h$decodeUtf8z($1_1, $1_2); })"+ js_unpackJSStringUtf8## :: Addr# -> State# s -> (# State# s, JSVal# #)+++foreign import javascript unsafe "(($1_1, $1_2) => { return h$decodeUtf8z($1_1,$1_2); })"+ js_unsafeUnpackJSStringUtf8## :: Addr# -> JSVal#++foreign import javascript unsafe "(($1, $2) => { return $1($2); })"+ js_callback_any :: JSVal# -> Exts.Any -> IO ()++foreign import javascript unsafe "(($1, $2) => { return $1($2); })"+ js_callback_jsval :: JSVal# -> JSVal -> IO ()++#endif++{- | If a synchronous thread tries to do something that can only+ be done asynchronously, and the thread is set up to not+ continue asynchronously, it receives this exception.+ -}+data WouldBlockException = WouldBlockException+ deriving (Typeable)++instance Show WouldBlockException where+ show _ = "thread would block"++instance Ex.Exception WouldBlockException
+ GHC/JS/Prim/Internal.hs view
@@ -0,0 +1,56 @@+{- | Code used by the RTS++ -}++module GHC.JS.Prim.Internal ( blockedIndefinitelyOnMVar+ , blockedIndefinitelyOnSTM+ , wouldBlock+ , ignoreException+ , setCurrentThreadResultException+ , setCurrentThreadResultValue+ ) where++import Control.Exception++import GHC.JS.Prim++wouldBlock :: SomeException+wouldBlock = toException WouldBlockException++blockedIndefinitelyOnMVar :: SomeException+blockedIndefinitelyOnMVar = toException BlockedIndefinitelyOnMVar++blockedIndefinitelyOnSTM :: SomeException+blockedIndefinitelyOnSTM = toException BlockedIndefinitelyOnSTM++ignoreException :: SomeException -> IO ()+ignoreException _ = return ()++setCurrentThreadResultException :: SomeException -> IO ()+setCurrentThreadResultException e+ | Just WouldBlockException <- fromException e =+ js_setCurrentThreadResultWouldBlock+ | Just (JSException v _) <- fromException e =+ js_setCurrentThreadResultJSException v+ | otherwise =+ js_setCurrentThreadResultHaskellException (toJSString (show e))++setCurrentThreadResultValue :: IO JSVal -> IO ()+setCurrentThreadResultValue x = js_setCurrentThreadResultValue =<< x++foreign import javascript unsafe+ "(() => { return h$setCurrentThreadResultWouldBlock; })"+ js_setCurrentThreadResultWouldBlock :: IO ()++foreign import javascript unsafe+ "(($1) => { return h$setCurrentThreadResultJSException($1); })"+ js_setCurrentThreadResultJSException :: JSVal -> IO ()++foreign import javascript unsafe+ "(($1) => { return h$setCurrentThreadResultHaskellException($1); })"+ js_setCurrentThreadResultHaskellException :: JSVal -> IO ()++foreign import javascript unsafe+ "(($1) => { return h$setCurrentThreadResultValue($1); })"+ js_setCurrentThreadResultValue :: JSVal -> IO ()+
+ GHC/JS/Prim/Internal/Build.hs view
@@ -0,0 +1,1470 @@+-- helpers for constructing JS objects that can be efficiently inlined as literals+-- no Template Haskell available yet, generated by utils/genBuildObject.hs+{-# LANGUAGE CPP #-}+#if !defined(javascript_HOST_ARCH)+module GHC.JS.Prim.Internal.Build () where+#else+{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI, GHCForeignImportPrim #-}+module GHC.JS.Prim.Internal.Build+ ( buildArrayI+ , buildArrayM+ , buildObjectI+ , buildObjectM+ , buildArrayI1+ , buildArrayI2+ , buildArrayI3+ , buildArrayI4+ , buildArrayI5+ , buildArrayI6+ , buildArrayI7+ , buildArrayI8+ , buildArrayI9+ , buildArrayI10+ , buildArrayI11+ , buildArrayI12+ , buildArrayI13+ , buildArrayI14+ , buildArrayI15+ , buildArrayI16+ , buildArrayI17+ , buildArrayI18+ , buildArrayI19+ , buildArrayI20+ , buildArrayI21+ , buildArrayI22+ , buildArrayI23+ , buildArrayI24+ , buildArrayI25+ , buildArrayI26+ , buildArrayI27+ , buildArrayI28+ , buildArrayI29+ , buildArrayI30+ , buildArrayI31+ , buildArrayI32+ , buildArrayM1+ , buildArrayM2+ , buildArrayM3+ , buildArrayM4+ , buildArrayM5+ , buildArrayM6+ , buildArrayM7+ , buildArrayM8+ , buildArrayM9+ , buildArrayM10+ , buildArrayM11+ , buildArrayM12+ , buildArrayM13+ , buildArrayM14+ , buildArrayM15+ , buildArrayM16+ , buildArrayM17+ , buildArrayM18+ , buildArrayM19+ , buildArrayM20+ , buildArrayM21+ , buildArrayM22+ , buildArrayM23+ , buildArrayM24+ , buildArrayM25+ , buildArrayM26+ , buildArrayM27+ , buildArrayM28+ , buildArrayM29+ , buildArrayM30+ , buildArrayM31+ , buildArrayM32+ , buildObjectI1+ , buildObjectI2+ , buildObjectI3+ , buildObjectI4+ , buildObjectI5+ , buildObjectI6+ , buildObjectI7+ , buildObjectI8+ , buildObjectI9+ , buildObjectI10+ , buildObjectI11+ , buildObjectI12+ , buildObjectI13+ , buildObjectI14+ , buildObjectI15+ , buildObjectI16+ , buildObjectI17+ , buildObjectI18+ , buildObjectI19+ , buildObjectI20+ , buildObjectI21+ , buildObjectI22+ , buildObjectI23+ , buildObjectI24+ , buildObjectI25+ , buildObjectI26+ , buildObjectI27+ , buildObjectI28+ , buildObjectI29+ , buildObjectI30+ , buildObjectI31+ , buildObjectI32+ , buildObjectM1+ , buildObjectM2+ , buildObjectM3+ , buildObjectM4+ , buildObjectM5+ , buildObjectM6+ , buildObjectM7+ , buildObjectM8+ , buildObjectM9+ , buildObjectM10+ , buildObjectM11+ , buildObjectM12+ , buildObjectM13+ , buildObjectM14+ , buildObjectM15+ , buildObjectM16+ , buildObjectM17+ , buildObjectM18+ , buildObjectM19+ , buildObjectM20+ , buildObjectM21+ , buildObjectM22+ , buildObjectM23+ , buildObjectM24+ , buildObjectM25+ , buildObjectM26+ , buildObjectM27+ , buildObjectM28+ , buildObjectM29+ , buildObjectM30+ , buildObjectM31+ , buildObjectM32+ ) where++import GHC.JS.Prim+import GHC.Exts+import Unsafe.Coerce+import System.IO.Unsafe++type O = JSVal -- object+type K = JSVal -- key+type V = JSVal -- value+type J = JSVal -- some JS value+type A = JSVal -- array++seqTupList :: [(a,b)] -> [(a,b)]+seqTupList xs = go xs `seq` xs+ where go ((y1,y2):ys) = y1 `seq` y2 `seq` go ys+ go [] = ()++foreign import javascript unsafe "$r = [];" js_emptyArrayI :: A++buildArrayI :: [J] -> A+buildArrayI xs = unsafePerformIO (toJSArray xs)+{-# INLINE [1] buildArrayI #-}+{-# RULES "buildArrayI/empty" buildArrayI [] = js_emptyArrayI #-}+{-# RULES "buildArrayI/buildArrayI1" forall x1. buildArrayI [x1] = buildArrayI1 x1 #-}+{-# RULES "buildArrayI/buildArrayI2" forall x1 x2. buildArrayI [x1,x2] = buildArrayI2 x1 x2 #-}+{-# RULES "buildArrayI/buildArrayI3" forall x1 x2 x3. buildArrayI [x1,x2,x3] = buildArrayI3 x1 x2 x3 #-}+{-# RULES "buildArrayI/buildArrayI4" forall x1 x2 x3 x4. buildArrayI [x1,x2,x3,x4] = buildArrayI4 x1 x2 x3 x4 #-}+{-# RULES "buildArrayI/buildArrayI5" forall x1 x2 x3 x4 x5. buildArrayI [x1,x2,x3,x4,x5] = buildArrayI5 x1 x2 x3 x4 x5 #-}+{-# RULES "buildArrayI/buildArrayI6" forall x1 x2 x3 x4 x5 x6. buildArrayI [x1,x2,x3,x4,x5,x6] = buildArrayI6 x1 x2 x3 x4 x5 x6 #-}+{-# RULES "buildArrayI/buildArrayI7" forall x1 x2 x3 x4 x5 x6 x7. buildArrayI [x1,x2,x3,x4,x5,x6,x7] = buildArrayI7 x1 x2 x3 x4 x5 x6 x7 #-}+{-# RULES "buildArrayI/buildArrayI8" forall x1 x2 x3 x4 x5 x6 x7 x8. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8] = buildArrayI8 x1 x2 x3 x4 x5 x6 x7 x8 #-}+{-# RULES "buildArrayI/buildArrayI9" forall x1 x2 x3 x4 x5 x6 x7 x8 x9. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9] = buildArrayI9 x1 x2 x3 x4 x5 x6 x7 x8 x9 #-}+{-# RULES "buildArrayI/buildArrayI10" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10] = buildArrayI10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 #-}+{-# RULES "buildArrayI/buildArrayI11" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11] = buildArrayI11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 #-}+{-# RULES "buildArrayI/buildArrayI12" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12] = buildArrayI12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 #-}+{-# RULES "buildArrayI/buildArrayI13" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13] = buildArrayI13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 #-}+{-# RULES "buildArrayI/buildArrayI14" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14] = buildArrayI14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 #-}+{-# RULES "buildArrayI/buildArrayI15" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15] = buildArrayI15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 #-}+{-# RULES "buildArrayI/buildArrayI16" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16] = buildArrayI16 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 #-}+{-# RULES "buildArrayI/buildArrayI17" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17] = buildArrayI17 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 #-}+{-# RULES "buildArrayI/buildArrayI18" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18] = buildArrayI18 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 #-}+{-# RULES "buildArrayI/buildArrayI19" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19] = buildArrayI19 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 #-}+{-# RULES "buildArrayI/buildArrayI20" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20] = buildArrayI20 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 #-}+{-# RULES "buildArrayI/buildArrayI21" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21] = buildArrayI21 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 #-}+{-# RULES "buildArrayI/buildArrayI22" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22] = buildArrayI22 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 #-}+{-# RULES "buildArrayI/buildArrayI23" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23] = buildArrayI23 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 #-}+{-# RULES "buildArrayI/buildArrayI24" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24] = buildArrayI24 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 #-}+{-# RULES "buildArrayI/buildArrayI25" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25] = buildArrayI25 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 #-}+{-# RULES "buildArrayI/buildArrayI26" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26] = buildArrayI26 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 #-}+{-# RULES "buildArrayI/buildArrayI27" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27] = buildArrayI27 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 #-}+{-# RULES "buildArrayI/buildArrayI28" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28] = buildArrayI28 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 #-}+{-# RULES "buildArrayI/buildArrayI29" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29] = buildArrayI29 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 #-}+{-# RULES "buildArrayI/buildArrayI30" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30] = buildArrayI30 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 #-}+{-# RULES "buildArrayI/buildArrayI31" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31] = buildArrayI31 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 #-}+{-# RULES "buildArrayI/buildArrayI32" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32. buildArrayI [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32] = buildArrayI32 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 #-}++buildArrayI1 :: J -> A+buildArrayI1 x1 =+ js_buildArrayI1 x1+{-# INLINE buildArrayI1 #-}++foreign import javascript unsafe "[$1]"+ js_buildArrayI1 :: J -> A+++buildArrayI2 :: J -> J -> A+buildArrayI2 x1 x2 =+ js_buildArrayI2 x1 x2+{-# INLINE buildArrayI2 #-}++foreign import javascript unsafe "[$1,$2]"+ js_buildArrayI2 :: J -> J -> A+++buildArrayI3 :: J -> J -> J -> A+buildArrayI3 x1 x2 x3 =+ js_buildArrayI3 x1 x2 x3+{-# INLINE buildArrayI3 #-}++foreign import javascript unsafe "[$1,$2,$3]"+ js_buildArrayI3 :: J -> J -> J -> A+++buildArrayI4 :: J -> J -> J -> J -> A+buildArrayI4 x1 x2 x3 x4 =+ js_buildArrayI4 x1 x2 x3 x4+{-# INLINE buildArrayI4 #-}++foreign import javascript unsafe "[$1,$2,$3,$4]"+ js_buildArrayI4 :: J -> J -> J -> J -> A+++buildArrayI5 :: J -> J -> J -> J -> J -> A+buildArrayI5 x1 x2 x3 x4 x5 =+ js_buildArrayI5 x1 x2 x3 x4 x5+{-# INLINE buildArrayI5 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5]"+ js_buildArrayI5 :: J -> J -> J -> J -> J -> A+++buildArrayI6 :: J -> J -> J -> J -> J -> J -> A+buildArrayI6 x1 x2 x3 x4 x5 x6 =+ js_buildArrayI6 x1 x2 x3 x4 x5 x6+{-# INLINE buildArrayI6 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6]"+ js_buildArrayI6 :: J -> J -> J -> J -> J -> J -> A+++buildArrayI7 :: J -> J -> J -> J -> J -> J -> J -> A+buildArrayI7 x1 x2 x3 x4 x5 x6 x7 =+ js_buildArrayI7 x1 x2 x3 x4 x5 x6 x7+{-# INLINE buildArrayI7 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7]"+ js_buildArrayI7 :: J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI8 :: J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI8 x1 x2 x3 x4 x5 x6 x7 x8 =+ js_buildArrayI8 x1 x2 x3 x4 x5 x6 x7 x8+{-# INLINE buildArrayI8 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8]"+ js_buildArrayI8 :: J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI9 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI9 x1 x2 x3 x4 x5 x6 x7 x8 x9 =+ js_buildArrayI9 x1 x2 x3 x4 x5 x6 x7 x8 x9+{-# INLINE buildArrayI9 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9]"+ js_buildArrayI9 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI10 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 =+ js_buildArrayI10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10+{-# INLINE buildArrayI10 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10]"+ js_buildArrayI10 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI11 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 =+ js_buildArrayI11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11+{-# INLINE buildArrayI11 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11]"+ js_buildArrayI11 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI12 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 =+ js_buildArrayI12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12+{-# INLINE buildArrayI12 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12]"+ js_buildArrayI12 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI13 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 =+ js_buildArrayI13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13+{-# INLINE buildArrayI13 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13]"+ js_buildArrayI13 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI14 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 =+ js_buildArrayI14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14+{-# INLINE buildArrayI14 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14]"+ js_buildArrayI14 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI15 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 =+ js_buildArrayI15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15+{-# INLINE buildArrayI15 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15]"+ js_buildArrayI15 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI16 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI16 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 =+ js_buildArrayI16 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16+{-# INLINE buildArrayI16 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16]"+ js_buildArrayI16 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI17 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI17 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 =+ js_buildArrayI17 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17+{-# INLINE buildArrayI17 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17]"+ js_buildArrayI17 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI18 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI18 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 =+ js_buildArrayI18 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18+{-# INLINE buildArrayI18 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18]"+ js_buildArrayI18 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI19 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI19 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 =+ js_buildArrayI19 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19+{-# INLINE buildArrayI19 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19]"+ js_buildArrayI19 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI20 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI20 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 =+ js_buildArrayI20 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20+{-# INLINE buildArrayI20 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20]"+ js_buildArrayI20 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI21 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI21 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 =+ js_buildArrayI21 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21+{-# INLINE buildArrayI21 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21]"+ js_buildArrayI21 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI22 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI22 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 =+ js_buildArrayI22 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22+{-# INLINE buildArrayI22 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22]"+ js_buildArrayI22 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI23 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI23 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 =+ js_buildArrayI23 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23+{-# INLINE buildArrayI23 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23]"+ js_buildArrayI23 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI24 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI24 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 =+ js_buildArrayI24 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24+{-# INLINE buildArrayI24 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24]"+ js_buildArrayI24 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI25 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI25 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 =+ js_buildArrayI25 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25+{-# INLINE buildArrayI25 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25]"+ js_buildArrayI25 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI26 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI26 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 =+ js_buildArrayI26 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26+{-# INLINE buildArrayI26 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26]"+ js_buildArrayI26 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI27 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI27 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 =+ js_buildArrayI27 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27+{-# INLINE buildArrayI27 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27]"+ js_buildArrayI27 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI28 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI28 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 =+ js_buildArrayI28 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28+{-# INLINE buildArrayI28 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28]"+ js_buildArrayI28 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI29 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI29 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 =+ js_buildArrayI29 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29+{-# INLINE buildArrayI29 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29]"+ js_buildArrayI29 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI30 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI30 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 =+ js_buildArrayI30 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30+{-# INLINE buildArrayI30 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30]"+ js_buildArrayI30 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI31 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI31 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 =+ js_buildArrayI31 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31+{-# INLINE buildArrayI31 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31]"+ js_buildArrayI31 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++buildArrayI32 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+buildArrayI32 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 =+ js_buildArrayI32 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32+{-# INLINE buildArrayI32 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32]"+ js_buildArrayI32 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> A+++foreign import javascript unsafe "$r = [];" js_emptyArrayM :: IO A++buildArrayM :: [J] -> IO A+buildArrayM xs = toJSArray xs+{-# INLINE [1] buildArrayM #-}+{-# RULES "buildArrayM/empty" buildArrayM [] = js_emptyArrayM #-}+{-# RULES "buildArrayM/buildArrayM1" forall x1. buildArrayM [x1] = buildArrayM1 x1 #-}+{-# RULES "buildArrayM/buildArrayM2" forall x1 x2. buildArrayM [x1,x2] = buildArrayM2 x1 x2 #-}+{-# RULES "buildArrayM/buildArrayM3" forall x1 x2 x3. buildArrayM [x1,x2,x3] = buildArrayM3 x1 x2 x3 #-}+{-# RULES "buildArrayM/buildArrayM4" forall x1 x2 x3 x4. buildArrayM [x1,x2,x3,x4] = buildArrayM4 x1 x2 x3 x4 #-}+{-# RULES "buildArrayM/buildArrayM5" forall x1 x2 x3 x4 x5. buildArrayM [x1,x2,x3,x4,x5] = buildArrayM5 x1 x2 x3 x4 x5 #-}+{-# RULES "buildArrayM/buildArrayM6" forall x1 x2 x3 x4 x5 x6. buildArrayM [x1,x2,x3,x4,x5,x6] = buildArrayM6 x1 x2 x3 x4 x5 x6 #-}+{-# RULES "buildArrayM/buildArrayM7" forall x1 x2 x3 x4 x5 x6 x7. buildArrayM [x1,x2,x3,x4,x5,x6,x7] = buildArrayM7 x1 x2 x3 x4 x5 x6 x7 #-}+{-# RULES "buildArrayM/buildArrayM8" forall x1 x2 x3 x4 x5 x6 x7 x8. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8] = buildArrayM8 x1 x2 x3 x4 x5 x6 x7 x8 #-}+{-# RULES "buildArrayM/buildArrayM9" forall x1 x2 x3 x4 x5 x6 x7 x8 x9. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9] = buildArrayM9 x1 x2 x3 x4 x5 x6 x7 x8 x9 #-}+{-# RULES "buildArrayM/buildArrayM10" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10] = buildArrayM10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 #-}+{-# RULES "buildArrayM/buildArrayM11" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11] = buildArrayM11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 #-}+{-# RULES "buildArrayM/buildArrayM12" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12] = buildArrayM12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 #-}+{-# RULES "buildArrayM/buildArrayM13" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13] = buildArrayM13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 #-}+{-# RULES "buildArrayM/buildArrayM14" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14] = buildArrayM14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 #-}+{-# RULES "buildArrayM/buildArrayM15" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15] = buildArrayM15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 #-}+{-# RULES "buildArrayM/buildArrayM16" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16] = buildArrayM16 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 #-}+{-# RULES "buildArrayM/buildArrayM17" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17] = buildArrayM17 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 #-}+{-# RULES "buildArrayM/buildArrayM18" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18] = buildArrayM18 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 #-}+{-# RULES "buildArrayM/buildArrayM19" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19] = buildArrayM19 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 #-}+{-# RULES "buildArrayM/buildArrayM20" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20] = buildArrayM20 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 #-}+{-# RULES "buildArrayM/buildArrayM21" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21] = buildArrayM21 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 #-}+{-# RULES "buildArrayM/buildArrayM22" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22] = buildArrayM22 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 #-}+{-# RULES "buildArrayM/buildArrayM23" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23] = buildArrayM23 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 #-}+{-# RULES "buildArrayM/buildArrayM24" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24] = buildArrayM24 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 #-}+{-# RULES "buildArrayM/buildArrayM25" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25] = buildArrayM25 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 #-}+{-# RULES "buildArrayM/buildArrayM26" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26] = buildArrayM26 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 #-}+{-# RULES "buildArrayM/buildArrayM27" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27] = buildArrayM27 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 #-}+{-# RULES "buildArrayM/buildArrayM28" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28] = buildArrayM28 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 #-}+{-# RULES "buildArrayM/buildArrayM29" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29] = buildArrayM29 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 #-}+{-# RULES "buildArrayM/buildArrayM30" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30] = buildArrayM30 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 #-}+{-# RULES "buildArrayM/buildArrayM31" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31] = buildArrayM31 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 #-}+{-# RULES "buildArrayM/buildArrayM32" forall x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32. buildArrayM [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32] = buildArrayM32 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 #-}++buildArrayM1 :: J -> IO A+buildArrayM1 x1 =+ js_buildArrayM1 x1+{-# INLINE buildArrayM1 #-}++foreign import javascript unsafe "[$1]"+ js_buildArrayM1 :: J -> IO A+++buildArrayM2 :: J -> J -> IO A+buildArrayM2 x1 x2 =+ js_buildArrayM2 x1 x2+{-# INLINE buildArrayM2 #-}++foreign import javascript unsafe "[$1,$2]"+ js_buildArrayM2 :: J -> J -> IO A+++buildArrayM3 :: J -> J -> J -> IO A+buildArrayM3 x1 x2 x3 =+ js_buildArrayM3 x1 x2 x3+{-# INLINE buildArrayM3 #-}++foreign import javascript unsafe "[$1,$2,$3]"+ js_buildArrayM3 :: J -> J -> J -> IO A+++buildArrayM4 :: J -> J -> J -> J -> IO A+buildArrayM4 x1 x2 x3 x4 =+ js_buildArrayM4 x1 x2 x3 x4+{-# INLINE buildArrayM4 #-}++foreign import javascript unsafe "[$1,$2,$3,$4]"+ js_buildArrayM4 :: J -> J -> J -> J -> IO A+++buildArrayM5 :: J -> J -> J -> J -> J -> IO A+buildArrayM5 x1 x2 x3 x4 x5 =+ js_buildArrayM5 x1 x2 x3 x4 x5+{-# INLINE buildArrayM5 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5]"+ js_buildArrayM5 :: J -> J -> J -> J -> J -> IO A+++buildArrayM6 :: J -> J -> J -> J -> J -> J -> IO A+buildArrayM6 x1 x2 x3 x4 x5 x6 =+ js_buildArrayM6 x1 x2 x3 x4 x5 x6+{-# INLINE buildArrayM6 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6]"+ js_buildArrayM6 :: J -> J -> J -> J -> J -> J -> IO A+++buildArrayM7 :: J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM7 x1 x2 x3 x4 x5 x6 x7 =+ js_buildArrayM7 x1 x2 x3 x4 x5 x6 x7+{-# INLINE buildArrayM7 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7]"+ js_buildArrayM7 :: J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM8 :: J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM8 x1 x2 x3 x4 x5 x6 x7 x8 =+ js_buildArrayM8 x1 x2 x3 x4 x5 x6 x7 x8+{-# INLINE buildArrayM8 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8]"+ js_buildArrayM8 :: J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM9 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM9 x1 x2 x3 x4 x5 x6 x7 x8 x9 =+ js_buildArrayM9 x1 x2 x3 x4 x5 x6 x7 x8 x9+{-# INLINE buildArrayM9 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9]"+ js_buildArrayM9 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM10 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 =+ js_buildArrayM10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10+{-# INLINE buildArrayM10 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10]"+ js_buildArrayM10 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM11 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 =+ js_buildArrayM11 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11+{-# INLINE buildArrayM11 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11]"+ js_buildArrayM11 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM12 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 =+ js_buildArrayM12 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12+{-# INLINE buildArrayM12 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12]"+ js_buildArrayM12 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM13 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 =+ js_buildArrayM13 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13+{-# INLINE buildArrayM13 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13]"+ js_buildArrayM13 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM14 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 =+ js_buildArrayM14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14+{-# INLINE buildArrayM14 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14]"+ js_buildArrayM14 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM15 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 =+ js_buildArrayM15 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15+{-# INLINE buildArrayM15 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15]"+ js_buildArrayM15 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM16 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM16 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 =+ js_buildArrayM16 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16+{-# INLINE buildArrayM16 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16]"+ js_buildArrayM16 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM17 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM17 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 =+ js_buildArrayM17 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17+{-# INLINE buildArrayM17 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17]"+ js_buildArrayM17 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM18 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM18 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 =+ js_buildArrayM18 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18+{-# INLINE buildArrayM18 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18]"+ js_buildArrayM18 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM19 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM19 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 =+ js_buildArrayM19 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19+{-# INLINE buildArrayM19 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19]"+ js_buildArrayM19 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM20 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM20 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 =+ js_buildArrayM20 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20+{-# INLINE buildArrayM20 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20]"+ js_buildArrayM20 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM21 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM21 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 =+ js_buildArrayM21 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21+{-# INLINE buildArrayM21 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21]"+ js_buildArrayM21 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM22 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM22 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 =+ js_buildArrayM22 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22+{-# INLINE buildArrayM22 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22]"+ js_buildArrayM22 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM23 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM23 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 =+ js_buildArrayM23 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23+{-# INLINE buildArrayM23 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23]"+ js_buildArrayM23 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM24 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM24 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 =+ js_buildArrayM24 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24+{-# INLINE buildArrayM24 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24]"+ js_buildArrayM24 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM25 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM25 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 =+ js_buildArrayM25 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25+{-# INLINE buildArrayM25 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25]"+ js_buildArrayM25 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM26 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM26 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 =+ js_buildArrayM26 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26+{-# INLINE buildArrayM26 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26]"+ js_buildArrayM26 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM27 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM27 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 =+ js_buildArrayM27 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27+{-# INLINE buildArrayM27 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27]"+ js_buildArrayM27 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM28 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM28 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 =+ js_buildArrayM28 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28+{-# INLINE buildArrayM28 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28]"+ js_buildArrayM28 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM29 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM29 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 =+ js_buildArrayM29 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29+{-# INLINE buildArrayM29 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29]"+ js_buildArrayM29 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM30 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM30 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 =+ js_buildArrayM30 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30+{-# INLINE buildArrayM30 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30]"+ js_buildArrayM30 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM31 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM31 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 =+ js_buildArrayM31 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31+{-# INLINE buildArrayM31 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31]"+ js_buildArrayM31 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++buildArrayM32 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+buildArrayM32 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 =+ js_buildArrayM32 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32+{-# INLINE buildArrayM32 #-}++foreign import javascript unsafe "[$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32]"+ js_buildArrayM32 :: J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> J -> IO A+++foreign import javascript unsafe "h$buildObjectFromTupList($1)"+ js_buildObjectFromTupListI :: Any -> O+foreign import javascript unsafe "$r = {};" js_emptyObjectI :: O+buildObjectI :: [(K,V)] -> O+buildObjectI xs = js_buildObjectFromTupListI . unsafeCoerce . seqTupList $ xs+{-# INLINE [1] buildObjectI #-}+{-# RULES "buildObjectI/empty" buildObjectI [] = js_emptyObjectI #-}+{-# RULES "buildObjectI/buildObjectI1" forall k1 v1. buildObjectI [(k1,v1)] = buildObjectI1 k1 v1 #-}+{-# RULES "buildObjectI/buildObjectI2" forall k1 v1 k2 v2. buildObjectI [(k1,v1),(k2,v2)] = buildObjectI2 k1 v1 k2 v2 #-}+{-# RULES "buildObjectI/buildObjectI3" forall k1 v1 k2 v2 k3 v3. buildObjectI [(k1,v1),(k2,v2),(k3,v3)] = buildObjectI3 k1 v1 k2 v2 k3 v3 #-}+{-# RULES "buildObjectI/buildObjectI4" forall k1 v1 k2 v2 k3 v3 k4 v4. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4)] = buildObjectI4 k1 v1 k2 v2 k3 v3 k4 v4 #-}+{-# RULES "buildObjectI/buildObjectI5" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5)] = buildObjectI5 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 #-}+{-# RULES "buildObjectI/buildObjectI6" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6)] = buildObjectI6 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 #-}+{-# RULES "buildObjectI/buildObjectI7" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7)] = buildObjectI7 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 #-}+{-# RULES "buildObjectI/buildObjectI8" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8)] = buildObjectI8 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 #-}+{-# RULES "buildObjectI/buildObjectI9" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9)] = buildObjectI9 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 #-}+{-# RULES "buildObjectI/buildObjectI10" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10)] = buildObjectI10 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 #-}+{-# RULES "buildObjectI/buildObjectI11" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11)] = buildObjectI11 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 #-}+{-# RULES "buildObjectI/buildObjectI12" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12)] = buildObjectI12 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 #-}+{-# RULES "buildObjectI/buildObjectI13" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13)] = buildObjectI13 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 #-}+{-# RULES "buildObjectI/buildObjectI14" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14)] = buildObjectI14 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 #-}+{-# RULES "buildObjectI/buildObjectI15" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15)] = buildObjectI15 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 #-}+{-# RULES "buildObjectI/buildObjectI16" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16)] = buildObjectI16 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 #-}+{-# RULES "buildObjectI/buildObjectI17" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17)] = buildObjectI17 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 #-}+{-# RULES "buildObjectI/buildObjectI18" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18)] = buildObjectI18 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 #-}+{-# RULES "buildObjectI/buildObjectI19" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19)] = buildObjectI19 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 #-}+{-# RULES "buildObjectI/buildObjectI20" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20)] = buildObjectI20 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 #-}+{-# RULES "buildObjectI/buildObjectI21" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21)] = buildObjectI21 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 #-}+{-# RULES "buildObjectI/buildObjectI22" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22)] = buildObjectI22 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 #-}+{-# RULES "buildObjectI/buildObjectI23" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23)] = buildObjectI23 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 #-}+{-# RULES "buildObjectI/buildObjectI24" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24)] = buildObjectI24 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 #-}+{-# RULES "buildObjectI/buildObjectI25" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25)] = buildObjectI25 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 #-}+{-# RULES "buildObjectI/buildObjectI26" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26)] = buildObjectI26 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 #-}+{-# RULES "buildObjectI/buildObjectI27" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27)] = buildObjectI27 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 #-}+{-# RULES "buildObjectI/buildObjectI28" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27),(k28,v28)] = buildObjectI28 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 #-}+{-# RULES "buildObjectI/buildObjectI29" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27),(k28,v28),(k29,v29)] = buildObjectI29 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 #-}+{-# RULES "buildObjectI/buildObjectI30" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27),(k28,v28),(k29,v29),(k30,v30)] = buildObjectI30 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 #-}+{-# RULES "buildObjectI/buildObjectI31" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27),(k28,v28),(k29,v29),(k30,v30),(k31,v31)] = buildObjectI31 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 #-}+{-# RULES "buildObjectI/buildObjectI32" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 k32 v32. buildObjectI [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27),(k28,v28),(k29,v29),(k30,v30),(k31,v31),(k32,v32)] = buildObjectI32 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 k32 v32 #-}++buildObjectI1 :: K -> V -> O+buildObjectI1 k1 v1 =+ js_buildObjectI1 k1 v1+{-# INLINE buildObjectI1 #-}++foreign import javascript unsafe "h$buildObject($1,$2)"+ js_buildObjectI1 :: K -> V -> O+++buildObjectI2 :: K -> V -> K -> V -> O+buildObjectI2 k1 v1 k2 v2 =+ js_buildObjectI2 k1 v1 k2 v2+{-# INLINE buildObjectI2 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4)"+ js_buildObjectI2 :: K -> V -> K -> V -> O+++buildObjectI3 :: K -> V -> K -> V -> K -> V -> O+buildObjectI3 k1 v1 k2 v2 k3 v3 =+ js_buildObjectI3 k1 v1 k2 v2 k3 v3+{-# INLINE buildObjectI3 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6)"+ js_buildObjectI3 :: K -> V -> K -> V -> K -> V -> O+++buildObjectI4 :: K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI4 k1 v1 k2 v2 k3 v3 k4 v4 =+ js_buildObjectI4 k1 v1 k2 v2 k3 v3 k4 v4+{-# INLINE buildObjectI4 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8)"+ js_buildObjectI4 :: K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI5 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI5 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 =+ js_buildObjectI5 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5+{-# INLINE buildObjectI5 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10)"+ js_buildObjectI5 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI6 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI6 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 =+ js_buildObjectI6 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6+{-# INLINE buildObjectI6 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12)"+ js_buildObjectI6 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI7 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI7 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 =+ js_buildObjectI7 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7+{-# INLINE buildObjectI7 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14)"+ js_buildObjectI7 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI8 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI8 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 =+ js_buildObjectI8 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8+{-# INLINE buildObjectI8 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16)"+ js_buildObjectI8 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI9 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI9 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 =+ js_buildObjectI9 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9+{-# INLINE buildObjectI9 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18)"+ js_buildObjectI9 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI10 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI10 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 =+ js_buildObjectI10 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10+{-# INLINE buildObjectI10 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20)"+ js_buildObjectI10 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI11 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI11 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 =+ js_buildObjectI11 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11+{-# INLINE buildObjectI11 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22)"+ js_buildObjectI11 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI12 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI12 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 =+ js_buildObjectI12 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12+{-# INLINE buildObjectI12 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24)"+ js_buildObjectI12 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI13 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI13 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 =+ js_buildObjectI13 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13+{-# INLINE buildObjectI13 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26)"+ js_buildObjectI13 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI14 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI14 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 =+ js_buildObjectI14 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14+{-# INLINE buildObjectI14 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28)"+ js_buildObjectI14 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI15 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI15 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 =+ js_buildObjectI15 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15+{-# INLINE buildObjectI15 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30)"+ js_buildObjectI15 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI16 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI16 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 =+ js_buildObjectI16 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16+{-# INLINE buildObjectI16 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32)"+ js_buildObjectI16 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI17 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI17 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 =+ js_buildObjectI17 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17+{-# INLINE buildObjectI17 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34)"+ js_buildObjectI17 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI18 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI18 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 =+ js_buildObjectI18 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18+{-# INLINE buildObjectI18 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36)"+ js_buildObjectI18 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI19 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI19 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 =+ js_buildObjectI19 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19+{-# INLINE buildObjectI19 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38)"+ js_buildObjectI19 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI20 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI20 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 =+ js_buildObjectI20 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20+{-# INLINE buildObjectI20 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40)"+ js_buildObjectI20 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI21 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI21 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 =+ js_buildObjectI21 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21+{-# INLINE buildObjectI21 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42)"+ js_buildObjectI21 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI22 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI22 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 =+ js_buildObjectI22 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22+{-# INLINE buildObjectI22 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44)"+ js_buildObjectI22 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI23 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI23 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 =+ js_buildObjectI23 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23+{-# INLINE buildObjectI23 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46)"+ js_buildObjectI23 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI24 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI24 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 =+ js_buildObjectI24 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24+{-# INLINE buildObjectI24 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48)"+ js_buildObjectI24 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI25 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI25 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 =+ js_buildObjectI25 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25+{-# INLINE buildObjectI25 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50)"+ js_buildObjectI25 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI26 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI26 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 =+ js_buildObjectI26 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26+{-# INLINE buildObjectI26 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52)"+ js_buildObjectI26 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI27 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI27 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 =+ js_buildObjectI27 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27+{-# INLINE buildObjectI27 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54)"+ js_buildObjectI27 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI28 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI28 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 =+ js_buildObjectI28 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28+{-# INLINE buildObjectI28 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56)"+ js_buildObjectI28 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI29 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI29 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 =+ js_buildObjectI29 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29+{-# INLINE buildObjectI29 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58)"+ js_buildObjectI29 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI30 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI30 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 =+ js_buildObjectI30 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30+{-# INLINE buildObjectI30 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60)"+ js_buildObjectI30 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI31 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI31 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 =+ js_buildObjectI31 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31+{-# INLINE buildObjectI31 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62)"+ js_buildObjectI31 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++buildObjectI32 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+buildObjectI32 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 k32 v32 =+ js_buildObjectI32 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 k32 v32+{-# INLINE buildObjectI32 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64)"+ js_buildObjectI32 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> O+++foreign import javascript unsafe "h$buildObjectFromTupList($1)"+ js_buildObjectFromTupListM :: Any -> IO O+foreign import javascript unsafe "$r = {};" js_emptyObjectM :: IO O+buildObjectM :: [(K,V)] -> IO O+buildObjectM xs = js_buildObjectFromTupListM . unsafeCoerce . seqTupList $ xs+{-# INLINE [1] buildObjectM #-}+{-# RULES "buildObjectM/empty" buildObjectM [] = js_emptyObjectM #-}+{-# RULES "buildObjectM/buildObjectM1" forall k1 v1. buildObjectM [(k1,v1)] = buildObjectM1 k1 v1 #-}+{-# RULES "buildObjectM/buildObjectM2" forall k1 v1 k2 v2. buildObjectM [(k1,v1),(k2,v2)] = buildObjectM2 k1 v1 k2 v2 #-}+{-# RULES "buildObjectM/buildObjectM3" forall k1 v1 k2 v2 k3 v3. buildObjectM [(k1,v1),(k2,v2),(k3,v3)] = buildObjectM3 k1 v1 k2 v2 k3 v3 #-}+{-# RULES "buildObjectM/buildObjectM4" forall k1 v1 k2 v2 k3 v3 k4 v4. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4)] = buildObjectM4 k1 v1 k2 v2 k3 v3 k4 v4 #-}+{-# RULES "buildObjectM/buildObjectM5" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5)] = buildObjectM5 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 #-}+{-# RULES "buildObjectM/buildObjectM6" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6)] = buildObjectM6 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 #-}+{-# RULES "buildObjectM/buildObjectM7" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7)] = buildObjectM7 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 #-}+{-# RULES "buildObjectM/buildObjectM8" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8)] = buildObjectM8 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 #-}+{-# RULES "buildObjectM/buildObjectM9" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9)] = buildObjectM9 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 #-}+{-# RULES "buildObjectM/buildObjectM10" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10)] = buildObjectM10 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 #-}+{-# RULES "buildObjectM/buildObjectM11" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11)] = buildObjectM11 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 #-}+{-# RULES "buildObjectM/buildObjectM12" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12)] = buildObjectM12 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 #-}+{-# RULES "buildObjectM/buildObjectM13" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13)] = buildObjectM13 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 #-}+{-# RULES "buildObjectM/buildObjectM14" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14)] = buildObjectM14 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 #-}+{-# RULES "buildObjectM/buildObjectM15" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15)] = buildObjectM15 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 #-}+{-# RULES "buildObjectM/buildObjectM16" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16)] = buildObjectM16 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 #-}+{-# RULES "buildObjectM/buildObjectM17" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17)] = buildObjectM17 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 #-}+{-# RULES "buildObjectM/buildObjectM18" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18)] = buildObjectM18 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 #-}+{-# RULES "buildObjectM/buildObjectM19" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19)] = buildObjectM19 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 #-}+{-# RULES "buildObjectM/buildObjectM20" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20)] = buildObjectM20 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 #-}+{-# RULES "buildObjectM/buildObjectM21" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21)] = buildObjectM21 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 #-}+{-# RULES "buildObjectM/buildObjectM22" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22)] = buildObjectM22 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 #-}+{-# RULES "buildObjectM/buildObjectM23" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23)] = buildObjectM23 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 #-}+{-# RULES "buildObjectM/buildObjectM24" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24)] = buildObjectM24 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 #-}+{-# RULES "buildObjectM/buildObjectM25" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25)] = buildObjectM25 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 #-}+{-# RULES "buildObjectM/buildObjectM26" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26)] = buildObjectM26 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 #-}+{-# RULES "buildObjectM/buildObjectM27" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27)] = buildObjectM27 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 #-}+{-# RULES "buildObjectM/buildObjectM28" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27),(k28,v28)] = buildObjectM28 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 #-}+{-# RULES "buildObjectM/buildObjectM29" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27),(k28,v28),(k29,v29)] = buildObjectM29 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 #-}+{-# RULES "buildObjectM/buildObjectM30" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27),(k28,v28),(k29,v29),(k30,v30)] = buildObjectM30 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 #-}+{-# RULES "buildObjectM/buildObjectM31" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27),(k28,v28),(k29,v29),(k30,v30),(k31,v31)] = buildObjectM31 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 #-}+{-# RULES "buildObjectM/buildObjectM32" forall k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 k32 v32. buildObjectM [(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8),(k9,v9),(k10,v10),(k11,v11),(k12,v12),(k13,v13),(k14,v14),(k15,v15),(k16,v16),(k17,v17),(k18,v18),(k19,v19),(k20,v20),(k21,v21),(k22,v22),(k23,v23),(k24,v24),(k25,v25),(k26,v26),(k27,v27),(k28,v28),(k29,v29),(k30,v30),(k31,v31),(k32,v32)] = buildObjectM32 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 k32 v32 #-}++buildObjectM1 :: K -> V -> IO O+buildObjectM1 k1 v1 =+ js_buildObjectM1 k1 v1+{-# INLINE buildObjectM1 #-}++foreign import javascript unsafe "h$buildObject($1,$2)"+ js_buildObjectM1 :: K -> V -> IO O+++buildObjectM2 :: K -> V -> K -> V -> IO O+buildObjectM2 k1 v1 k2 v2 =+ js_buildObjectM2 k1 v1 k2 v2+{-# INLINE buildObjectM2 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4)"+ js_buildObjectM2 :: K -> V -> K -> V -> IO O+++buildObjectM3 :: K -> V -> K -> V -> K -> V -> IO O+buildObjectM3 k1 v1 k2 v2 k3 v3 =+ js_buildObjectM3 k1 v1 k2 v2 k3 v3+{-# INLINE buildObjectM3 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6)"+ js_buildObjectM3 :: K -> V -> K -> V -> K -> V -> IO O+++buildObjectM4 :: K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM4 k1 v1 k2 v2 k3 v3 k4 v4 =+ js_buildObjectM4 k1 v1 k2 v2 k3 v3 k4 v4+{-# INLINE buildObjectM4 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8)"+ js_buildObjectM4 :: K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM5 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM5 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 =+ js_buildObjectM5 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5+{-# INLINE buildObjectM5 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10)"+ js_buildObjectM5 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM6 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM6 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 =+ js_buildObjectM6 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6+{-# INLINE buildObjectM6 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12)"+ js_buildObjectM6 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM7 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM7 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 =+ js_buildObjectM7 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7+{-# INLINE buildObjectM7 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14)"+ js_buildObjectM7 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM8 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM8 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 =+ js_buildObjectM8 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8+{-# INLINE buildObjectM8 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16)"+ js_buildObjectM8 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM9 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM9 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 =+ js_buildObjectM9 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9+{-# INLINE buildObjectM9 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18)"+ js_buildObjectM9 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM10 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM10 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 =+ js_buildObjectM10 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10+{-# INLINE buildObjectM10 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20)"+ js_buildObjectM10 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM11 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM11 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 =+ js_buildObjectM11 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11+{-# INLINE buildObjectM11 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22)"+ js_buildObjectM11 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM12 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM12 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 =+ js_buildObjectM12 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12+{-# INLINE buildObjectM12 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24)"+ js_buildObjectM12 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM13 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM13 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 =+ js_buildObjectM13 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13+{-# INLINE buildObjectM13 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26)"+ js_buildObjectM13 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM14 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM14 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 =+ js_buildObjectM14 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14+{-# INLINE buildObjectM14 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28)"+ js_buildObjectM14 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM15 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM15 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 =+ js_buildObjectM15 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15+{-# INLINE buildObjectM15 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30)"+ js_buildObjectM15 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM16 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM16 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 =+ js_buildObjectM16 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16+{-# INLINE buildObjectM16 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32)"+ js_buildObjectM16 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM17 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM17 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 =+ js_buildObjectM17 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17+{-# INLINE buildObjectM17 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34)"+ js_buildObjectM17 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM18 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM18 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 =+ js_buildObjectM18 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18+{-# INLINE buildObjectM18 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36)"+ js_buildObjectM18 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM19 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM19 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 =+ js_buildObjectM19 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19+{-# INLINE buildObjectM19 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38)"+ js_buildObjectM19 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM20 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM20 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 =+ js_buildObjectM20 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20+{-# INLINE buildObjectM20 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40)"+ js_buildObjectM20 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM21 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM21 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 =+ js_buildObjectM21 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21+{-# INLINE buildObjectM21 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42)"+ js_buildObjectM21 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM22 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM22 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 =+ js_buildObjectM22 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22+{-# INLINE buildObjectM22 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44)"+ js_buildObjectM22 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM23 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM23 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 =+ js_buildObjectM23 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23+{-# INLINE buildObjectM23 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46)"+ js_buildObjectM23 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM24 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM24 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 =+ js_buildObjectM24 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24+{-# INLINE buildObjectM24 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48)"+ js_buildObjectM24 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM25 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM25 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 =+ js_buildObjectM25 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25+{-# INLINE buildObjectM25 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50)"+ js_buildObjectM25 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM26 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM26 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 =+ js_buildObjectM26 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26+{-# INLINE buildObjectM26 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52)"+ js_buildObjectM26 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM27 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM27 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 =+ js_buildObjectM27 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27+{-# INLINE buildObjectM27 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54)"+ js_buildObjectM27 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM28 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM28 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 =+ js_buildObjectM28 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28+{-# INLINE buildObjectM28 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56)"+ js_buildObjectM28 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM29 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM29 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 =+ js_buildObjectM29 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29+{-# INLINE buildObjectM29 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58)"+ js_buildObjectM29 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM30 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM30 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 =+ js_buildObjectM30 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30+{-# INLINE buildObjectM30 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60)"+ js_buildObjectM30 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM31 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM31 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 =+ js_buildObjectM31 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31+{-# INLINE buildObjectM31 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62)"+ js_buildObjectM31 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+++buildObjectM32 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O+buildObjectM32 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 k32 v32 =+ js_buildObjectM32 k1 v1 k2 v2 k3 v3 k4 v4 k5 v5 k6 v6 k7 v7 k8 v8 k9 v9 k10 v10 k11 v11 k12 v12 k13 v13 k14 v14 k15 v15 k16 v16 k17 v17 k18 v18 k19 v19 k20 v20 k21 v21 k22 v22 k23 v23 k24 v24 k25 v25 k26 v26 k27 v27 k28 v28 k29 v29 k30 v30 k31 v31 k32 v32+{-# INLINE buildObjectM32 #-}++foreign import javascript unsafe "h$buildObject($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64)"+ js_buildObjectM32 :: K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> K -> V -> IO O++++#endif
GHC/List.hs view
@@ -18,8 +18,10 @@ ----------------------------------------------------------------------------- module GHC.List (- -- [] (..), -- built-in syntax; can't be used in export list + -- The list data type+ List,+ -- List-monomorphic Foldable methods and misc functions foldr, foldr', foldr1, foldl, foldl', foldl1,@@ -515,9 +517,9 @@ -- See Note [scanl rewrite rules] {-# RULES "scanl'" [~1] forall f a bs . scanl' f a bs =- build (\c n -> a `c` foldr (scanlFB' f c) (flipSeqScanl' n) bs a)+ build (\c n -> a `c` foldr (scanlFB' f c) (flipSeq n) bs a) "scanlList'" [1] forall f a bs .- foldr (scanlFB' f (:)) (flipSeqScanl' []) bs a = tail (scanl' f a bs)+ foldr (scanlFB' f (:)) (flipSeq []) bs a = tail (scanl' f a bs) #-} {-# INLINE [0] scanlFB' #-} -- See Note [Inline FB functions]@@ -525,10 +527,6 @@ scanlFB' f c = \b g -> oneShot (\x -> let !b' = f x b in b' `c` g b') -- See Note [Left folds via right fold] -{-# INLINE [0] flipSeqScanl' #-}-flipSeqScanl' :: a -> b -> a-flipSeqScanl' a !_b = a- {- Note [scanl rewrite rules] ~~~~~~~~~~~~~~~~~~~~~~~~~~@@ -718,7 +716,7 @@ maximum xs = foldl1' max xs -- We want this to be specialized so that with a strict max function, GHC--- produces good code. Note that to see if this is happending, one has to+-- produces good code. Note that to see if this is happening, one has to -- look at -ddump-prep, not -ddump-core! {-# SPECIALIZE maximum :: [Int] -> Int #-} {-# SPECIALIZE maximum :: [Integer] -> Integer #-}@@ -799,8 +797,8 @@ -- | 'repeat' @x@ is an infinite list, with @x@ the value of every element. ----- >>> take 20 $ repeat 17---[17,17,17,17,17,17,17,17,17...+-- >>> repeat 17+-- [17,17,17,17,17,17,17,17,17... repeat :: a -> [a] {-# INLINE [0] repeat #-} -- The pragma just gives the rules more chance to fire@@ -837,9 +835,9 @@ -- -- >>> cycle [] -- *** Exception: Prelude.cycle: empty list--- >>> take 20 $ cycle [42]+-- >>> cycle [42] -- [42,42,42,42,42,42,42,42,42,42...--- >>> take 20 $ cycle [2, 5, 7]+-- >>> cycle [2, 5, 7] -- [2,5,7,2,5,7,2,5,7,2,5,7... cycle :: HasCallStack => [a] -> [a] cycle [] = errorEmptyList "cycle"@@ -930,7 +928,7 @@ -- A version of take that takes the whole list if it's given an argument less -- than 1.-{-# NOINLINE [1] unsafeTake #-}+{-# NOINLINE [0] unsafeTake #-} -- See Note [Inline FB functions] unsafeTake :: Int -> [a] -> [a] unsafeTake !_ [] = [] unsafeTake 1 (x: _) = [x]@@ -939,20 +937,18 @@ {-# RULES "take" [~1] forall n xs . take n xs = build (\c nil -> if 0 < n- then foldr (takeFB c nil) (flipSeqTake nil) xs n+ then foldr (takeFB c nil) (flipSeq nil) xs n else nil)-"unsafeTakeList" [1] forall n xs . foldr (takeFB (:) []) (flipSeqTake []) xs n+"unsafeTakeList" [1] forall n xs . foldr (takeFB (:) []) (flipSeq []) xs n = unsafeTake n xs #-} -{-# INLINE [0] flipSeqTake #-}--- Just flip seq, specialized to Int, but not inlined too early.--- It's important to force the numeric argument here, even though--- it's not used. Otherwise, take n [] doesn't force n. This is--- bad for strictness analysis and unboxing, and leads to increased--- allocation in T7257.-flipSeqTake :: a -> Int -> a-flipSeqTake x !_n = x+{-# INLINE [0] flipSeq #-}+-- Just flip seq, but not inlined too early.+-- It's important to force the argument here, even though it's not used.+-- Otherwise, take n [] can't unbox n, leading to increased allocation in T7257.+flipSeq :: a -> b -> a+flipSeq x !_n = x {-# INLINE [0] takeFB #-} -- See Note [Inline FB functions] takeFB :: (a -> b -> b) -> b -> a -> (Int -> b) -> Int -> b@@ -1282,6 +1278,7 @@ -- | \(\mathcal{O}(n)\). 'lookup' @key assocs@ looks up a key in an association -- list.+-- For the result to be 'Nothing', the list must be finite. -- -- >>> lookup 2 [] -- Nothing@@ -1289,6 +1286,7 @@ -- Nothing -- >>> lookup 2 [(1, "first"), (2, "second"), (3, "third")] -- Just "second"+-- lookup :: (Eq a) => a -> [(a,b)] -> Maybe b lookup _key [] = Nothing lookup key ((x,y):xys)@@ -1347,8 +1345,8 @@ -- >>> ['a', 'b', 'c'] !! (-1) -- *** Exception: Prelude.!!: negative index ----- WARNING: This function is partial. You can use <'atMay'--- https://hackage.haskell.org/package/safe-0.3.19/docs/Safe.html#v:atMay>+-- WARNING: This function is partial. You can use+-- <https://hackage.haskell.org/package/safe/docs/Safe.html#v:atMay atMay> -- instead. #if defined(USE_REPORT_PRELUDE) (!!) :: [a] -> Int -> a
GHC/Num.hs view
@@ -56,6 +56,8 @@ -- @x * fromInteger 1@ = @x@ and @fromInteger 1 * x@ = @x@ -- [__Distributivity of @('*')@ with respect to @('+')@__]: -- @a * (b + c)@ = @(a * b) + (a * c)@ and @(b + c) * a@ = @(b * a) + (c * a)@+-- [__Coherence with 'toInteger'__]: if the type also implements 'GHC.Real.Integral', then+-- 'fromInteger' is a left inverse for 'GHC.Real.toInteger', i.e. @fromInteger (toInteger i) == i@ -- -- Note that it /isn't/ customarily expected that a type instance of both 'Num' -- and 'Ord' implement an ordered ring. Indeed, in @base@ only 'Integer' and
GHC/Pack.hs view
@@ -12,6 +12,11 @@ -- Stability : internal -- Portability : non-portable (GHC Extensions) --+-- ⚠ Warning: Starting @base-4.18@, this module is being deprecated.+-- See https://gitlab.haskell.org/ghc/ghc/-/issues/21461 for more information.+--+--+-- -- This module provides a small set of low-level functions for packing -- and unpacking a chunk of bytes. Used by code emitted by the compiler -- plus the prelude libraries.
GHC/Ptr.hs view
@@ -39,7 +39,7 @@ -- Data pointers. -- The role of Ptr's parameter is phantom, as there is no relation between--- the Haskell representation and whathever the user puts at the end of the+-- the Haskell representation and whatever the user puts at the end of the -- pointer. And phantom is useful to implement castPtr (see #9163) -- redundant role annotation checks that this doesn't change
GHC/Read.hs view
@@ -656,6 +656,12 @@ -- Tuple instances of Read, up to size 15 ------------------------------------------------------------------------ +-- | Reading a 'Void' value is always a parse error, considering+-- 'Void' as a data type with no constructors.+--+-- @since 4.8.0.0+deriving instance Read Void+ -- | @since 2.01 instance Read () where readPrec =
GHC/Real.hs view
@@ -135,6 +135,13 @@ -- Standard numeric classes -------------------------------------------------------------- +-- | Real numbers.+--+-- The Haskell report defines no laws for 'Real', however 'Real' instances+-- are customarily expected to adhere to the following law:+--+-- [__Coherence with 'fromRational'__]: if the type also implements 'Fractional',+-- then 'fromRational' is a left inverse for 'toRational', i.e. @fromRational (toRational i) = i@ class (Num a, Ord a) => Real a where -- | the rational equivalent of its real argument with full precision toRational :: a -> Rational@@ -153,6 +160,9 @@ -- -- An example of a suitable Euclidean function, for 'Integer'\'s instance, is -- 'abs'.+--+-- In addition, 'toInteger` should be total, and 'fromInteger' should be a left+-- inverse for it, i.e. @fromInteger (toInteger i) = i@. class (Real a, Enum a) => Integral a where -- | integer division truncated toward zero --@@ -211,6 +221,9 @@ -- -- [__'recip' gives the multiplicative inverse__]: -- @x * recip x@ = @recip x * x@ = @fromInteger 1@+-- [__Totality of 'toRational'__]: 'toRational' is total+-- [__Coherence with 'toRational'__]: if the type also implements 'Real',+-- then 'fromRational' is a left inverse for 'toRational', i.e. @fromRational (toRational i) = i@ -- -- Note that it /isn't/ customarily expected that a type instance of -- 'Fractional' implement a field. However, all instances in @base@ do.@@ -275,6 +288,7 @@ -- These 'numeric' enumerations come straight from the Report numericEnumFrom :: (Fractional a) => a -> [a]+{-# INLINE numericEnumFrom #-} -- See Note [Inline Enum method helpers] in GHC.Enum numericEnumFrom n = go 0 where -- See Note [Numeric Stability of Enumerating Floating Numbers]@@ -282,6 +296,7 @@ in n' : go (k + 1) numericEnumFromThen :: (Fractional a) => a -> a -> [a]+{-# INLINE numericEnumFromThen #-} -- See Note [Inline Enum method helpers] in GHC.Enum numericEnumFromThen n m = go 0 where step = m - n@@ -290,9 +305,11 @@ in n' : go (k + 1) numericEnumFromTo :: (Ord a, Fractional a) => a -> a -> [a]+{-# INLINE numericEnumFromTo #-} -- See Note [Inline Enum method helpers] in GHC.Enum numericEnumFromTo n m = takeWhile (<= m + 1/2) (numericEnumFrom n) numericEnumFromThenTo :: (Ord a, Fractional a) => a -> a -> a -> [a]+{-# INLINE numericEnumFromThenTo #-} -- See Note [Inline Enum method helpers] in GHC.Enum numericEnumFromThenTo e1 e2 e3 = takeWhile predicate (numericEnumFromThen e1 e2) where@@ -654,27 +671,37 @@ ------------------------------------------------------- -- | raise a number to a non-negative integral power-{-# SPECIALISE [1] (^) ::- Integer -> Integer -> Integer,- Integer -> Int -> Integer,- Int -> Int -> Int #-}-{-# INLINABLE [1] (^) #-} -- See Note [Inlining (^)]+{-# INLINE [1] (^) #-} -- See Note [Inlining (^)] (^) :: (Num a, Integral b) => a -> b -> a x0 ^ y0 | y0 < 0 = errorWithoutStackTrace "Negative exponent" | y0 == 0 = 1- | otherwise = f x0 y0- where -- f : x0 ^ y0 = x ^ y- f x y | even y = f (x * x) (y `quot` 2)- | y == 1 = x- | otherwise = g (x * x) (y `quot` 2) x -- See Note [Half of y - 1]- -- g : x0 ^ y0 = (x ^ y) * z- g x y z | even y = g (x * x) (y `quot` 2) z- | y == 1 = x * z- | otherwise = g (x * x) (y `quot` 2) (x * z) -- See Note [Half of y - 1]+ | otherwise = powImpl x0 y0 +{-# SPECIALISE powImpl ::+ Integer -> Integer -> Integer,+ Integer -> Int -> Integer,+ Int -> Int -> Int #-}+{-# INLINABLE powImpl #-} -- See Note [Inlining (^)]+powImpl :: (Num a, Integral b) => a -> b -> a+-- powImpl : x0 ^ y0 = (x ^ y)+powImpl x y | even y = powImpl (x * x) (y `quot` 2)+ | y == 1 = x+ | otherwise = powImplAcc (x * x) (y `quot` 2) x -- See Note [Half of y - 1]++{-# SPECIALISE powImplAcc ::+ Integer -> Integer -> Integer -> Integer,+ Integer -> Int -> Integer -> Integer,+ Int -> Int -> Int -> Int #-}+{-# INLINABLE powImplAcc #-} -- See Note [Inlining (^)]+powImplAcc :: (Num a, Integral b) => a -> b -> a -> a+-- powImplAcc : x0 ^ y0 = (x ^ y) * z+powImplAcc x y z | even y = powImplAcc (x * x) (y `quot` 2) z+ | y == 1 = x * z+ | otherwise = powImplAcc (x * x) (y `quot` 2) (x * z) -- See Note [Half of y - 1]+ -- | raise a number to an integral power (^^) :: (Fractional a, Integral b) => a -> b -> a-{-# INLINABLE [1] (^^) #-} -- See Note [Inlining (^)+{-# INLINE [1] (^^) #-} -- See Note [Inlining (^) x ^^ n = if n >= 0 then x^n else recip (x^(negate n)) {- Note [Half of y - 1]@@ -682,14 +709,40 @@ Since y is guaranteed to be odd and positive here, half of y - 1 can be computed as y `quot` 2, optimising subtraction away. -Note [Inlining (^)-~~~~~~~~~~~~~~~~~~-The INLINABLE pragma allows (^) to be specialised at its call sites.-If it is called repeatedly at the same type, that can make a huge-difference, because of those constants which can be repeatedly-calculated.+Note [Inlining (^)]+~~~~~~~~~~~~~~~~~~~+We want to achieve the following:+* Noting that (^) is lazy in its first argument, we'd still like to avoid allocating a box for+ the first argument. Example: nofib/imaginary/x2n1, which makes many calls to (^) with+ different first arguments each time. -Currently the fromInteger calls are not floated because we get+ Solution: split (^) into a small INLINE wrapper that tests the second arg, which then calls the+ strict (and recursive) auxiliary function `powImpl`.++* Don't inline (^) too early because we want rewrite rules to optimise calls to (^) with+ small exponents. See Note [Powers with small exponent].++ Solution: use INLINE[1] to delay inlining to phase 1, giving the rewrite rules time to fire.++* (^) is overloaded on two different type parameters. We want to specialise.++ Solution: make `powImpl` (and its friend `powImplAcc`) INLINEABLE, so they can be specialised+ at call sites. Also give them some common specialisations right here, to avoid duplicating+ that specialisation in clients.++Specialisation can make a huge difference for repeated calls, because of+constants which would otherwise be calculated repeatedly and unboxing of+arguments.++Why not make (^) strict in `x0` with a bang and make it INLINABLE? Well, because+it is futile: Being strict in the `Complex Double` pair won't be enough to unbox+the `Double`s anyway. Even after deep specisalisation, we will only unbox the+`Double`s when we inline (^), because (^) remains lazy in the `Double` fields.+Given that (^) must always inline to yield good code, we can just as well mark+it as such.++A small note on perf: Currently the fromInteger calls from the desugaring of+literals are not floated because we get \d1 d2 x y -> blah after the gentle round of simplification. @@ -713,22 +766,21 @@ Also desirable would be rules for (^^), but I haven't managed to get those to fire. -Note: Trying to save multiplications by sharing the square for-exponents 4 and 5 does not save time, indeed, for Double, it is-up to twice slower, so the rules contain flat sequences of-multiplications.+Note: Since (*) is not associative for some types (e.g. Double), it is+important that the RHS of these rules produce the same bracketing as+would the actual implementation of (^). A mismatch here led to #19569. -} -- See Note [Powers with small exponent] {-# RULES-"^2/Int" forall x. x ^ (2 :: Int) = let u = x in u*u-"^3/Int" forall x. x ^ (3 :: Int) = let u = x in u*u*u-"^4/Int" forall x. x ^ (4 :: Int) = let u = x in u*u*u*u-"^5/Int" forall x. x ^ (5 :: Int) = let u = x in u*u*u*u*u-"^2/Integer" forall x. x ^ (2 :: Integer) = let u = x in u*u-"^3/Integer" forall x. x ^ (3 :: Integer) = let u = x in u*u*u-"^4/Integer" forall x. x ^ (4 :: Integer) = let u = x in u*u*u*u-"^5/Integer" forall x. x ^ (5 :: Integer) = let u = x in u*u*u*u*u+"^2/Int" forall x. x ^ (2 :: Int) = x*x+"^3/Int" forall x. x ^ (3 :: Int) = x*x*x+"^4/Int" forall x. x ^ (4 :: Int) = let u = x*x in u*u+"^5/Int" forall x. x ^ (5 :: Int) = let u = x*x in u*u*x+"^2/Integer" forall x. x ^ (2 :: Integer) = x*x+"^3/Integer" forall x. x ^ (3 :: Integer) = x*x*x+"^4/Integer" forall x. x ^ (4 :: Integer) = let u = x*x in u*u+"^5/Integer" forall x. x ^ (5 :: Integer) = let u = x*x in u*u*x #-} -------------------------------------------------------@@ -829,13 +881,13 @@ "gcd/Word->Word->Word" gcd = gcdWord #-} --- See Note [Stable Unfolding for list producers] in GHC.Enum-{-# INLINABLE integralEnumFrom #-}+-- INLINE pragma: see Note [Inline Enum method helpers] in GHC.Enum+{-# INLINE integralEnumFrom #-} integralEnumFrom :: (Integral a, Bounded a) => a -> [a] integralEnumFrom n = map fromInteger [toInteger n .. toInteger (maxBound `asTypeOf` n)] --- See Note [Stable Unfolding for list producers] in GHC.Enum-{-# INLINABLE integralEnumFromThen #-}+-- INLINE pragma: see Note [Inline Enum method helpers] in GHC.Enum+{-# INLINE integralEnumFromThen #-} integralEnumFromThen :: (Integral a, Bounded a) => a -> a -> [a] integralEnumFromThen n1 n2 | i_n2 >= i_n1 = map fromInteger [i_n1, i_n2 .. toInteger (maxBound `asTypeOf` n1)]@@ -844,13 +896,13 @@ i_n1 = toInteger n1 i_n2 = toInteger n2 --- See Note [Stable Unfolding for list producers] in GHC.Enum-{-# INLINABLE integralEnumFromTo #-}+-- INLINE pragma: see Note [Inline Enum method helpers] in GHC.Enum+{-# INLINE integralEnumFromTo #-} integralEnumFromTo :: Integral a => a -> a -> [a] integralEnumFromTo n m = map fromInteger [toInteger n .. toInteger m] --- See Note [Stable Unfolding for list producers] in GHC.Enum-{-# INLINABLE integralEnumFromThenTo #-}+-- INLINE pragma: see Note [Inline Enum method helpers] in GHC.Enum+{-# INLINE integralEnumFromThenTo #-} integralEnumFromThenTo :: Integral a => a -> a -> a -> [a] integralEnumFromThenTo n1 n2 m = map fromInteger [toInteger n1, toInteger n2 .. toInteger m]
GHC/ResponseFile.hs view
@@ -92,7 +92,7 @@ -- -- While 'unescapeArgs' allows using quoting (i.e., convenient -- escaping of many characters) by having matching sets of single- or--- double-quotes,'escapeArgs' does not use the quoting mechasnism,+-- double-quotes,'escapeArgs' does not use the quoting mechanism, -- and thus will always escape any whitespace, quotes, and -- backslashes. --
GHC/Show.hs view
@@ -165,6 +165,9 @@ -- Simple Instances -------------------------------------------------------------- +-- | @since 4.8.0.0+deriving instance Show Void+ -- | @since 2.01 deriving instance Show ()
GHC/Stable.hs view
@@ -44,6 +44,8 @@ collection). Consequently, stable pointers can be passed to foreign code, which can treat it as an opaque reference to a Haskell value. +The @StablePtr@ 0 is reserved for representing NULL in foreign code.+ A value of type @StablePtr a@ is a stable pointer to a Haskell expression of type @a@. -}
GHC/Stack/CCS.hsc view
@@ -20,7 +20,6 @@ -- * Call stacks currentCallStack, whoCreated,- whereFrom, -- * Internals CostCentreStack,@@ -35,10 +34,6 @@ ccSrcSpan, ccsToStrings, renderStack,- ipeProv,- peekInfoProv,- InfoProv(..),- InfoProvEnt, ) where import Foreign@@ -49,7 +44,6 @@ import GHC.Foreign as GHC import GHC.IO.Encoding import GHC.List ( concatMap, reverse )-import GHC.Show (Show) #define PROFILING #include "Rts.h"@@ -82,7 +76,23 @@ clearCCS (IO m) = IO $ \s -> clearCCS## m s -- | Get the 'CostCentre' at the head of a 'CostCentreStack'.+#if defined(javascript_HOST_ARCH) ccsCC :: Ptr CostCentreStack -> IO (Ptr CostCentre)+ccsCC p = peekByteOff p 4++ccsParent :: Ptr CostCentreStack -> IO (Ptr CostCentreStack)+ccsParent p = peekByteOff p 8++ccLabel :: Ptr CostCentre -> IO CString+ccLabel p = peekByteOff p 4++ccModule :: Ptr CostCentre -> IO CString+ccModule p = peekByteOff p 8++ccSrcSpan :: Ptr CostCentre -> IO CString+ccSrcSpan p = peekByteOff p 12+#else+ccsCC :: Ptr CostCentreStack -> IO (Ptr CostCentre) ccsCC p = (# peek CostCentreStack, cc) p -- | Get the tail of a 'CostCentreStack'.@@ -100,6 +110,7 @@ -- | Get the source span of a 'CostCentre'. ccSrcSpan :: Ptr CostCentre -> IO CString ccSrcSpan p = (# peek CostCentre, srcloc) p+#endif -- | Returns a @[String]@ representing the current call stack. This -- can be useful for debugging.@@ -142,69 +153,3 @@ renderStack strs = "CallStack (from -prof):" ++ concatMap ("\n "++) (reverse strs) --- Static Closure Information--data InfoProv = InfoProv {- ipName :: String,- ipDesc :: String,- ipTyDesc :: String,- ipLabel :: String,- ipMod :: String,- ipLoc :: String-} deriving (Eq, Show)-data InfoProvEnt--getIPE :: a -> IO (Ptr InfoProvEnt)-getIPE obj = IO $ \s ->- case whereFrom## obj s of- (## s', addr ##) -> (## s', Ptr addr ##)--ipeProv :: Ptr InfoProvEnt -> Ptr InfoProv-ipeProv p = (#ptr InfoProvEnt, prov) p--peekIpName, peekIpDesc, peekIpLabel, peekIpModule, peekIpSrcLoc, peekIpTyDesc :: Ptr InfoProv -> IO CString-peekIpName p = (# peek InfoProv, table_name) p-peekIpDesc p = (# peek InfoProv, closure_desc) p-peekIpLabel p = (# peek InfoProv, label) p-peekIpModule p = (# peek InfoProv, module) p-peekIpSrcLoc p = (# peek InfoProv, srcloc) p-peekIpTyDesc p = (# peek InfoProv, ty_desc) p--peekInfoProv :: Ptr InfoProv -> IO InfoProv-peekInfoProv infop = do- name <- GHC.peekCString utf8 =<< peekIpName infop- desc <- GHC.peekCString utf8 =<< peekIpDesc infop- tyDesc <- GHC.peekCString utf8 =<< peekIpTyDesc infop- label <- GHC.peekCString utf8 =<< peekIpLabel infop- mod <- GHC.peekCString utf8 =<< peekIpModule infop- loc <- GHC.peekCString utf8 =<< peekIpSrcLoc infop- return InfoProv {- ipName = name,- ipDesc = desc,- ipTyDesc = tyDesc,- ipLabel = label,- ipMod = mod,- ipLoc = loc- }---- | Get information about where a value originated from.--- This information is stored statically in a binary when `-finfo-table-map` is--- enabled. The source positions will be greatly improved by also enabled debug--- information with `-g3`. Finally you can enable `-fdistinct-constructor-tables` to--- get more precise information about data constructor allocations.------ The information is collect by looking at the info table address of a specific closure and--- then consulting a specially generated map (by `-finfo-table-map`) to find out where we think--- the best source position to describe that info table arose from.-whereFrom :: a -> IO (Maybe InfoProv)-whereFrom obj = do- ipe <- getIPE obj- -- The primop returns the null pointer in two situations at the moment- -- 1. The lookup fails for whatever reason- -- 2. -finfo-table-map is not enabled.- -- It would be good to distinguish between these two cases somehow.- if ipe == nullPtr- then return Nothing- else do- infoProv <- peekInfoProv (ipeProv ipe)- return $ Just infoProv
GHC/Stack/CloneStack.hs view
@@ -28,7 +28,7 @@ import GHC.Conc.Sync import GHC.Exts (Int (I#), RealWorld, StackSnapshot#, ThreadId#, Array#, sizeofArray#, indexArray#, State#, StablePtr#) import GHC.IO (IO (..))-import GHC.Stack.CCS (InfoProv (..), InfoProvEnt, ipeProv, peekInfoProv)+import GHC.InfoProv (InfoProv (..), InfoProvEnt, ipLoc, ipeProv, peekInfoProv) import GHC.Stable -- | A frozen snapshot of the state of an execution stack.@@ -86,7 +86,7 @@ 1. `cloneMyStack#` - A primop for cloning the active thread's stack. 2. `sendCloneStackMessage#` - A primop for cloning another thread's stack. Sends a RTS message (Messages.c) with a MVar to that thread. The cloned- stack is reveived by taking it out of this MVar.+ stack is received by taking it out of this MVar. `cloneMyStack#` has to be a primop, because new primitive types (`StackSnapshot#`) cannot be marshalled by FFI. Using a `Ptr StackSnapshot` as@@ -201,7 +201,7 @@ freeStablePtr boxedPtr takeMVar resultVar --- | Represetation for the source location where a return frame was pushed on the stack.+-- | Representation for the source location where a return frame was pushed on the stack. -- This happens every time when a @case ... of@ scrutinee is evaluated. data StackEntry = StackEntry { functionName :: String,@@ -230,12 +230,12 @@ decode :: StackSnapshot -> IO [StackEntry] decode stackSnapshot = do stackEntries <- getDecodedStackArray stackSnapshot- ipes <- mapM unmarshall stackEntries+ ipes <- mapM unmarshal stackEntries return $ catMaybes ipes where- unmarshall :: Ptr InfoProvEnt -> IO (Maybe StackEntry)- unmarshall ipe = if ipe == nullPtr then+ unmarshal :: Ptr InfoProvEnt -> IO (Maybe StackEntry)+ unmarshal ipe = if ipe == nullPtr then pure Nothing else do infoProv <- (peekInfoProv . ipeProv) ipe
GHC/StaticPtr.hs view
@@ -28,7 +28,7 @@ -- table is known as the Static Pointer Table. The reference can then be -- dereferenced to obtain the value. ----- The various communicating processes need to aggree on the keys used to refer+-- The various communicating processes need to agree on the keys used to refer -- to the values in the Static Pointer Table, or lookups will fail. Only -- processes launched from the same program binary are guaranteed to use the -- same set of keys.
GHC/Stats.hsc view
@@ -105,23 +105,20 @@ -- | Total elapsed time (at the previous GC) , elapsed_ns :: RtsTime - -- | The CPU time used during the post-mark pause phase of the concurrent- -- nonmoving GC.+ -- | The total CPU time used during the post-mark pause phase of the+ -- concurrent nonmoving GC. , nonmoving_gc_sync_cpu_ns :: RtsTime- -- | The time elapsed during the post-mark pause phase of the concurrent- -- nonmoving GC.+ -- | The total time elapsed during the post-mark pause phase of the+ -- concurrent nonmoving GC. , nonmoving_gc_sync_elapsed_ns :: RtsTime- -- | The maximum time elapsed during the post-mark pause phase of the+ -- | The maximum elapsed length of any post-mark pause phase of the -- concurrent nonmoving GC. , nonmoving_gc_sync_max_elapsed_ns :: RtsTime- -- | The CPU time used during the post-mark pause phase of the concurrent- -- nonmoving GC.+ -- | The total CPU time used by the nonmoving GC. , nonmoving_gc_cpu_ns :: RtsTime- -- | The time elapsed during the post-mark pause phase of the concurrent- -- nonmoving GC.+ -- | The total time elapsed during which there is a nonmoving GC active. , nonmoving_gc_elapsed_ns :: RtsTime- -- | The maximum time elapsed during the post-mark pause phase of the- -- concurrent nonmoving GC.+ -- | The maximum time elapsed during any nonmoving GC cycle. , nonmoving_gc_max_elapsed_ns :: RtsTime -- | Details about the most recent GC@@ -143,7 +140,7 @@ , gcdetails_threads :: Word32 -- | Number of bytes allocated since the previous GC , gcdetails_allocated_bytes :: Word64- -- | Total amount of live data in the heap (incliudes large + compact data).+ -- | Total amount of live data in the heap (includes large + compact data). -- Updated after every GC. Data in uncollected generations (in minor GCs) -- are considered live. , gcdetails_live_bytes :: Word64@@ -162,6 +159,12 @@ , gcdetails_par_max_copied_bytes :: Word64 -- | In parallel GC, the amount of balanced data copied by all threads , gcdetails_par_balanced_copied_bytes :: Word64+ -- | The amount of memory lost due to block fragmentation in bytes.+ -- Block fragmentation is the difference between the amount of blocks retained by the RTS and the blocks that are in use.+ -- This occurs when megablocks are only sparsely used, eg, when data that cannot be moved retains a megablock.+ --+ -- @since 4.18.0.0+ , gcdetails_block_fragmentation_bytes :: Word64 -- | The time elapsed during synchronisation before GC , gcdetails_sync_elapsed_ns :: RtsTime -- | The CPU time used during GC itself@@ -244,6 +247,8 @@ (# peek GCDetails, par_max_copied_bytes) pgc gcdetails_par_balanced_copied_bytes <- (# peek GCDetails, par_balanced_copied_bytes) pgc+ gcdetails_block_fragmentation_bytes <-+ (# peek GCDetails, block_fragmentation_bytes) pgc gcdetails_sync_elapsed_ns <- (# peek GCDetails, sync_elapsed_ns) pgc gcdetails_cpu_ns <- (# peek GCDetails, cpu_ns) pgc gcdetails_elapsed_ns <- (# peek GCDetails, elapsed_ns) pgc
GHC/TopHandler.hs view
@@ -28,6 +28,7 @@ flushStdHandles ) where +#include <ghcplatform.h> #include "HsBaseConfig.h" import Control.Exception@@ -46,6 +47,7 @@ #if defined(mingw32_HOST_OS) import GHC.ConsoleHandler+#elif defined(javascript_HOST_ARCH) #else import Data.Dynamic (toDyn) #endif@@ -81,6 +83,11 @@ do main_thread_id <- myThreadId weak_tid <- mkWeakThreadId main_thread_id++ --setFinalizerExceptionHandler printToStderrFinalizerExceptionHandler+ -- For the time being, we don't install any exception handler for+ -- Handle finalization. Instead, the user should set one manually.+ case weak_tid of (Weak w) -> setMainThread w install_interrupt_handler $ do m <- deRefWeak weak_tid@@ -92,7 +99,9 @@ topHandler install_interrupt_handler :: IO () -> IO ()-#if defined(mingw32_HOST_OS)+#if defined(javascript_HOST_ARCH)+install_interrupt_handler _ = return ()+#elif defined(mingw32_HOST_OS) install_interrupt_handler handler = do _ <- GHC.ConsoleHandler.installHandler $ Catch $ \event ->@@ -102,6 +111,8 @@ Close -> handler _ -> return () return ()+#elif !defined(HAVE_SIGNAL_H)+install_interrupt_handler _ = pure () #else #include "rts/Signals.h" -- specialised version of System.Posix.Signals.installHandler, which@@ -226,14 +237,27 @@ -} --- try to flush stdout/stderr, but don't worry if we fail--- (these handles might have errors, and we don't want to go into--- an infinite loop).+-- try to flush stdout/stderr. flushStdHandles :: IO () flushStdHandles = do- hFlush stdout `catchAny` \_ -> return ()- hFlush stderr `catchAny` \_ -> return ()+ hFlush stdout `catchException` handleExc+ -- In the event that we fail to flush stderr the default finalizer exception+ -- handler (which prints to stderr) will also likely fail. However, we call it+ -- anyways since the user may have set their own handler.+ hFlush stderr `catchException` handleExc+ where+ -- We dispatch exceptions thrown by hFlush to the same action used to+ -- handle Weak finalizers since this is where "normal" Handles (e.g. not+ -- stderr/stdout) would be flushed.+ --+ -- See Note [Handling exceptions during Handle finalization] in+ -- GHC.IO.Handle.Internals+ handleExc se = do+ handleFinalizerExc <- getFinalizerExceptionHandler+ -- Swallow any exceptions thrown by the finalizer exception handler+ handleFinalizerExc se `catchException` (\(SomeException _) -> return ()) + safeExit, fastExit :: Int -> IO a safeExit = exitHelper useSafeExit fastExit = exitHelper useFastExit@@ -242,7 +266,7 @@ unreachable = failIO "If you can read this, shutdownHaskellAndExit did not exit." exitHelper :: CInt -> Int -> IO a-#if defined(mingw32_HOST_OS)+#if defined(mingw32_HOST_OS) || defined(javascript_HOST_ARCH) exitHelper exitKind r = shutdownHaskellAndExit (fromIntegral r) exitKind >> unreachable #else@@ -258,14 +282,22 @@ | otherwise = shutdownHaskellAndExit 0xff exitKind >> unreachable +-- See Note [Lack of signals on wasm32-wasi].+#if !defined(HAVE_SIGNAL_H)+shutdownHaskellAndSignal :: CInt -> CInt -> IO ()+shutdownHaskellAndSignal = shutdownHaskellAndExit+#else foreign import ccall "shutdownHaskellAndSignal" shutdownHaskellAndSignal :: CInt -> CInt -> IO () #endif+#endif exitInterrupted :: IO a exitInterrupted =-#if defined(mingw32_HOST_OS)+#if defined(mingw32_HOST_OS) || defined(javascript_HOST_ARCH) safeExit 252+#elif !defined(HAVE_SIGNAL_H)+ safeExit 1 #else -- we must exit via the default action for SIGINT, so that the -- parent of this process can take appropriate action (see #2301)
GHC/TypeLits.hs view
@@ -11,6 +11,10 @@ {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE TypeApplications #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE PolyKinds #-}+{-# LANGUAGE ViewPatterns #-} {-| GHC's @DataKinds@ language extension lifts data constructors, natural@@ -34,15 +38,20 @@ N.Natural, N.Nat, Symbol -- Symbol is declared in GHC.Types in package ghc-prim -- * Linking type and value level- , N.KnownNat, natVal, natVal'- , KnownSymbol, symbolVal, symbolVal'- , KnownChar, charVal, charVal'+ , N.KnownNat(natSing), natVal, natVal'+ , KnownSymbol(symbolSing), symbolVal, symbolVal'+ , KnownChar(charSing), charVal, charVal' , N.SomeNat(..), SomeSymbol(..), SomeChar(..) , someNatVal, someSymbolVal, someCharVal , N.sameNat, sameSymbol, sameChar , OrderingI(..) , N.cmpNat, cmpSymbol, cmpChar-+ -- ** Singleton values+ , N.SNat, SSymbol, SChar+ , pattern N.SNat, pattern SSymbol, pattern SChar+ , fromSNat, fromSSymbol, fromSChar+ , withSomeSNat, withSomeSSymbol, withSomeSChar+ , N.withKnownNat, withKnownSymbol, withKnownChar -- * Functions on type literals , type (N.<=), type (N.<=?), type (N.+), type (N.*), type (N.^), type (N.-)@@ -58,17 +67,19 @@ ) where -import GHC.Base(Eq(..), Ord(..), Ordering(..), String, otherwise, withDict)-import GHC.Types(Symbol, Char)+import GHC.Base ( Eq(..), Functor(..), Ord(..), Ordering(..), String+ , (.), otherwise, withDict )+import GHC.Types(Symbol, Char, TYPE) import GHC.TypeError(ErrorMessage(..), TypeError) import GHC.Num(Integer, fromInteger)-import GHC.Show(Show(..))+import GHC.Show(Show(..), appPrec, appPrec1, showParen, showString) import GHC.Read(Read(..)) import GHC.Real(toInteger) import GHC.Prim(Proxy#) import Data.Maybe(Maybe(..)) import Data.Proxy (Proxy(..))-import Data.Type.Equality((:~:)(Refl))+import Data.Type.Coercion (Coercion(..), TestCoercion(..))+import Data.Type.Equality((:~:)(Refl), TestEquality(..)) import Data.Type.Ord(OrderingI(..)) import Unsafe.Coerce(unsafeCoerce) @@ -91,7 +102,7 @@ -- | @since 4.7.0.0 symbolVal :: forall n proxy. KnownSymbol n => proxy n -> String symbolVal _ = case symbolSing :: SSymbol n of- SSymbol x -> x+ UnsafeSSymbol x -> x -- | @since 4.8.0.0 natVal' :: forall n. N.KnownNat n => Proxy# n -> Integer@@ -100,7 +111,7 @@ -- | @since 4.8.0.0 symbolVal' :: forall n. KnownSymbol n => Proxy# n -> String symbolVal' _ = case symbolSing :: SSymbol n of- SSymbol x -> x+ UnsafeSSymbol x -> x -- | This type represents unknown type-level symbols.@@ -113,11 +124,11 @@ charVal :: forall n proxy. KnownChar n => proxy n -> Char charVal _ = case charSing :: SChar n of- SChar x -> x+ UnsafeSChar x -> x charVal' :: forall n. KnownChar n => Proxy# n -> Char charVal' _ = case charSing :: SChar n of- SChar x -> x+ UnsafeSChar x -> x data SomeChar = forall n. KnownChar n => SomeChar (Proxy n) @@ -133,10 +144,8 @@ -- -- @since 4.7.0.0 someSymbolVal :: String -> SomeSymbol-someSymbolVal n = withSSymbol SomeSymbol (SSymbol n) Proxy-{-# NOINLINE someSymbolVal #-}--- For details see Note [NOINLINE someNatVal] in "GHC.TypeNats"--- The issue described there applies to `someSymbolVal` as well.+someSymbolVal s = withSomeSSymbol s (\(ss :: SSymbol s) ->+ withKnownSymbol ss (SomeSymbol @s Proxy)) -- | @since 4.7.0.0 instance Eq SomeSymbol where@@ -159,8 +168,8 @@ -- -- @since 4.16.0.0 someCharVal :: Char -> SomeChar-someCharVal n = withSChar SomeChar (SChar n) Proxy-{-# NOINLINE someCharVal #-}+someCharVal c = withSomeSChar c (\(sc :: SChar c) ->+ withKnownChar sc (SomeChar @c Proxy)) instance Eq SomeChar where SomeChar x == SomeChar y = charVal x == charVal y@@ -210,22 +219,20 @@ -- same type-level symbols, or 'Nothing'. -- -- @since 4.7.0.0-sameSymbol :: (KnownSymbol a, KnownSymbol b) =>+sameSymbol :: forall a b proxy1 proxy2.+ (KnownSymbol a, KnownSymbol b) => proxy1 a -> proxy2 b -> Maybe (a :~: b)-sameSymbol x y- | symbolVal x == symbolVal y = Just (unsafeCoerce Refl)- | otherwise = Nothing+sameSymbol _ _ = testEquality (symbolSing @a) (symbolSing @b) -- | We either get evidence that this function was instantiated with the -- same type-level characters, or 'Nothing'. -- -- @since 4.16.0.0-sameChar :: (KnownChar a, KnownChar b) =>- proxy1 a -> proxy2 b -> Maybe (a :~: b)-sameChar x y- | charVal x == charVal y = Just (unsafeCoerce Refl)- | otherwise = Nothing+sameChar :: forall a b proxy1 proxy2.+ (KnownChar a, KnownChar b) =>+ proxy1 a -> proxy2 b -> Maybe (a :~: b)+sameChar _ _ = testEquality (charSing @a) (charSing @b) -- | Like 'sameSymbol', but if the symbols aren't equal, this additionally -- provides proof of LT or GT.@@ -257,20 +264,217 @@ ----------------------------------------------------------------------------------- PRIVATE:+-- Singleton values -newtype SSymbol (s :: Symbol) = SSymbol String+-- | Return the 'Integer' corresponding to @n@ in an @'SNat' n@ value.+-- The returned 'Integer' is always non-negative.+--+-- For a version of this function that returns a 'Natural' instead of an+-- 'Integer', see 'N.fromSNat' in "GHC.TypeNats".+--+-- @since 4.18.0.0+fromSNat :: N.SNat n -> Integer+fromSNat sn = toInteger (N.fromSNat sn) +-- | Attempt to convert an 'Integer' into an @'SNat' n@ value, where @n@ is a+-- fresh type-level natural number. If the 'Integer' argument is non-negative,+-- invoke the continuation with @Just sn@, where @sn@ is the @'SNat' n@ value.+-- If the 'Integer' argument is negative, invoke the continuation with+-- 'Nothing'.+--+-- For a version of this function where the continuation uses @'SNat@ n@+-- instead of @'Maybe' ('SNat' n)@, see 'N.withSomeSNat' in "GHC.TypeNats".+--+-- @since 4.18.0.0+withSomeSNat :: forall rep (r :: TYPE rep).+ Integer -> (forall n. Maybe (N.SNat n) -> r) -> r+withSomeSNat n k+ | n >= 0 = N.withSomeSNat (fromInteger n) (\sn -> k (Just sn))+ | otherwise = k Nothing++-- | A value-level witness for a type-level symbol. This is commonly referred+-- to as a /singleton/ type, as for each @s@, there is a single value that+-- inhabits the type @'SSymbol' s@ (aside from bottom).+--+-- The definition of 'SSymbol' is intentionally left abstract. To obtain an+-- 'SSymbol' value, use one of the following:+--+-- 1. The 'symbolSing' method of 'KnownSymbol'.+--+-- 2. The @SSymbol@ pattern synonym.+--+-- 3. The 'withSomeSSymbol' function, which creates an 'SSymbol' from a+-- 'String'.+--+-- @since 4.18.0.0+newtype SSymbol (s :: Symbol) = UnsafeSSymbol String++-- | A explicitly bidirectional pattern synonym relating an 'SSymbol' to a+-- 'KnownSymbol' constraint.+--+-- As an __expression__: Constructs an explicit @'SSymbol' s@ value from an+-- implicit @'KnownSymbol' s@ constraint:+--+-- @+-- SSymbol @s :: 'KnownSymbol' s => 'SSymbol' s+-- @+--+-- As a __pattern__: Matches on an explicit @'SSymbol' s@ value bringing+-- an implicit @'KnownSymbol' s@ constraint into scope:+--+-- @+-- f :: 'SSymbol' s -> ..+-- f SSymbol = {- SSymbol s in scope -}+-- @+--+-- @since 4.18.0.0+pattern SSymbol :: forall s. () => KnownSymbol s => SSymbol s+pattern SSymbol <- (knownSymbolInstance -> KnownSymbolInstance)+ where SSymbol = symbolSing++-- An internal data type that is only used for defining the SSymbol pattern+-- synonym.+data KnownSymbolInstance (s :: Symbol) where+ KnownSymbolInstance :: KnownSymbol s => KnownSymbolInstance s++-- An internal function that is only used for defining the SSymbol pattern+-- synonym.+knownSymbolInstance :: SSymbol s -> KnownSymbolInstance s+knownSymbolInstance ss = withKnownSymbol ss KnownSymbolInstance++-- | @since 4.18.0.0+instance Show (SSymbol s) where+ showsPrec p (UnsafeSSymbol s)+ = showParen (p > appPrec)+ ( showString "SSymbol @"+ . showsPrec appPrec1 s+ )++-- | @since 4.18.0.0+instance TestEquality SSymbol where+ testEquality (UnsafeSSymbol x) (UnsafeSSymbol y)+ | x == y = Just (unsafeCoerce Refl)+ | otherwise = Nothing++-- | @since 4.18.0.0+instance TestCoercion SSymbol where+ testCoercion x y = fmap (\Refl -> Coercion) (testEquality x y)++-- | Return the String corresponding to @s@ in an @'SSymbol' s@ value.+--+-- @since 4.18.0.0+fromSSymbol :: SSymbol s -> String+fromSSymbol (UnsafeSSymbol s) = s++-- | Convert an explicit @'SSymbol' s@ value into an implicit @'KnownSymbol' s@+-- constraint.+--+-- @since 4.18.0.0+withKnownSymbol :: forall s rep (r :: TYPE rep).+ SSymbol s -> (KnownSymbol s => r) -> r+withKnownSymbol = withDict @(KnownSymbol s) -- See Note [withDict] in "GHC.Tc.Instance.Class" in GHC-withSSymbol :: forall a b.- (KnownSymbol a => Proxy a -> b)- -> SSymbol a -> Proxy a -> b-withSSymbol f x y = withDict @(KnownSymbol a) x f y -newtype SChar (s :: Char) = SChar Char+-- | Convert a 'String' into an @'SSymbol' s@ value, where @s@ is a fresh+-- type-level symbol.+--+-- @since 4.18.0.0+withSomeSSymbol :: forall rep (r :: TYPE rep).+ String -> (forall s. SSymbol s -> r) -> r+withSomeSSymbol s k = k (UnsafeSSymbol s)+{-# NOINLINE withSomeSSymbol #-}+-- For details see Note [NOINLINE withSomeSNat] in "GHC.TypeNats"+-- The issue described there applies to `withSomeSSymbol` as well. +-- | A value-level witness for a type-level character. This is commonly referred+-- to as a /singleton/ type, as for each @c@, there is a single value that+-- inhabits the type @'SChar' c@ (aside from bottom).+--+-- The definition of 'SChar' is intentionally left abstract. To obtain an+-- 'SChar' value, use one of the following:+--+-- 1. The 'charSing' method of 'KnownChar'.+--+-- 2. The @SChar@ pattern synonym.+--+-- 3. The 'withSomeSChar' function, which creates an 'SChar' from a 'Char'.+--+-- @since 4.18.0.0+newtype SChar (s :: Char) = UnsafeSChar Char++-- | A explicitly bidirectional pattern synonym relating an 'SChar' to a+-- 'KnownChar' constraint.+--+-- As an __expression__: Constructs an explicit @'SChar' c@ value from an+-- implicit @'KnownChar' c@ constraint:+--+-- @+-- SChar @c :: 'KnownChar' c => 'SChar' c+-- @+--+-- As a __pattern__: Matches on an explicit @'SChar' c@ value bringing+-- an implicit @'KnownChar' c@ constraint into scope:+--+-- @+-- f :: 'SChar' c -> ..+-- f SChar = {- SChar c in scope -}+-- @+--+-- @since 4.18.0.0+pattern SChar :: forall c. () => KnownChar c => SChar c+pattern SChar <- (knownCharInstance -> KnownCharInstance)+ where SChar = charSing++-- An internal data type that is only used for defining the SChar pattern+-- synonym.+data KnownCharInstance (n :: Char) where+ KnownCharInstance :: KnownChar c => KnownCharInstance c++-- An internal function that is only used for defining the SChar pattern+-- synonym.+knownCharInstance :: SChar c -> KnownCharInstance c+knownCharInstance sc = withKnownChar sc KnownCharInstance++-- | @since 4.18.0.0+instance Show (SChar c) where+ showsPrec p (UnsafeSChar c)+ = showParen (p > appPrec)+ ( showString "SChar @"+ . showsPrec appPrec1 c+ )++-- | @since 4.18.0.0+instance TestEquality SChar where+ testEquality (UnsafeSChar x) (UnsafeSChar y)+ | x == y = Just (unsafeCoerce Refl)+ | otherwise = Nothing++-- | @since 4.18.0.0+instance TestCoercion SChar where+ testCoercion x y = fmap (\Refl -> Coercion) (testEquality x y)++-- | Return the 'Char' corresponding to @c@ in an @'SChar' c@ value.+--+-- @since 4.18.0.0+fromSChar :: SChar c -> Char+fromSChar (UnsafeSChar c) = c++-- | Convert an explicit @'SChar' c@ value into an implicit @'KnownChar' c@+-- constraint.+--+-- @since 4.18.0.0+withKnownChar :: forall c rep (r :: TYPE rep).+ SChar c -> (KnownChar c => r) -> r+withKnownChar = withDict @(KnownChar c) -- See Note [withDict] in "GHC.Tc.Instance.Class" in GHC-withSChar :: forall a b.- (KnownChar a => Proxy a -> b)- -> SChar a -> Proxy a -> b-withSChar f x y = withDict @(KnownChar a) x f y++-- | Convert a 'Char' into an @'SChar' c@ value, where @c@ is a fresh type-level+-- character.+--+-- @since 4.18.0.0+withSomeSChar :: forall rep (r :: TYPE rep).+ Char -> (forall c. SChar c -> r) -> r+withSomeSChar c k = k (UnsafeSChar c)+{-# NOINLINE withSomeSChar #-}+-- For details see Note [NOINLINE withSomeSNat] in "GHC.TypeNats"+-- The issue described there applies to `withSomeSChar` as well.
GHC/TypeLits/Internal.hs view
@@ -7,7 +7,7 @@ {-| This module exports the Type Literal kinds as well as the comparison type families for those kinds. It is needed to prevent module cycles while still-allowing these identifiers to be improted in 'Data.Type.Ord'.+allowing these identifiers to be imported in 'Data.Type.Ord'. @since 4.16.0.0 -}
GHC/TypeNats.hs view
@@ -13,6 +13,9 @@ {-# LANGUAGE MagicHash #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeApplications #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE ViewPatterns #-} {-| This module is an internal GHC module. It declares the constants used in the implementation of type-level natural numbers. The programmer interface@@ -26,10 +29,16 @@ Natural -- declared in GHC.Num.Natural in package ghc-bignum , Nat -- * Linking type and value level- , KnownNat, natVal, natVal'+ , KnownNat(natSing), natVal, natVal' , SomeNat(..) , someNatVal , sameNat+ -- ** Singleton values+ , SNat+ , pattern SNat+ , fromSNat+ , withSomeSNat+ , withKnownNat -- * Functions on type literals , type (<=), type (<=?), type (+), type (*), type (^), type (-)@@ -39,15 +48,16 @@ ) where -import GHC.Base(Eq(..), Ord(..), otherwise, WithDict(..))+import GHC.Base(Eq(..), Functor(..), Ord(..), WithDict(..), (.), otherwise) import GHC.Types import GHC.Num.Natural(Natural)-import GHC.Show(Show(..))+import GHC.Show(Show(..), appPrec, appPrec1, showParen, showString) import GHC.Read(Read(..)) import GHC.Prim(Proxy#) import Data.Maybe(Maybe(..)) import Data.Proxy (Proxy(..))-import Data.Type.Equality((:~:)(Refl))+import Data.Type.Coercion (Coercion(..), TestCoercion(..))+import Data.Type.Equality((:~:)(Refl), TestEquality(..)) import Data.Type.Ord(OrderingI(..), type (<=), type (<=?)) import Unsafe.Coerce(unsafeCoerce) @@ -73,12 +83,12 @@ -- | @since 4.10.0.0 natVal :: forall n proxy. KnownNat n => proxy n -> Natural natVal _ = case natSing :: SNat n of- SNat x -> x+ UnsafeSNat x -> x -- | @since 4.10.0.0 natVal' :: forall n. KnownNat n => Proxy# n -> Natural natVal' _ = case natSing :: SNat n of- SNat x -> x+ UnsafeSNat x -> x -- | This type represents unknown type-level natural numbers. --@@ -89,68 +99,74 @@ -- -- @since 4.10.0.0 someNatVal :: Natural -> SomeNat-someNatVal n = withSNat SomeNat (SNat n) Proxy-{-# NOINLINE someNatVal #-} -- See Note [NOINLINE someNatVal]+someNatVal n = withSomeSNat n (\(sn :: SNat n) ->+ withKnownNat sn (SomeNat @n Proxy)) {--Note [NOINLINE someNatVal]-~~~~~~~~~~~~~~~~~~~~~~~~~~-`someNatVal` converts a natural number to an existentially quantified-dictionary for `KnownNat` (aka `SomeNat`). The existential quantification-is very important, as it captures the fact that we don't know the type-statically, although we do know that it exists. Because this type is-fully opaque, we should never be able to prove that it matches anything else.-This is why coherence should still hold: we can manufacture a `KnownNat k`-dictionary, but it can never be confused with a `KnownNat 33` dictionary,-because we should never be able to prove that `k ~ 33`.+Note [NOINLINE withSomeSNat]+~~~~~~~~~~~~~~~~~~~~~~~~~~~~+The function -But how to implement `someNatVal`? We can't quite implement it "honestly"-because `SomeNat` needs to "hide" the type of the newly created dictionary,-but we don't know what the actual type is! If `someNatVal` was built into-the language, then we could manufacture a new skolem constant,-which should behave correctly.+ withSomeSNat :: forall rep (r :: TYPE rep).+ Natural -> (forall k. SNat k -> r) -> r -Since extra language constructors have additional maintenance costs,-we use a trick to implement `someNatVal` in the library. The idea is that-instead of generating a "fresh" type for each use of `someNatVal`, we simply-use GHC's placeholder type `Any` (of kind `Nat`). So, the elaborated-version of the code is:+converts a `Natural` number to a singleton natural `SNat k`, where the `k` is+locally quantified in a continuation (hence the `forall k`). The local+quantification is important: we can manufacture an `SNat k` value, but it can+never be confused with (say) an `SNat 33` value, because we should never be+able to prove that `k ~ 33`. Moreover, if we call `withSomeSNat` twice, we'll+get an `SNat k1` value and an `SNat k2` value, but again we can't confuse them.+`SNat` is a singleton type! - someNatVal n = withSNat @T (SomeNat @T) (SNat @T n) (Proxy @T)- where type T = Any Nat+But how to implement `withSomeSNat`? We have no way to make up a fresh type+variable. To do that we need `runExists`: see #19675. -After inlining and simplification, this ends up looking something like this:+Lacking `runExists`, we use a trick to implement `withSomeSNat`: instead of+generating a "fresh" type for each use of `withSomeSNat`, we simply use GHC's+placeholder type `Any` (of kind `Nat`), thus (in Core): - someNatVal n = SomeNat @T (KnownNat @T (SNat @T n)) (Proxy @T)- where type T = Any Nat+ withSomeSNat n f = f @T (UnsafeSNat @T n)+ where type T = Any @Nat -`KnownNat` is the constructor for dictionaries for the class `KnownNat`.-See Note [withDict] in "GHC.Tc.Instance.Class" for details on how-we actually construct the dictionary.+*** BUT we must mark `withSomeSNat` as NOINLINE! ***+(And the same for withSomeSSymbol and withSomeSChar in GHC.TypeLits.) -Note that using `Any Nat` is not really correct, as multiple calls to-`someNatVal` would violate coherence:+If we inline it we'll lose the type distinction between separate calls (those+"fresh" type variables just turn into `T`). And that can interact badly with+GHC's type-class specialiser. Consider this definition, where+`foo :: KnownNat n => blah`: - type T = Any Nat+ ex :: Natural+ ex = withSomeSNat 1 (\(s1 :: SNat one) -> withKnownNat @one s1 $+ withSomeSNat 2 (\(s2 :: SNat two) -> withKnownNat @two s2 $+ foo @one ... + foo @two ...)) - x = SomeNat @T (KnownNat @T (SNat @T 1)) (Proxy @T)- y = SomeNat @T (KnownNat @T (SNat @T 2)) (Proxy @T)+In the last line we have in scope two distinct dictionaries of types+`KnownNat one` and `KnownNat two`. The calls `foo @one` and `foo @two` each pick+out one of those dictionaries to pass to `foo`. -Note that now the code has two dictionaries with the same type, `KnownNat Any`,-but they have different implementations, namely `SNat 1` and `SNat 2`. This-is not good, as GHC assumes coherence, and it is free to interchange-dictionaries of the same type, but in this case this would produce an incorrect-result. See #16586 for examples of this happening.+But if we inline `withSomeSNat` we'll get (switching to Core): -We can avoid this problem by making the definition of `someNatVal` opaque-and we do this by using a `NOINLINE` pragma. This restores coherence, because-GHC can only inspect the result of `someNatVal` by pattern matching on the-existential, which would generate a new type. This restores correctness,-at the cost of having a little more allocation for the `SomeNat` constructors.--}+ ex = withKnownNat @T (UnsafeSNat @T 1) (\(kn1 :: KnownNat T) ->+ withKnownNat @T (UnsafeSNat @T 2) (\(kn2 :: KnownNat T) ->+ foo @T kn1 ... + foo @T kn2 ...))+ where type T = Any Nat +We are now treading on thin ice. We have two dictionaries `kn1` and `kn2`, both+of type `KnownNat T`, but with different implementations. GHC may specialise+`foo` at type `T` using one of these dictionaries and use that same+specialisation for the other. See #16586 for more examples of where something+like this has actually happened. +`KnownNat` should be a singleton type, but if we allow `withSomeSNat` to inline+it won't be a singleton type any more. We have lost the "fresh type variable". +TL;DR. We avoid this problem by making the definition of `withSomeSNat` opaque,+using an `NOINLINE` pragma. When we get `runExists` (#19675) we will be able to+stop using this hack.+-}++ -- | @since 4.7.0.0 instance Eq SomeNat where SomeNat x == SomeNat y = natVal x == natVal y@@ -218,11 +234,10 @@ -- same type-level numbers, or 'Nothing'. -- -- @since 4.7.0.0-sameNat :: (KnownNat a, KnownNat b) =>+sameNat :: forall a b proxy1 proxy2.+ (KnownNat a, KnownNat b) => proxy1 a -> proxy2 b -> Maybe (a :~: b)-sameNat x y- | natVal x == natVal y = Just (unsafeCoerce Refl)- | otherwise = Nothing+sameNat _ _ = testEquality (natSing @a) (natSing @b) -- | Like 'sameNat', but if the numbers aren't equal, this additionally -- provides proof of LT or GT.@@ -241,12 +256,96 @@ ----------------------------------------------------------------------------------- PRIVATE:+-- Singleton values -newtype SNat (n :: Nat) = SNat Natural+-- | A value-level witness for a type-level natural number. This is commonly+-- referred to as a /singleton/ type, as for each @n@, there is a single value+-- that inhabits the type @'SNat' n@ (aside from bottom).+--+-- The definition of 'SNat' is intentionally left abstract. To obtain an 'SNat'+-- value, use one of the following:+--+-- 1. The 'natSing' method of 'KnownNat'.+--+-- 2. The @SNat@ pattern synonym.+--+-- 3. The 'withSomeSNat' function, which creates an 'SNat' from a 'Natural'+-- number.+--+-- @since 4.18.0.0+newtype SNat (n :: Nat) = UnsafeSNat Natural +-- | A explicitly bidirectional pattern synonym relating an 'SNat' to a+-- 'KnownNat' constraint.+--+-- As an __expression__: Constructs an explicit @'SNat' n@ value from an+-- implicit @'KnownNat' n@ constraint:+--+-- @+-- SNat @n :: 'KnownNat' n => 'SNat' n+-- @+--+-- As a __pattern__: Matches on an explicit @'SNat' n@ value bringing+-- an implicit @'KnownNat' n@ constraint into scope:+--+-- @+-- f :: 'SNat' n -> ..+-- f SNat = {- SNat n in scope -}+-- @+--+-- @since 4.18.0.0+pattern SNat :: forall n. () => KnownNat n => SNat n+pattern SNat <- (knownNatInstance -> KnownNatInstance)+ where SNat = natSing++-- An internal data type that is only used for defining the SNat pattern+-- synonym.+data KnownNatInstance (n :: Nat) where+ KnownNatInstance :: KnownNat n => KnownNatInstance n++-- An internal function that is only used for defining the SNat pattern+-- synonym.+knownNatInstance :: SNat n -> KnownNatInstance n+knownNatInstance sn = withKnownNat sn KnownNatInstance++-- | @since 4.18.0.0+instance Show (SNat n) where+ showsPrec p (UnsafeSNat n)+ = showParen (p > appPrec)+ ( showString "SNat @"+ . showsPrec appPrec1 n+ )++-- | @since 4.18.0.0+instance TestEquality SNat where+ testEquality (UnsafeSNat x) (UnsafeSNat y)+ | x == y = Just (unsafeCoerce Refl)+ | otherwise = Nothing++-- | @since 4.18.0.0+instance TestCoercion SNat where+ testCoercion x y = fmap (\Refl -> Coercion) (testEquality x y)++-- | Return the 'Natural' number corresponding to @n@ in an @'SNat' n@ value.+--+-- @since 4.18.0.0+fromSNat :: SNat n -> Natural+fromSNat (UnsafeSNat n) = n++-- | Convert an explicit @'SNat' n@ value into an implicit @'KnownNat' n@+-- constraint.+--+-- @since 4.18.0.0+withKnownNat :: forall n rep (r :: TYPE rep).+ SNat n -> (KnownNat n => r) -> r+withKnownNat = withDict @(KnownNat n) -- See Note [withDict] in "GHC.Tc.Instance.Class" in GHC-withSNat :: forall a b.- (KnownNat a => Proxy a -> b)- -> SNat a -> Proxy a -> b-withSNat f x y = withDict @(KnownNat a) x f y++-- | Convert a 'Natural' number into an @'SNat' n@ value, where @n@ is a fresh+-- type-level natural number.+--+-- @since 4.18.0.0+withSomeSNat :: forall rep (r :: TYPE rep).+ Natural -> (forall n. SNat n -> r) -> r+withSomeSNat n k = k (UnsafeSNat n)+{-# NOINLINE withSomeSNat #-} -- See Note [NOINLINE withSomeSNat]
GHC/TypeNats/Internal.hs view
@@ -7,7 +7,7 @@ {-| This module exports the Type Nat kind as well as the comparison type family for that kinds. It is needed to prevent module cycles while still-allowing these identifiers to be improted in 'Data.Type.Ord'.+allowing these identifiers to be imported in 'Data.Type.Ord'. @since 4.16.0.0 -}
GHC/Unicode.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE CPP #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE Trustworthy #-} @@ -25,21 +24,24 @@ GeneralCategory (..), generalCategory, isAscii, isLatin1, isControl, isAsciiUpper, isAsciiLower,- isPrint, isSpace, isUpper,- isLower, isAlpha, isDigit,+ isPrint, isSpace, isUpper, isUpperCase,+ isLower, isLowerCase, isAlpha, isDigit, isOctDigit, isHexDigit, isAlphaNum, isPunctuation, isSymbol,- toUpper, toLower, toTitle,- wgencat+ toUpper, toLower, toTitle ) where import GHC.Base-import GHC.Char (chr) import GHC.Real import GHC.Enum ( Enum (..), Bounded (..) ) import GHC.Ix ( Ix (..) ) import GHC.Num-import {-# SOURCE #-} Data.Version+import GHC.Unicode.Internal.Version+import qualified GHC.Unicode.Internal.Char.DerivedCoreProperties as DCP+import qualified GHC.Unicode.Internal.Char.UnicodeData.GeneralCategory as GC+import qualified GHC.Unicode.Internal.Char.UnicodeData.SimpleLowerCaseMapping as C+import qualified GHC.Unicode.Internal.Char.UnicodeData.SimpleTitleCaseMapping as C+import qualified GHC.Unicode.Internal.Char.UnicodeData.SimpleUpperCaseMapping as C -- Data.Char.chr already imports this and we need to define a Show instance -- for GeneralCategory@@ -48,12 +50,9 @@ -- $setup -- >>> import Prelude -#include "HsBaseConfig.h"-#include "UnicodeVersion.h"---- | Version of Unicode standard used by @base@.-unicodeVersion :: Version-unicodeVersion = makeVersion UNICODE_VERSION_NUMS+-- [NOTE] The constructors of 'GeneralCategory' must be in the same order they+-- are listed in the Unicode Standard, because some functions+-- (e.g. 'generalCategory') rely on the 'Enum' instance. -- | Unicode General Categories (column 2 of the UnicodeData table) in -- the order they are listed in the Unicode standard (the Unicode@@ -173,8 +172,9 @@ -- >>> generalCategory ' ' -- Space --+{-# INLINE generalCategory #-} generalCategory :: Char -> GeneralCategory-generalCategory c = toEnum $ fromIntegral $ wgencat $ fromIntegral $ ord c+generalCategory = toEnum . GC.generalCategory -- | Selects the first 128 characters of the Unicode character set, -- corresponding to the ASCII character set.@@ -199,10 +199,25 @@ -- | Selects control characters, which are the non-printing characters of -- the Latin-1 subset of Unicode. isControl :: Char -> Bool+-- Select characters with category 'Control'.+-- By definition (https://www.unicode.org/reports/tr44/#General_Category_Values)+-- “a C0 or C1 control code”, i.e. the 0x00-0x1f, 0x7f, and 0x80-0x9f.+isControl c = case generalCategory c of+ Control -> True+ _ -> False -- | Selects printable Unicode characters -- (letters, numbers, marks, punctuation, symbols and spaces). isPrint :: Char -> Bool+isPrint c = case generalCategory c of+ LineSeparator -> False+ ParagraphSeparator -> False+ Control -> False+ Format -> False+ Surrogate -> False+ PrivateUse -> False+ NotAssigned -> False+ _ -> True -- | Returns 'True' for any Unicode space character, and the control -- characters @\\t@, @\\n@, @\\r@, @\\f@, @\\v@.@@ -215,22 +230,86 @@ -- so we'll do it like this until there's a way around that. isSpace c | uc <= 0x377 = uc == 32 || uc - 0x9 <= 4 || uc == 0xa0- | otherwise = iswspace (ord c) /= 0+ | otherwise = generalCategory c == Space where uc = fromIntegral (ord c) :: Word -- | Selects upper-case or title-case alphabetic Unicode characters (letters). -- Title case is used by a small number of letter ligatures like the -- single-character form of /Lj/.+--+-- __Note:__ this predicate does /not/ work for letter-like characters such as:+-- @\'Ⓐ\'@ (@U+24B6@ circled Latin capital letter A) and+-- @\'Ⅳ\'@ (@U+2163@ Roman numeral four). This is due to selecting only+-- characters with the 'GeneralCategory' 'UppercaseLetter' or 'TitlecaseLetter'.+--+-- See 'isUpperCase' for a more intuitive predicate. Note that+-- unlike 'isUpperCase', 'isUpper' does select /title-case/ characters such as+-- @\'Dž\'@ (@U+01C5@ Latin capital letter d with small letter z with caron) or+-- @\'ᾯ\'@ (@U+1FAF@ Greek capital letter omega with dasia and perispomeni and+-- prosgegrammeni). isUpper :: Char -> Bool+isUpper c = case generalCategory c of+ UppercaseLetter -> True+ TitlecaseLetter -> True+ _ -> False +-- | Selects upper-case Unicode letter-like characters.+--+-- __Note:__ this predicate selects characters with the Unicode property+-- @Uppercase@, which include letter-like characters such as:+-- @\'Ⓐ\'@ (@U+24B6@ circled Latin capital letter A) and+-- @\'Ⅳ\'@ (@U+2163@ Roman numeral four).+--+-- See 'isUpper' for the legacy predicate. Note that+-- unlike 'isUpperCase', 'isUpper' does select /title-case/ characters such as+-- @\'Dž\'@ (@U+01C5@ Latin capital letter d with small letter z with caron) or+-- @\'ᾯ\'@ (@U+1FAF@ Greek capital letter omega with dasia and perispomeni and+-- prosgegrammeni).+--+-- @since 4.18.0.0+{-# INLINE isUpperCase #-}+isUpperCase :: Char -> Bool+isUpperCase = DCP.isUppercase+ -- | Selects lower-case alphabetic Unicode characters (letters).+--+-- __Note:__ this predicate does /not/ work for letter-like characters such as:+-- @\'ⓐ\'@ (@U+24D0@ circled Latin small letter a) and+-- @\'ⅳ\'@ (@U+2173@ small Roman numeral four). This is due to selecting only+-- characters with the 'GeneralCategory' 'LowercaseLetter'.+--+-- See 'isLowerCase' for a more intuitive predicate. isLower :: Char -> Bool+isLower c = case generalCategory c of+ LowercaseLetter -> True+ _ -> False +-- | Selects lower-case Unicode letter-like characters.+--+-- __Note:__ this predicate selects characters with the Unicode property+-- @Lowercase@, which includes letter-like characters such as:+-- @\'ⓐ\'@ (@U+24D0@ circled Latin small letter a) and+-- @\'ⅳ\'@ (@U+2173@ small Roman numeral four).+--+-- See 'isLower' for the legacy predicate.+--+-- @since 4.18.0.0+{-# INLINE isLowerCase #-}+isLowerCase :: Char -> Bool+isLowerCase = DCP.isLowercase+ -- | Selects alphabetic Unicode characters (lower-case, upper-case and -- title-case letters, plus letters of caseless scripts and modifiers letters). -- This function is equivalent to 'Data.Char.isLetter'. isAlpha :: Char -> Bool+isAlpha c = case generalCategory c of+ UppercaseLetter -> True+ LowercaseLetter -> True+ TitlecaseLetter -> True+ ModifierLetter -> True+ OtherLetter -> True+ _ -> False -- | Selects alphabetic or numeric Unicode characters. --@@ -239,7 +318,18 @@ -- 'isDigit'. Such characters may be part of identifiers but are not used by -- the printer and reader to represent numbers. isAlphaNum :: Char -> Bool+isAlphaNum c = case generalCategory c of+ UppercaseLetter -> True+ LowercaseLetter -> True+ TitlecaseLetter -> True+ ModifierLetter -> True+ OtherLetter -> True+ DecimalNumber -> True+ LetterNumber -> True+ OtherNumber -> True+ _ -> False + -- | Selects ASCII digits, i.e. @\'0\'@..@\'9\'@. isDigit :: Char -> Bool isDigit c = (fromIntegral (ord c - ord '0') :: Word) <= 9@@ -352,64 +442,20 @@ -- | Convert a letter to the corresponding upper-case letter, if any. -- Any other character is returned unchanged.+{-# INLINE toUpper #-} toUpper :: Char -> Char+toUpper = C.toSimpleUpperCase -- | Convert a letter to the corresponding lower-case letter, if any. -- Any other character is returned unchanged.+{-# INLINE toLower #-} toLower :: Char -> Char+toLower = C.toSimpleLowerCase -- | Convert a letter to the corresponding title-case or upper-case -- letter, if any. (Title case differs from upper case only for a small -- number of ligature letters.) -- Any other character is returned unchanged.+{-# INLINE toTitle #-} toTitle :: Char -> Char---- -------------------------------------------------------------------------------- Implementation with the supplied auto-generated Unicode character properties--- table---- Regardless of the O/S and Library, use the functions contained in WCsubst.c--isAlpha c = iswalpha (ord c) /= 0-isAlphaNum c = iswalnum (ord c) /= 0-isControl c = iswcntrl (ord c) /= 0-isPrint c = iswprint (ord c) /= 0-isUpper c = iswupper (ord c) /= 0-isLower c = iswlower (ord c) /= 0--toLower c = chr (towlower (ord c))-toUpper c = chr (towupper (ord c))-toTitle c = chr (towtitle (ord c))--foreign import ccall unsafe "u_iswalpha"- iswalpha :: Int -> Int--foreign import ccall unsafe "u_iswalnum"- iswalnum :: Int -> Int--foreign import ccall unsafe "u_iswcntrl"- iswcntrl :: Int -> Int--foreign import ccall unsafe "u_iswspace"- iswspace :: Int -> Int--foreign import ccall unsafe "u_iswprint"- iswprint :: Int -> Int--foreign import ccall unsafe "u_iswlower"- iswlower :: Int -> Int--foreign import ccall unsafe "u_iswupper"- iswupper :: Int -> Int--foreign import ccall unsafe "u_towlower"- towlower :: Int -> Int--foreign import ccall unsafe "u_towupper"- towupper :: Int -> Int--foreign import ccall unsafe "u_towtitle"- towtitle :: Int -> Int--foreign import ccall unsafe "u_gencat"- wgencat :: Int -> Int+toTitle = C.toSimpleTitleCase
+ GHC/Unicode/Internal/Bits.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE BangPatterns #-}++-----------------------------------------------------------------------------+-- |+-- Module : GHC.Unicode.Internal.Bits+-- Copyright : (c) 2020 Andrew Lelechenko+-- (c) 2020 Composewell Technologies+-- License : BSD-3-Clause+--+-- Maintainer : streamly@composewell.com+-- Stability : internal+-- Portability : non-portable (GHC extensions)+--+-- Fast, static bitmap lookup utilities+--+-----------------------------------------------------------------------------++module GHC.Unicode.Internal.Bits+ ( lookupBit64,+ lookupIntN+ ) where++import GHC.Base (Bool, Int(..), Word(..), Eq(..))+import GHC.Bits (finiteBitSize, popCount)+import {-# SOURCE #-} GHC.ByteOrder+import GHC.Prim+ (Addr#,+ indexWordOffAddr#, indexWord8OffAddr#,+ andI#, uncheckedIShiftRL#,+ and#, word2Int#, uncheckedShiftL#,+ word8ToWord#, byteSwap#)+import GHC.Num ((-))++-- | @lookup64 addr index@ looks up the bit stored at bit index @index@ using a+-- bitmap starting at the address @addr@. Looks up the 64-bit word containing+-- the bit and then the bit in that word. The caller must make sure that the+-- 64-bit word at the byte address (addr + index / 64) * 8 is legally+-- accessible memory.+--+lookupBit64 :: Addr# -> Int -> Bool+lookupBit64 addr# (I# index#) = W# (word## `and#` bitMask##) /= 0+ where+ !fbs@(I# fbs#) = finiteBitSize (0 :: Word) - 1+ !(I# logFbs#) = case fbs of+ 31 -> 5+ 63 -> 6+ _ -> popCount fbs -- this is a really weird architecture++ wordIndex# = index# `uncheckedIShiftRL#` logFbs#+ word## = case targetByteOrder of+ BigEndian -> byteSwap# (indexWordOffAddr# addr# wordIndex#)+ LittleEndian -> indexWordOffAddr# addr# wordIndex#+ bitIndex# = index# `andI#` fbs#+ bitMask## = 1## `uncheckedShiftL#` bitIndex#++{-| @lookupIntN addr index@ looks up for the @index@-th @8@-bits word in+the bitmap starting at @addr@, then convert it to an Int.++The caller must make sure that:++* @ceiling (addr + (n * 8))@ is legally accessible @Word8@.++@since 0.3.0+-}+lookupIntN+ :: Addr# -- ^ Bitmap address+ -> Int -- ^ Word index+ -> Int -- ^ Resulting word as 'Int'+lookupIntN addr# (I# index#) =+ let word## = word8ToWord# (indexWord8OffAddr# addr# index#)+ in I# (word2Int# word##)
+ GHC/Unicode/Internal/Char/DerivedCoreProperties.hs view
@@ -0,0 +1,35 @@+-- DO NOT EDIT: This file is automatically generated by the internal tool ucd2haskell,+-- with data from: https://www.unicode.org/Public/15.0.0/ucd/DerivedCoreProperties.txt.++{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE MagicHash #-}+{-# OPTIONS_HADDOCK hide #-}++-----------------------------------------------------------------------------+-- |+-- Module : GHC.Unicode.Internal.Char.DerivedCoreProperties+-- Copyright : (c) 2020 Composewell Technologies and Contributors+-- License : BSD-3-Clause+-- Maintainer : streamly@composewell.com+-- Stability : internal+-----------------------------------------------------------------------------++module GHC.Unicode.Internal.Char.DerivedCoreProperties+(isUppercase , isLowercase)+where++import GHC.Base (Bool, Char, Ord(..), (&&), ord)+import GHC.Unicode.Internal.Bits (lookupBit64)++{-# INLINE isUppercase #-}+isUppercase :: Char -> Bool+isUppercase = \c -> let n = ord c in n >= 65 && n <= 127369 && lookupBit64 bitmap# n+ where+ bitmap# = "\0\0\0\0\0\0\0\0\254\255\255\7\0\0\0\0\0\0\0\0\0\0\0\0\255\255\127\127\0\0\0\0\85\85\85\85\85\85\85\170\170\84\85\85\85\85\85\43\214\206\219\177\213\210\174\17\144\164\170\74\85\85\210\85\85\85\85\85\85\85\5\108\122\85\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\69\128\64\215\254\255\251\15\0\0\0\128\28\85\85\85\144\230\255\255\255\255\255\255\0\0\0\0\0\0\85\85\85\85\1\84\85\85\85\85\85\85\171\42\85\85\85\85\85\85\85\85\85\85\85\85\254\255\255\255\127\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\191\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\255\255\255\255\255\63\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\231\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\85\21\64\85\85\85\85\85\85\85\85\85\85\85\85\0\255\0\63\0\255\0\255\0\63\0\170\0\255\0\0\0\0\0\0\0\0\0\15\0\15\0\15\0\31\0\15\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\132\56\39\62\80\61\15\192\32\0\0\0\255\255\0\0\8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\192\255\255\255\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\255\0\0\0\0\0\0\157\234\37\192\85\85\85\85\85\85\85\85\85\85\85\85\5\40\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\85\85\85\85\85\21\0\0\85\85\85\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\84\85\84\85\85\85\85\85\85\85\0\106\85\40\69\85\85\125\95\85\245\2\65\1\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\254\255\255\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\15\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\247\255\247\55\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\255\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\3\0\0\240\255\255\63\0\0\0\255\255\255\3\0\0\208\100\222\63\0\0\0\255\255\255\3\0\0\176\231\223\31\0\0\0\123\95\252\1\0\0\240\255\255\63\0\0\0\255\255\255\3\0\0\240\255\255\63\0\0\0\255\255\255\3\0\0\240\255\255\63\0\0\0\255\255\255\3\0\0\0\255\255\255\1\0\0\0\252\255\255\7\0\0\0\240\255\255\31\0\0\0\192\255\255\127\0\0\0\0\255\255\255\1\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\3\255\255\255\3\255\255\255\3"#++{-# INLINE isLowercase #-}+isLowercase :: Char -> Bool+isLowercase = \c -> let n = ord c in n >= 97 && n <= 125251 && lookupBit64 bitmap# n+ where+ bitmap# = "\0\0\0\0\0\0\0\0\0\0\0\0\254\255\255\7\0\0\0\0\0\4\32\4\0\0\0\128\255\255\127\255\170\170\170\170\170\170\170\85\85\171\170\170\170\170\170\212\41\49\36\78\42\45\81\230\64\82\85\181\170\170\41\170\170\170\170\170\170\170\250\147\133\170\255\255\255\255\255\255\255\255\239\255\255\255\255\1\3\0\0\0\31\0\0\0\0\0\0\0\0\0\0\0\32\0\0\0\0\0\138\60\0\0\1\0\0\240\255\255\255\127\227\170\170\170\47\25\0\0\0\0\0\0\255\255\255\255\255\255\170\170\170\170\2\168\170\170\170\170\170\170\84\213\170\170\170\170\170\170\170\170\170\170\170\170\0\0\0\0\0\0\255\255\255\255\255\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\247\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\63\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\0\0\0\0\0\0\0\0\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\234\191\170\170\170\170\170\170\170\170\170\170\170\170\255\0\63\0\255\0\255\0\63\0\255\0\255\0\255\63\255\0\255\0\255\0\223\64\220\0\207\0\255\0\220\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\128\0\0\255\31\0\0\0\0\0\0\0\0\0\0\0\0\0\196\8\0\0\128\16\50\192\67\0\0\0\0\255\255\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\255\98\21\218\63\170\170\170\170\170\170\170\170\170\170\170\170\26\80\8\0\255\255\255\255\191\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\170\170\170\170\170\42\0\0\170\170\170\58\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\168\170\171\170\170\170\170\170\170\170\255\149\170\80\186\170\170\130\160\170\10\5\170\2\0\0\92\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\247\255\3\255\255\255\255\255\255\255\255\255\255\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\127\0\248\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\254\255\255\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\15\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\128\255\251\255\251\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\185\255\255\255\255\255\253\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\255\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\252\255\255\15\0\0\192\223\255\255\0\0\0\252\255\255\15\0\0\192\235\239\255\0\0\0\252\255\255\15\0\0\192\255\255\255\0\0\0\252\255\255\15\0\0\192\255\255\255\0\0\0\252\255\255\15\0\0\192\255\255\255\0\0\0\252\255\255\15\0\0\192\255\255\255\0\0\0\252\255\255\63\0\0\0\252\255\255\247\3\0\0\240\255\255\223\15\0\0\192\255\255\127\63\0\0\0\255\255\255\253\0\0\0\252\255\255\247\11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\251\255\127\224\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\255\255\63\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\252\255\255\255\15"#+
+ GHC/Unicode/Internal/Char/UnicodeData/GeneralCategory.hs view
file too large to diff
+ GHC/Unicode/Internal/Char/UnicodeData/SimpleLowerCaseMapping.hs view
@@ -0,0 +1,1458 @@+-- DO NOT EDIT: This file is automatically generated by the internal tool ucd2haskell,+-- with data from: https://www.unicode.org/Public/15.0.0/ucd/UnicodeData.txt.++{-# LANGUAGE NoImplicitPrelude, LambdaCase #-}+{-# OPTIONS_HADDOCK hide #-}++-----------------------------------------------------------------------------+-- |+-- Module : GHC.Unicode.Internal.Char.UnicodeData.SimpleLowerCaseMapping+-- Copyright : (c) 2020 Composewell Technologies and Contributors+-- License : BSD-3-Clause+-- Maintainer : streamly@composewell.com+-- Stability : internal+-----------------------------------------------------------------------------++module GHC.Unicode.Internal.Char.UnicodeData.SimpleLowerCaseMapping+(toSimpleLowerCase)+where++import GHC.Base (Char)++{-# NOINLINE toSimpleLowerCase #-}+toSimpleLowerCase :: Char -> Char+toSimpleLowerCase = \case+ '\x41' -> '\x61'+ '\x42' -> '\x62'+ '\x43' -> '\x63'+ '\x44' -> '\x64'+ '\x45' -> '\x65'+ '\x46' -> '\x66'+ '\x47' -> '\x67'+ '\x48' -> '\x68'+ '\x49' -> '\x69'+ '\x4a' -> '\x6a'+ '\x4b' -> '\x6b'+ '\x4c' -> '\x6c'+ '\x4d' -> '\x6d'+ '\x4e' -> '\x6e'+ '\x4f' -> '\x6f'+ '\x50' -> '\x70'+ '\x51' -> '\x71'+ '\x52' -> '\x72'+ '\x53' -> '\x73'+ '\x54' -> '\x74'+ '\x55' -> '\x75'+ '\x56' -> '\x76'+ '\x57' -> '\x77'+ '\x58' -> '\x78'+ '\x59' -> '\x79'+ '\x5a' -> '\x7a'+ '\xc0' -> '\xe0'+ '\xc1' -> '\xe1'+ '\xc2' -> '\xe2'+ '\xc3' -> '\xe3'+ '\xc4' -> '\xe4'+ '\xc5' -> '\xe5'+ '\xc6' -> '\xe6'+ '\xc7' -> '\xe7'+ '\xc8' -> '\xe8'+ '\xc9' -> '\xe9'+ '\xca' -> '\xea'+ '\xcb' -> '\xeb'+ '\xcc' -> '\xec'+ '\xcd' -> '\xed'+ '\xce' -> '\xee'+ '\xcf' -> '\xef'+ '\xd0' -> '\xf0'+ '\xd1' -> '\xf1'+ '\xd2' -> '\xf2'+ '\xd3' -> '\xf3'+ '\xd4' -> '\xf4'+ '\xd5' -> '\xf5'+ '\xd6' -> '\xf6'+ '\xd8' -> '\xf8'+ '\xd9' -> '\xf9'+ '\xda' -> '\xfa'+ '\xdb' -> '\xfb'+ '\xdc' -> '\xfc'+ '\xdd' -> '\xfd'+ '\xde' -> '\xfe'+ '\x100' -> '\x101'+ '\x102' -> '\x103'+ '\x104' -> '\x105'+ '\x106' -> '\x107'+ '\x108' -> '\x109'+ '\x10a' -> '\x10b'+ '\x10c' -> '\x10d'+ '\x10e' -> '\x10f'+ '\x110' -> '\x111'+ '\x112' -> '\x113'+ '\x114' -> '\x115'+ '\x116' -> '\x117'+ '\x118' -> '\x119'+ '\x11a' -> '\x11b'+ '\x11c' -> '\x11d'+ '\x11e' -> '\x11f'+ '\x120' -> '\x121'+ '\x122' -> '\x123'+ '\x124' -> '\x125'+ '\x126' -> '\x127'+ '\x128' -> '\x129'+ '\x12a' -> '\x12b'+ '\x12c' -> '\x12d'+ '\x12e' -> '\x12f'+ '\x130' -> '\x69'+ '\x132' -> '\x133'+ '\x134' -> '\x135'+ '\x136' -> '\x137'+ '\x139' -> '\x13a'+ '\x13b' -> '\x13c'+ '\x13d' -> '\x13e'+ '\x13f' -> '\x140'+ '\x141' -> '\x142'+ '\x143' -> '\x144'+ '\x145' -> '\x146'+ '\x147' -> '\x148'+ '\x14a' -> '\x14b'+ '\x14c' -> '\x14d'+ '\x14e' -> '\x14f'+ '\x150' -> '\x151'+ '\x152' -> '\x153'+ '\x154' -> '\x155'+ '\x156' -> '\x157'+ '\x158' -> '\x159'+ '\x15a' -> '\x15b'+ '\x15c' -> '\x15d'+ '\x15e' -> '\x15f'+ '\x160' -> '\x161'+ '\x162' -> '\x163'+ '\x164' -> '\x165'+ '\x166' -> '\x167'+ '\x168' -> '\x169'+ '\x16a' -> '\x16b'+ '\x16c' -> '\x16d'+ '\x16e' -> '\x16f'+ '\x170' -> '\x171'+ '\x172' -> '\x173'+ '\x174' -> '\x175'+ '\x176' -> '\x177'+ '\x178' -> '\xff'+ '\x179' -> '\x17a'+ '\x17b' -> '\x17c'+ '\x17d' -> '\x17e'+ '\x181' -> '\x253'+ '\x182' -> '\x183'+ '\x184' -> '\x185'+ '\x186' -> '\x254'+ '\x187' -> '\x188'+ '\x189' -> '\x256'+ '\x18a' -> '\x257'+ '\x18b' -> '\x18c'+ '\x18e' -> '\x1dd'+ '\x18f' -> '\x259'+ '\x190' -> '\x25b'+ '\x191' -> '\x192'+ '\x193' -> '\x260'+ '\x194' -> '\x263'+ '\x196' -> '\x269'+ '\x197' -> '\x268'+ '\x198' -> '\x199'+ '\x19c' -> '\x26f'+ '\x19d' -> '\x272'+ '\x19f' -> '\x275'+ '\x1a0' -> '\x1a1'+ '\x1a2' -> '\x1a3'+ '\x1a4' -> '\x1a5'+ '\x1a6' -> '\x280'+ '\x1a7' -> '\x1a8'+ '\x1a9' -> '\x283'+ '\x1ac' -> '\x1ad'+ '\x1ae' -> '\x288'+ '\x1af' -> '\x1b0'+ '\x1b1' -> '\x28a'+ '\x1b2' -> '\x28b'+ '\x1b3' -> '\x1b4'+ '\x1b5' -> '\x1b6'+ '\x1b7' -> '\x292'+ '\x1b8' -> '\x1b9'+ '\x1bc' -> '\x1bd'+ '\x1c4' -> '\x1c6'+ '\x1c5' -> '\x1c6'+ '\x1c7' -> '\x1c9'+ '\x1c8' -> '\x1c9'+ '\x1ca' -> '\x1cc'+ '\x1cb' -> '\x1cc'+ '\x1cd' -> '\x1ce'+ '\x1cf' -> '\x1d0'+ '\x1d1' -> '\x1d2'+ '\x1d3' -> '\x1d4'+ '\x1d5' -> '\x1d6'+ '\x1d7' -> '\x1d8'+ '\x1d9' -> '\x1da'+ '\x1db' -> '\x1dc'+ '\x1de' -> '\x1df'+ '\x1e0' -> '\x1e1'+ '\x1e2' -> '\x1e3'+ '\x1e4' -> '\x1e5'+ '\x1e6' -> '\x1e7'+ '\x1e8' -> '\x1e9'+ '\x1ea' -> '\x1eb'+ '\x1ec' -> '\x1ed'+ '\x1ee' -> '\x1ef'+ '\x1f1' -> '\x1f3'+ '\x1f2' -> '\x1f3'+ '\x1f4' -> '\x1f5'+ '\x1f6' -> '\x195'+ '\x1f7' -> '\x1bf'+ '\x1f8' -> '\x1f9'+ '\x1fa' -> '\x1fb'+ '\x1fc' -> '\x1fd'+ '\x1fe' -> '\x1ff'+ '\x200' -> '\x201'+ '\x202' -> '\x203'+ '\x204' -> '\x205'+ '\x206' -> '\x207'+ '\x208' -> '\x209'+ '\x20a' -> '\x20b'+ '\x20c' -> '\x20d'+ '\x20e' -> '\x20f'+ '\x210' -> '\x211'+ '\x212' -> '\x213'+ '\x214' -> '\x215'+ '\x216' -> '\x217'+ '\x218' -> '\x219'+ '\x21a' -> '\x21b'+ '\x21c' -> '\x21d'+ '\x21e' -> '\x21f'+ '\x220' -> '\x19e'+ '\x222' -> '\x223'+ '\x224' -> '\x225'+ '\x226' -> '\x227'+ '\x228' -> '\x229'+ '\x22a' -> '\x22b'+ '\x22c' -> '\x22d'+ '\x22e' -> '\x22f'+ '\x230' -> '\x231'+ '\x232' -> '\x233'+ '\x23a' -> '\x2c65'+ '\x23b' -> '\x23c'+ '\x23d' -> '\x19a'+ '\x23e' -> '\x2c66'+ '\x241' -> '\x242'+ '\x243' -> '\x180'+ '\x244' -> '\x289'+ '\x245' -> '\x28c'+ '\x246' -> '\x247'+ '\x248' -> '\x249'+ '\x24a' -> '\x24b'+ '\x24c' -> '\x24d'+ '\x24e' -> '\x24f'+ '\x370' -> '\x371'+ '\x372' -> '\x373'+ '\x376' -> '\x377'+ '\x37f' -> '\x3f3'+ '\x386' -> '\x3ac'+ '\x388' -> '\x3ad'+ '\x389' -> '\x3ae'+ '\x38a' -> '\x3af'+ '\x38c' -> '\x3cc'+ '\x38e' -> '\x3cd'+ '\x38f' -> '\x3ce'+ '\x391' -> '\x3b1'+ '\x392' -> '\x3b2'+ '\x393' -> '\x3b3'+ '\x394' -> '\x3b4'+ '\x395' -> '\x3b5'+ '\x396' -> '\x3b6'+ '\x397' -> '\x3b7'+ '\x398' -> '\x3b8'+ '\x399' -> '\x3b9'+ '\x39a' -> '\x3ba'+ '\x39b' -> '\x3bb'+ '\x39c' -> '\x3bc'+ '\x39d' -> '\x3bd'+ '\x39e' -> '\x3be'+ '\x39f' -> '\x3bf'+ '\x3a0' -> '\x3c0'+ '\x3a1' -> '\x3c1'+ '\x3a3' -> '\x3c3'+ '\x3a4' -> '\x3c4'+ '\x3a5' -> '\x3c5'+ '\x3a6' -> '\x3c6'+ '\x3a7' -> '\x3c7'+ '\x3a8' -> '\x3c8'+ '\x3a9' -> '\x3c9'+ '\x3aa' -> '\x3ca'+ '\x3ab' -> '\x3cb'+ '\x3cf' -> '\x3d7'+ '\x3d8' -> '\x3d9'+ '\x3da' -> '\x3db'+ '\x3dc' -> '\x3dd'+ '\x3de' -> '\x3df'+ '\x3e0' -> '\x3e1'+ '\x3e2' -> '\x3e3'+ '\x3e4' -> '\x3e5'+ '\x3e6' -> '\x3e7'+ '\x3e8' -> '\x3e9'+ '\x3ea' -> '\x3eb'+ '\x3ec' -> '\x3ed'+ '\x3ee' -> '\x3ef'+ '\x3f4' -> '\x3b8'+ '\x3f7' -> '\x3f8'+ '\x3f9' -> '\x3f2'+ '\x3fa' -> '\x3fb'+ '\x3fd' -> '\x37b'+ '\x3fe' -> '\x37c'+ '\x3ff' -> '\x37d'+ '\x400' -> '\x450'+ '\x401' -> '\x451'+ '\x402' -> '\x452'+ '\x403' -> '\x453'+ '\x404' -> '\x454'+ '\x405' -> '\x455'+ '\x406' -> '\x456'+ '\x407' -> '\x457'+ '\x408' -> '\x458'+ '\x409' -> '\x459'+ '\x40a' -> '\x45a'+ '\x40b' -> '\x45b'+ '\x40c' -> '\x45c'+ '\x40d' -> '\x45d'+ '\x40e' -> '\x45e'+ '\x40f' -> '\x45f'+ '\x410' -> '\x430'+ '\x411' -> '\x431'+ '\x412' -> '\x432'+ '\x413' -> '\x433'+ '\x414' -> '\x434'+ '\x415' -> '\x435'+ '\x416' -> '\x436'+ '\x417' -> '\x437'+ '\x418' -> '\x438'+ '\x419' -> '\x439'+ '\x41a' -> '\x43a'+ '\x41b' -> '\x43b'+ '\x41c' -> '\x43c'+ '\x41d' -> '\x43d'+ '\x41e' -> '\x43e'+ '\x41f' -> '\x43f'+ '\x420' -> '\x440'+ '\x421' -> '\x441'+ '\x422' -> '\x442'+ '\x423' -> '\x443'+ '\x424' -> '\x444'+ '\x425' -> '\x445'+ '\x426' -> '\x446'+ '\x427' -> '\x447'+ '\x428' -> '\x448'+ '\x429' -> '\x449'+ '\x42a' -> '\x44a'+ '\x42b' -> '\x44b'+ '\x42c' -> '\x44c'+ '\x42d' -> '\x44d'+ '\x42e' -> '\x44e'+ '\x42f' -> '\x44f'+ '\x460' -> '\x461'+ '\x462' -> '\x463'+ '\x464' -> '\x465'+ '\x466' -> '\x467'+ '\x468' -> '\x469'+ '\x46a' -> '\x46b'+ '\x46c' -> '\x46d'+ '\x46e' -> '\x46f'+ '\x470' -> '\x471'+ '\x472' -> '\x473'+ '\x474' -> '\x475'+ '\x476' -> '\x477'+ '\x478' -> '\x479'+ '\x47a' -> '\x47b'+ '\x47c' -> '\x47d'+ '\x47e' -> '\x47f'+ '\x480' -> '\x481'+ '\x48a' -> '\x48b'+ '\x48c' -> '\x48d'+ '\x48e' -> '\x48f'+ '\x490' -> '\x491'+ '\x492' -> '\x493'+ '\x494' -> '\x495'+ '\x496' -> '\x497'+ '\x498' -> '\x499'+ '\x49a' -> '\x49b'+ '\x49c' -> '\x49d'+ '\x49e' -> '\x49f'+ '\x4a0' -> '\x4a1'+ '\x4a2' -> '\x4a3'+ '\x4a4' -> '\x4a5'+ '\x4a6' -> '\x4a7'+ '\x4a8' -> '\x4a9'+ '\x4aa' -> '\x4ab'+ '\x4ac' -> '\x4ad'+ '\x4ae' -> '\x4af'+ '\x4b0' -> '\x4b1'+ '\x4b2' -> '\x4b3'+ '\x4b4' -> '\x4b5'+ '\x4b6' -> '\x4b7'+ '\x4b8' -> '\x4b9'+ '\x4ba' -> '\x4bb'+ '\x4bc' -> '\x4bd'+ '\x4be' -> '\x4bf'+ '\x4c0' -> '\x4cf'+ '\x4c1' -> '\x4c2'+ '\x4c3' -> '\x4c4'+ '\x4c5' -> '\x4c6'+ '\x4c7' -> '\x4c8'+ '\x4c9' -> '\x4ca'+ '\x4cb' -> '\x4cc'+ '\x4cd' -> '\x4ce'+ '\x4d0' -> '\x4d1'+ '\x4d2' -> '\x4d3'+ '\x4d4' -> '\x4d5'+ '\x4d6' -> '\x4d7'+ '\x4d8' -> '\x4d9'+ '\x4da' -> '\x4db'+ '\x4dc' -> '\x4dd'+ '\x4de' -> '\x4df'+ '\x4e0' -> '\x4e1'+ '\x4e2' -> '\x4e3'+ '\x4e4' -> '\x4e5'+ '\x4e6' -> '\x4e7'+ '\x4e8' -> '\x4e9'+ '\x4ea' -> '\x4eb'+ '\x4ec' -> '\x4ed'+ '\x4ee' -> '\x4ef'+ '\x4f0' -> '\x4f1'+ '\x4f2' -> '\x4f3'+ '\x4f4' -> '\x4f5'+ '\x4f6' -> '\x4f7'+ '\x4f8' -> '\x4f9'+ '\x4fa' -> '\x4fb'+ '\x4fc' -> '\x4fd'+ '\x4fe' -> '\x4ff'+ '\x500' -> '\x501'+ '\x502' -> '\x503'+ '\x504' -> '\x505'+ '\x506' -> '\x507'+ '\x508' -> '\x509'+ '\x50a' -> '\x50b'+ '\x50c' -> '\x50d'+ '\x50e' -> '\x50f'+ '\x510' -> '\x511'+ '\x512' -> '\x513'+ '\x514' -> '\x515'+ '\x516' -> '\x517'+ '\x518' -> '\x519'+ '\x51a' -> '\x51b'+ '\x51c' -> '\x51d'+ '\x51e' -> '\x51f'+ '\x520' -> '\x521'+ '\x522' -> '\x523'+ '\x524' -> '\x525'+ '\x526' -> '\x527'+ '\x528' -> '\x529'+ '\x52a' -> '\x52b'+ '\x52c' -> '\x52d'+ '\x52e' -> '\x52f'+ '\x531' -> '\x561'+ '\x532' -> '\x562'+ '\x533' -> '\x563'+ '\x534' -> '\x564'+ '\x535' -> '\x565'+ '\x536' -> '\x566'+ '\x537' -> '\x567'+ '\x538' -> '\x568'+ '\x539' -> '\x569'+ '\x53a' -> '\x56a'+ '\x53b' -> '\x56b'+ '\x53c' -> '\x56c'+ '\x53d' -> '\x56d'+ '\x53e' -> '\x56e'+ '\x53f' -> '\x56f'+ '\x540' -> '\x570'+ '\x541' -> '\x571'+ '\x542' -> '\x572'+ '\x543' -> '\x573'+ '\x544' -> '\x574'+ '\x545' -> '\x575'+ '\x546' -> '\x576'+ '\x547' -> '\x577'+ '\x548' -> '\x578'+ '\x549' -> '\x579'+ '\x54a' -> '\x57a'+ '\x54b' -> '\x57b'+ '\x54c' -> '\x57c'+ '\x54d' -> '\x57d'+ '\x54e' -> '\x57e'+ '\x54f' -> '\x57f'+ '\x550' -> '\x580'+ '\x551' -> '\x581'+ '\x552' -> '\x582'+ '\x553' -> '\x583'+ '\x554' -> '\x584'+ '\x555' -> '\x585'+ '\x556' -> '\x586'+ '\x10a0' -> '\x2d00'+ '\x10a1' -> '\x2d01'+ '\x10a2' -> '\x2d02'+ '\x10a3' -> '\x2d03'+ '\x10a4' -> '\x2d04'+ '\x10a5' -> '\x2d05'+ '\x10a6' -> '\x2d06'+ '\x10a7' -> '\x2d07'+ '\x10a8' -> '\x2d08'+ '\x10a9' -> '\x2d09'+ '\x10aa' -> '\x2d0a'+ '\x10ab' -> '\x2d0b'+ '\x10ac' -> '\x2d0c'+ '\x10ad' -> '\x2d0d'+ '\x10ae' -> '\x2d0e'+ '\x10af' -> '\x2d0f'+ '\x10b0' -> '\x2d10'+ '\x10b1' -> '\x2d11'+ '\x10b2' -> '\x2d12'+ '\x10b3' -> '\x2d13'+ '\x10b4' -> '\x2d14'+ '\x10b5' -> '\x2d15'+ '\x10b6' -> '\x2d16'+ '\x10b7' -> '\x2d17'+ '\x10b8' -> '\x2d18'+ '\x10b9' -> '\x2d19'+ '\x10ba' -> '\x2d1a'+ '\x10bb' -> '\x2d1b'+ '\x10bc' -> '\x2d1c'+ '\x10bd' -> '\x2d1d'+ '\x10be' -> '\x2d1e'+ '\x10bf' -> '\x2d1f'+ '\x10c0' -> '\x2d20'+ '\x10c1' -> '\x2d21'+ '\x10c2' -> '\x2d22'+ '\x10c3' -> '\x2d23'+ '\x10c4' -> '\x2d24'+ '\x10c5' -> '\x2d25'+ '\x10c7' -> '\x2d27'+ '\x10cd' -> '\x2d2d'+ '\x13a0' -> '\xab70'+ '\x13a1' -> '\xab71'+ '\x13a2' -> '\xab72'+ '\x13a3' -> '\xab73'+ '\x13a4' -> '\xab74'+ '\x13a5' -> '\xab75'+ '\x13a6' -> '\xab76'+ '\x13a7' -> '\xab77'+ '\x13a8' -> '\xab78'+ '\x13a9' -> '\xab79'+ '\x13aa' -> '\xab7a'+ '\x13ab' -> '\xab7b'+ '\x13ac' -> '\xab7c'+ '\x13ad' -> '\xab7d'+ '\x13ae' -> '\xab7e'+ '\x13af' -> '\xab7f'+ '\x13b0' -> '\xab80'+ '\x13b1' -> '\xab81'+ '\x13b2' -> '\xab82'+ '\x13b3' -> '\xab83'+ '\x13b4' -> '\xab84'+ '\x13b5' -> '\xab85'+ '\x13b6' -> '\xab86'+ '\x13b7' -> '\xab87'+ '\x13b8' -> '\xab88'+ '\x13b9' -> '\xab89'+ '\x13ba' -> '\xab8a'+ '\x13bb' -> '\xab8b'+ '\x13bc' -> '\xab8c'+ '\x13bd' -> '\xab8d'+ '\x13be' -> '\xab8e'+ '\x13bf' -> '\xab8f'+ '\x13c0' -> '\xab90'+ '\x13c1' -> '\xab91'+ '\x13c2' -> '\xab92'+ '\x13c3' -> '\xab93'+ '\x13c4' -> '\xab94'+ '\x13c5' -> '\xab95'+ '\x13c6' -> '\xab96'+ '\x13c7' -> '\xab97'+ '\x13c8' -> '\xab98'+ '\x13c9' -> '\xab99'+ '\x13ca' -> '\xab9a'+ '\x13cb' -> '\xab9b'+ '\x13cc' -> '\xab9c'+ '\x13cd' -> '\xab9d'+ '\x13ce' -> '\xab9e'+ '\x13cf' -> '\xab9f'+ '\x13d0' -> '\xaba0'+ '\x13d1' -> '\xaba1'+ '\x13d2' -> '\xaba2'+ '\x13d3' -> '\xaba3'+ '\x13d4' -> '\xaba4'+ '\x13d5' -> '\xaba5'+ '\x13d6' -> '\xaba6'+ '\x13d7' -> '\xaba7'+ '\x13d8' -> '\xaba8'+ '\x13d9' -> '\xaba9'+ '\x13da' -> '\xabaa'+ '\x13db' -> '\xabab'+ '\x13dc' -> '\xabac'+ '\x13dd' -> '\xabad'+ '\x13de' -> '\xabae'+ '\x13df' -> '\xabaf'+ '\x13e0' -> '\xabb0'+ '\x13e1' -> '\xabb1'+ '\x13e2' -> '\xabb2'+ '\x13e3' -> '\xabb3'+ '\x13e4' -> '\xabb4'+ '\x13e5' -> '\xabb5'+ '\x13e6' -> '\xabb6'+ '\x13e7' -> '\xabb7'+ '\x13e8' -> '\xabb8'+ '\x13e9' -> '\xabb9'+ '\x13ea' -> '\xabba'+ '\x13eb' -> '\xabbb'+ '\x13ec' -> '\xabbc'+ '\x13ed' -> '\xabbd'+ '\x13ee' -> '\xabbe'+ '\x13ef' -> '\xabbf'+ '\x13f0' -> '\x13f8'+ '\x13f1' -> '\x13f9'+ '\x13f2' -> '\x13fa'+ '\x13f3' -> '\x13fb'+ '\x13f4' -> '\x13fc'+ '\x13f5' -> '\x13fd'+ '\x1c90' -> '\x10d0'+ '\x1c91' -> '\x10d1'+ '\x1c92' -> '\x10d2'+ '\x1c93' -> '\x10d3'+ '\x1c94' -> '\x10d4'+ '\x1c95' -> '\x10d5'+ '\x1c96' -> '\x10d6'+ '\x1c97' -> '\x10d7'+ '\x1c98' -> '\x10d8'+ '\x1c99' -> '\x10d9'+ '\x1c9a' -> '\x10da'+ '\x1c9b' -> '\x10db'+ '\x1c9c' -> '\x10dc'+ '\x1c9d' -> '\x10dd'+ '\x1c9e' -> '\x10de'+ '\x1c9f' -> '\x10df'+ '\x1ca0' -> '\x10e0'+ '\x1ca1' -> '\x10e1'+ '\x1ca2' -> '\x10e2'+ '\x1ca3' -> '\x10e3'+ '\x1ca4' -> '\x10e4'+ '\x1ca5' -> '\x10e5'+ '\x1ca6' -> '\x10e6'+ '\x1ca7' -> '\x10e7'+ '\x1ca8' -> '\x10e8'+ '\x1ca9' -> '\x10e9'+ '\x1caa' -> '\x10ea'+ '\x1cab' -> '\x10eb'+ '\x1cac' -> '\x10ec'+ '\x1cad' -> '\x10ed'+ '\x1cae' -> '\x10ee'+ '\x1caf' -> '\x10ef'+ '\x1cb0' -> '\x10f0'+ '\x1cb1' -> '\x10f1'+ '\x1cb2' -> '\x10f2'+ '\x1cb3' -> '\x10f3'+ '\x1cb4' -> '\x10f4'+ '\x1cb5' -> '\x10f5'+ '\x1cb6' -> '\x10f6'+ '\x1cb7' -> '\x10f7'+ '\x1cb8' -> '\x10f8'+ '\x1cb9' -> '\x10f9'+ '\x1cba' -> '\x10fa'+ '\x1cbd' -> '\x10fd'+ '\x1cbe' -> '\x10fe'+ '\x1cbf' -> '\x10ff'+ '\x1e00' -> '\x1e01'+ '\x1e02' -> '\x1e03'+ '\x1e04' -> '\x1e05'+ '\x1e06' -> '\x1e07'+ '\x1e08' -> '\x1e09'+ '\x1e0a' -> '\x1e0b'+ '\x1e0c' -> '\x1e0d'+ '\x1e0e' -> '\x1e0f'+ '\x1e10' -> '\x1e11'+ '\x1e12' -> '\x1e13'+ '\x1e14' -> '\x1e15'+ '\x1e16' -> '\x1e17'+ '\x1e18' -> '\x1e19'+ '\x1e1a' -> '\x1e1b'+ '\x1e1c' -> '\x1e1d'+ '\x1e1e' -> '\x1e1f'+ '\x1e20' -> '\x1e21'+ '\x1e22' -> '\x1e23'+ '\x1e24' -> '\x1e25'+ '\x1e26' -> '\x1e27'+ '\x1e28' -> '\x1e29'+ '\x1e2a' -> '\x1e2b'+ '\x1e2c' -> '\x1e2d'+ '\x1e2e' -> '\x1e2f'+ '\x1e30' -> '\x1e31'+ '\x1e32' -> '\x1e33'+ '\x1e34' -> '\x1e35'+ '\x1e36' -> '\x1e37'+ '\x1e38' -> '\x1e39'+ '\x1e3a' -> '\x1e3b'+ '\x1e3c' -> '\x1e3d'+ '\x1e3e' -> '\x1e3f'+ '\x1e40' -> '\x1e41'+ '\x1e42' -> '\x1e43'+ '\x1e44' -> '\x1e45'+ '\x1e46' -> '\x1e47'+ '\x1e48' -> '\x1e49'+ '\x1e4a' -> '\x1e4b'+ '\x1e4c' -> '\x1e4d'+ '\x1e4e' -> '\x1e4f'+ '\x1e50' -> '\x1e51'+ '\x1e52' -> '\x1e53'+ '\x1e54' -> '\x1e55'+ '\x1e56' -> '\x1e57'+ '\x1e58' -> '\x1e59'+ '\x1e5a' -> '\x1e5b'+ '\x1e5c' -> '\x1e5d'+ '\x1e5e' -> '\x1e5f'+ '\x1e60' -> '\x1e61'+ '\x1e62' -> '\x1e63'+ '\x1e64' -> '\x1e65'+ '\x1e66' -> '\x1e67'+ '\x1e68' -> '\x1e69'+ '\x1e6a' -> '\x1e6b'+ '\x1e6c' -> '\x1e6d'+ '\x1e6e' -> '\x1e6f'+ '\x1e70' -> '\x1e71'+ '\x1e72' -> '\x1e73'+ '\x1e74' -> '\x1e75'+ '\x1e76' -> '\x1e77'+ '\x1e78' -> '\x1e79'+ '\x1e7a' -> '\x1e7b'+ '\x1e7c' -> '\x1e7d'+ '\x1e7e' -> '\x1e7f'+ '\x1e80' -> '\x1e81'+ '\x1e82' -> '\x1e83'+ '\x1e84' -> '\x1e85'+ '\x1e86' -> '\x1e87'+ '\x1e88' -> '\x1e89'+ '\x1e8a' -> '\x1e8b'+ '\x1e8c' -> '\x1e8d'+ '\x1e8e' -> '\x1e8f'+ '\x1e90' -> '\x1e91'+ '\x1e92' -> '\x1e93'+ '\x1e94' -> '\x1e95'+ '\x1e9e' -> '\xdf'+ '\x1ea0' -> '\x1ea1'+ '\x1ea2' -> '\x1ea3'+ '\x1ea4' -> '\x1ea5'+ '\x1ea6' -> '\x1ea7'+ '\x1ea8' -> '\x1ea9'+ '\x1eaa' -> '\x1eab'+ '\x1eac' -> '\x1ead'+ '\x1eae' -> '\x1eaf'+ '\x1eb0' -> '\x1eb1'+ '\x1eb2' -> '\x1eb3'+ '\x1eb4' -> '\x1eb5'+ '\x1eb6' -> '\x1eb7'+ '\x1eb8' -> '\x1eb9'+ '\x1eba' -> '\x1ebb'+ '\x1ebc' -> '\x1ebd'+ '\x1ebe' -> '\x1ebf'+ '\x1ec0' -> '\x1ec1'+ '\x1ec2' -> '\x1ec3'+ '\x1ec4' -> '\x1ec5'+ '\x1ec6' -> '\x1ec7'+ '\x1ec8' -> '\x1ec9'+ '\x1eca' -> '\x1ecb'+ '\x1ecc' -> '\x1ecd'+ '\x1ece' -> '\x1ecf'+ '\x1ed0' -> '\x1ed1'+ '\x1ed2' -> '\x1ed3'+ '\x1ed4' -> '\x1ed5'+ '\x1ed6' -> '\x1ed7'+ '\x1ed8' -> '\x1ed9'+ '\x1eda' -> '\x1edb'+ '\x1edc' -> '\x1edd'+ '\x1ede' -> '\x1edf'+ '\x1ee0' -> '\x1ee1'+ '\x1ee2' -> '\x1ee3'+ '\x1ee4' -> '\x1ee5'+ '\x1ee6' -> '\x1ee7'+ '\x1ee8' -> '\x1ee9'+ '\x1eea' -> '\x1eeb'+ '\x1eec' -> '\x1eed'+ '\x1eee' -> '\x1eef'+ '\x1ef0' -> '\x1ef1'+ '\x1ef2' -> '\x1ef3'+ '\x1ef4' -> '\x1ef5'+ '\x1ef6' -> '\x1ef7'+ '\x1ef8' -> '\x1ef9'+ '\x1efa' -> '\x1efb'+ '\x1efc' -> '\x1efd'+ '\x1efe' -> '\x1eff'+ '\x1f08' -> '\x1f00'+ '\x1f09' -> '\x1f01'+ '\x1f0a' -> '\x1f02'+ '\x1f0b' -> '\x1f03'+ '\x1f0c' -> '\x1f04'+ '\x1f0d' -> '\x1f05'+ '\x1f0e' -> '\x1f06'+ '\x1f0f' -> '\x1f07'+ '\x1f18' -> '\x1f10'+ '\x1f19' -> '\x1f11'+ '\x1f1a' -> '\x1f12'+ '\x1f1b' -> '\x1f13'+ '\x1f1c' -> '\x1f14'+ '\x1f1d' -> '\x1f15'+ '\x1f28' -> '\x1f20'+ '\x1f29' -> '\x1f21'+ '\x1f2a' -> '\x1f22'+ '\x1f2b' -> '\x1f23'+ '\x1f2c' -> '\x1f24'+ '\x1f2d' -> '\x1f25'+ '\x1f2e' -> '\x1f26'+ '\x1f2f' -> '\x1f27'+ '\x1f38' -> '\x1f30'+ '\x1f39' -> '\x1f31'+ '\x1f3a' -> '\x1f32'+ '\x1f3b' -> '\x1f33'+ '\x1f3c' -> '\x1f34'+ '\x1f3d' -> '\x1f35'+ '\x1f3e' -> '\x1f36'+ '\x1f3f' -> '\x1f37'+ '\x1f48' -> '\x1f40'+ '\x1f49' -> '\x1f41'+ '\x1f4a' -> '\x1f42'+ '\x1f4b' -> '\x1f43'+ '\x1f4c' -> '\x1f44'+ '\x1f4d' -> '\x1f45'+ '\x1f59' -> '\x1f51'+ '\x1f5b' -> '\x1f53'+ '\x1f5d' -> '\x1f55'+ '\x1f5f' -> '\x1f57'+ '\x1f68' -> '\x1f60'+ '\x1f69' -> '\x1f61'+ '\x1f6a' -> '\x1f62'+ '\x1f6b' -> '\x1f63'+ '\x1f6c' -> '\x1f64'+ '\x1f6d' -> '\x1f65'+ '\x1f6e' -> '\x1f66'+ '\x1f6f' -> '\x1f67'+ '\x1f88' -> '\x1f80'+ '\x1f89' -> '\x1f81'+ '\x1f8a' -> '\x1f82'+ '\x1f8b' -> '\x1f83'+ '\x1f8c' -> '\x1f84'+ '\x1f8d' -> '\x1f85'+ '\x1f8e' -> '\x1f86'+ '\x1f8f' -> '\x1f87'+ '\x1f98' -> '\x1f90'+ '\x1f99' -> '\x1f91'+ '\x1f9a' -> '\x1f92'+ '\x1f9b' -> '\x1f93'+ '\x1f9c' -> '\x1f94'+ '\x1f9d' -> '\x1f95'+ '\x1f9e' -> '\x1f96'+ '\x1f9f' -> '\x1f97'+ '\x1fa8' -> '\x1fa0'+ '\x1fa9' -> '\x1fa1'+ '\x1faa' -> '\x1fa2'+ '\x1fab' -> '\x1fa3'+ '\x1fac' -> '\x1fa4'+ '\x1fad' -> '\x1fa5'+ '\x1fae' -> '\x1fa6'+ '\x1faf' -> '\x1fa7'+ '\x1fb8' -> '\x1fb0'+ '\x1fb9' -> '\x1fb1'+ '\x1fba' -> '\x1f70'+ '\x1fbb' -> '\x1f71'+ '\x1fbc' -> '\x1fb3'+ '\x1fc8' -> '\x1f72'+ '\x1fc9' -> '\x1f73'+ '\x1fca' -> '\x1f74'+ '\x1fcb' -> '\x1f75'+ '\x1fcc' -> '\x1fc3'+ '\x1fd8' -> '\x1fd0'+ '\x1fd9' -> '\x1fd1'+ '\x1fda' -> '\x1f76'+ '\x1fdb' -> '\x1f77'+ '\x1fe8' -> '\x1fe0'+ '\x1fe9' -> '\x1fe1'+ '\x1fea' -> '\x1f7a'+ '\x1feb' -> '\x1f7b'+ '\x1fec' -> '\x1fe5'+ '\x1ff8' -> '\x1f78'+ '\x1ff9' -> '\x1f79'+ '\x1ffa' -> '\x1f7c'+ '\x1ffb' -> '\x1f7d'+ '\x1ffc' -> '\x1ff3'+ '\x2126' -> '\x3c9'+ '\x212a' -> '\x6b'+ '\x212b' -> '\xe5'+ '\x2132' -> '\x214e'+ '\x2160' -> '\x2170'+ '\x2161' -> '\x2171'+ '\x2162' -> '\x2172'+ '\x2163' -> '\x2173'+ '\x2164' -> '\x2174'+ '\x2165' -> '\x2175'+ '\x2166' -> '\x2176'+ '\x2167' -> '\x2177'+ '\x2168' -> '\x2178'+ '\x2169' -> '\x2179'+ '\x216a' -> '\x217a'+ '\x216b' -> '\x217b'+ '\x216c' -> '\x217c'+ '\x216d' -> '\x217d'+ '\x216e' -> '\x217e'+ '\x216f' -> '\x217f'+ '\x2183' -> '\x2184'+ '\x24b6' -> '\x24d0'+ '\x24b7' -> '\x24d1'+ '\x24b8' -> '\x24d2'+ '\x24b9' -> '\x24d3'+ '\x24ba' -> '\x24d4'+ '\x24bb' -> '\x24d5'+ '\x24bc' -> '\x24d6'+ '\x24bd' -> '\x24d7'+ '\x24be' -> '\x24d8'+ '\x24bf' -> '\x24d9'+ '\x24c0' -> '\x24da'+ '\x24c1' -> '\x24db'+ '\x24c2' -> '\x24dc'+ '\x24c3' -> '\x24dd'+ '\x24c4' -> '\x24de'+ '\x24c5' -> '\x24df'+ '\x24c6' -> '\x24e0'+ '\x24c7' -> '\x24e1'+ '\x24c8' -> '\x24e2'+ '\x24c9' -> '\x24e3'+ '\x24ca' -> '\x24e4'+ '\x24cb' -> '\x24e5'+ '\x24cc' -> '\x24e6'+ '\x24cd' -> '\x24e7'+ '\x24ce' -> '\x24e8'+ '\x24cf' -> '\x24e9'+ '\x2c00' -> '\x2c30'+ '\x2c01' -> '\x2c31'+ '\x2c02' -> '\x2c32'+ '\x2c03' -> '\x2c33'+ '\x2c04' -> '\x2c34'+ '\x2c05' -> '\x2c35'+ '\x2c06' -> '\x2c36'+ '\x2c07' -> '\x2c37'+ '\x2c08' -> '\x2c38'+ '\x2c09' -> '\x2c39'+ '\x2c0a' -> '\x2c3a'+ '\x2c0b' -> '\x2c3b'+ '\x2c0c' -> '\x2c3c'+ '\x2c0d' -> '\x2c3d'+ '\x2c0e' -> '\x2c3e'+ '\x2c0f' -> '\x2c3f'+ '\x2c10' -> '\x2c40'+ '\x2c11' -> '\x2c41'+ '\x2c12' -> '\x2c42'+ '\x2c13' -> '\x2c43'+ '\x2c14' -> '\x2c44'+ '\x2c15' -> '\x2c45'+ '\x2c16' -> '\x2c46'+ '\x2c17' -> '\x2c47'+ '\x2c18' -> '\x2c48'+ '\x2c19' -> '\x2c49'+ '\x2c1a' -> '\x2c4a'+ '\x2c1b' -> '\x2c4b'+ '\x2c1c' -> '\x2c4c'+ '\x2c1d' -> '\x2c4d'+ '\x2c1e' -> '\x2c4e'+ '\x2c1f' -> '\x2c4f'+ '\x2c20' -> '\x2c50'+ '\x2c21' -> '\x2c51'+ '\x2c22' -> '\x2c52'+ '\x2c23' -> '\x2c53'+ '\x2c24' -> '\x2c54'+ '\x2c25' -> '\x2c55'+ '\x2c26' -> '\x2c56'+ '\x2c27' -> '\x2c57'+ '\x2c28' -> '\x2c58'+ '\x2c29' -> '\x2c59'+ '\x2c2a' -> '\x2c5a'+ '\x2c2b' -> '\x2c5b'+ '\x2c2c' -> '\x2c5c'+ '\x2c2d' -> '\x2c5d'+ '\x2c2e' -> '\x2c5e'+ '\x2c2f' -> '\x2c5f'+ '\x2c60' -> '\x2c61'+ '\x2c62' -> '\x26b'+ '\x2c63' -> '\x1d7d'+ '\x2c64' -> '\x27d'+ '\x2c67' -> '\x2c68'+ '\x2c69' -> '\x2c6a'+ '\x2c6b' -> '\x2c6c'+ '\x2c6d' -> '\x251'+ '\x2c6e' -> '\x271'+ '\x2c6f' -> '\x250'+ '\x2c70' -> '\x252'+ '\x2c72' -> '\x2c73'+ '\x2c75' -> '\x2c76'+ '\x2c7e' -> '\x23f'+ '\x2c7f' -> '\x240'+ '\x2c80' -> '\x2c81'+ '\x2c82' -> '\x2c83'+ '\x2c84' -> '\x2c85'+ '\x2c86' -> '\x2c87'+ '\x2c88' -> '\x2c89'+ '\x2c8a' -> '\x2c8b'+ '\x2c8c' -> '\x2c8d'+ '\x2c8e' -> '\x2c8f'+ '\x2c90' -> '\x2c91'+ '\x2c92' -> '\x2c93'+ '\x2c94' -> '\x2c95'+ '\x2c96' -> '\x2c97'+ '\x2c98' -> '\x2c99'+ '\x2c9a' -> '\x2c9b'+ '\x2c9c' -> '\x2c9d'+ '\x2c9e' -> '\x2c9f'+ '\x2ca0' -> '\x2ca1'+ '\x2ca2' -> '\x2ca3'+ '\x2ca4' -> '\x2ca5'+ '\x2ca6' -> '\x2ca7'+ '\x2ca8' -> '\x2ca9'+ '\x2caa' -> '\x2cab'+ '\x2cac' -> '\x2cad'+ '\x2cae' -> '\x2caf'+ '\x2cb0' -> '\x2cb1'+ '\x2cb2' -> '\x2cb3'+ '\x2cb4' -> '\x2cb5'+ '\x2cb6' -> '\x2cb7'+ '\x2cb8' -> '\x2cb9'+ '\x2cba' -> '\x2cbb'+ '\x2cbc' -> '\x2cbd'+ '\x2cbe' -> '\x2cbf'+ '\x2cc0' -> '\x2cc1'+ '\x2cc2' -> '\x2cc3'+ '\x2cc4' -> '\x2cc5'+ '\x2cc6' -> '\x2cc7'+ '\x2cc8' -> '\x2cc9'+ '\x2cca' -> '\x2ccb'+ '\x2ccc' -> '\x2ccd'+ '\x2cce' -> '\x2ccf'+ '\x2cd0' -> '\x2cd1'+ '\x2cd2' -> '\x2cd3'+ '\x2cd4' -> '\x2cd5'+ '\x2cd6' -> '\x2cd7'+ '\x2cd8' -> '\x2cd9'+ '\x2cda' -> '\x2cdb'+ '\x2cdc' -> '\x2cdd'+ '\x2cde' -> '\x2cdf'+ '\x2ce0' -> '\x2ce1'+ '\x2ce2' -> '\x2ce3'+ '\x2ceb' -> '\x2cec'+ '\x2ced' -> '\x2cee'+ '\x2cf2' -> '\x2cf3'+ '\xa640' -> '\xa641'+ '\xa642' -> '\xa643'+ '\xa644' -> '\xa645'+ '\xa646' -> '\xa647'+ '\xa648' -> '\xa649'+ '\xa64a' -> '\xa64b'+ '\xa64c' -> '\xa64d'+ '\xa64e' -> '\xa64f'+ '\xa650' -> '\xa651'+ '\xa652' -> '\xa653'+ '\xa654' -> '\xa655'+ '\xa656' -> '\xa657'+ '\xa658' -> '\xa659'+ '\xa65a' -> '\xa65b'+ '\xa65c' -> '\xa65d'+ '\xa65e' -> '\xa65f'+ '\xa660' -> '\xa661'+ '\xa662' -> '\xa663'+ '\xa664' -> '\xa665'+ '\xa666' -> '\xa667'+ '\xa668' -> '\xa669'+ '\xa66a' -> '\xa66b'+ '\xa66c' -> '\xa66d'+ '\xa680' -> '\xa681'+ '\xa682' -> '\xa683'+ '\xa684' -> '\xa685'+ '\xa686' -> '\xa687'+ '\xa688' -> '\xa689'+ '\xa68a' -> '\xa68b'+ '\xa68c' -> '\xa68d'+ '\xa68e' -> '\xa68f'+ '\xa690' -> '\xa691'+ '\xa692' -> '\xa693'+ '\xa694' -> '\xa695'+ '\xa696' -> '\xa697'+ '\xa698' -> '\xa699'+ '\xa69a' -> '\xa69b'+ '\xa722' -> '\xa723'+ '\xa724' -> '\xa725'+ '\xa726' -> '\xa727'+ '\xa728' -> '\xa729'+ '\xa72a' -> '\xa72b'+ '\xa72c' -> '\xa72d'+ '\xa72e' -> '\xa72f'+ '\xa732' -> '\xa733'+ '\xa734' -> '\xa735'+ '\xa736' -> '\xa737'+ '\xa738' -> '\xa739'+ '\xa73a' -> '\xa73b'+ '\xa73c' -> '\xa73d'+ '\xa73e' -> '\xa73f'+ '\xa740' -> '\xa741'+ '\xa742' -> '\xa743'+ '\xa744' -> '\xa745'+ '\xa746' -> '\xa747'+ '\xa748' -> '\xa749'+ '\xa74a' -> '\xa74b'+ '\xa74c' -> '\xa74d'+ '\xa74e' -> '\xa74f'+ '\xa750' -> '\xa751'+ '\xa752' -> '\xa753'+ '\xa754' -> '\xa755'+ '\xa756' -> '\xa757'+ '\xa758' -> '\xa759'+ '\xa75a' -> '\xa75b'+ '\xa75c' -> '\xa75d'+ '\xa75e' -> '\xa75f'+ '\xa760' -> '\xa761'+ '\xa762' -> '\xa763'+ '\xa764' -> '\xa765'+ '\xa766' -> '\xa767'+ '\xa768' -> '\xa769'+ '\xa76a' -> '\xa76b'+ '\xa76c' -> '\xa76d'+ '\xa76e' -> '\xa76f'+ '\xa779' -> '\xa77a'+ '\xa77b' -> '\xa77c'+ '\xa77d' -> '\x1d79'+ '\xa77e' -> '\xa77f'+ '\xa780' -> '\xa781'+ '\xa782' -> '\xa783'+ '\xa784' -> '\xa785'+ '\xa786' -> '\xa787'+ '\xa78b' -> '\xa78c'+ '\xa78d' -> '\x265'+ '\xa790' -> '\xa791'+ '\xa792' -> '\xa793'+ '\xa796' -> '\xa797'+ '\xa798' -> '\xa799'+ '\xa79a' -> '\xa79b'+ '\xa79c' -> '\xa79d'+ '\xa79e' -> '\xa79f'+ '\xa7a0' -> '\xa7a1'+ '\xa7a2' -> '\xa7a3'+ '\xa7a4' -> '\xa7a5'+ '\xa7a6' -> '\xa7a7'+ '\xa7a8' -> '\xa7a9'+ '\xa7aa' -> '\x266'+ '\xa7ab' -> '\x25c'+ '\xa7ac' -> '\x261'+ '\xa7ad' -> '\x26c'+ '\xa7ae' -> '\x26a'+ '\xa7b0' -> '\x29e'+ '\xa7b1' -> '\x287'+ '\xa7b2' -> '\x29d'+ '\xa7b3' -> '\xab53'+ '\xa7b4' -> '\xa7b5'+ '\xa7b6' -> '\xa7b7'+ '\xa7b8' -> '\xa7b9'+ '\xa7ba' -> '\xa7bb'+ '\xa7bc' -> '\xa7bd'+ '\xa7be' -> '\xa7bf'+ '\xa7c0' -> '\xa7c1'+ '\xa7c2' -> '\xa7c3'+ '\xa7c4' -> '\xa794'+ '\xa7c5' -> '\x282'+ '\xa7c6' -> '\x1d8e'+ '\xa7c7' -> '\xa7c8'+ '\xa7c9' -> '\xa7ca'+ '\xa7d0' -> '\xa7d1'+ '\xa7d6' -> '\xa7d7'+ '\xa7d8' -> '\xa7d9'+ '\xa7f5' -> '\xa7f6'+ '\xff21' -> '\xff41'+ '\xff22' -> '\xff42'+ '\xff23' -> '\xff43'+ '\xff24' -> '\xff44'+ '\xff25' -> '\xff45'+ '\xff26' -> '\xff46'+ '\xff27' -> '\xff47'+ '\xff28' -> '\xff48'+ '\xff29' -> '\xff49'+ '\xff2a' -> '\xff4a'+ '\xff2b' -> '\xff4b'+ '\xff2c' -> '\xff4c'+ '\xff2d' -> '\xff4d'+ '\xff2e' -> '\xff4e'+ '\xff2f' -> '\xff4f'+ '\xff30' -> '\xff50'+ '\xff31' -> '\xff51'+ '\xff32' -> '\xff52'+ '\xff33' -> '\xff53'+ '\xff34' -> '\xff54'+ '\xff35' -> '\xff55'+ '\xff36' -> '\xff56'+ '\xff37' -> '\xff57'+ '\xff38' -> '\xff58'+ '\xff39' -> '\xff59'+ '\xff3a' -> '\xff5a'+ '\x10400' -> '\x10428'+ '\x10401' -> '\x10429'+ '\x10402' -> '\x1042a'+ '\x10403' -> '\x1042b'+ '\x10404' -> '\x1042c'+ '\x10405' -> '\x1042d'+ '\x10406' -> '\x1042e'+ '\x10407' -> '\x1042f'+ '\x10408' -> '\x10430'+ '\x10409' -> '\x10431'+ '\x1040a' -> '\x10432'+ '\x1040b' -> '\x10433'+ '\x1040c' -> '\x10434'+ '\x1040d' -> '\x10435'+ '\x1040e' -> '\x10436'+ '\x1040f' -> '\x10437'+ '\x10410' -> '\x10438'+ '\x10411' -> '\x10439'+ '\x10412' -> '\x1043a'+ '\x10413' -> '\x1043b'+ '\x10414' -> '\x1043c'+ '\x10415' -> '\x1043d'+ '\x10416' -> '\x1043e'+ '\x10417' -> '\x1043f'+ '\x10418' -> '\x10440'+ '\x10419' -> '\x10441'+ '\x1041a' -> '\x10442'+ '\x1041b' -> '\x10443'+ '\x1041c' -> '\x10444'+ '\x1041d' -> '\x10445'+ '\x1041e' -> '\x10446'+ '\x1041f' -> '\x10447'+ '\x10420' -> '\x10448'+ '\x10421' -> '\x10449'+ '\x10422' -> '\x1044a'+ '\x10423' -> '\x1044b'+ '\x10424' -> '\x1044c'+ '\x10425' -> '\x1044d'+ '\x10426' -> '\x1044e'+ '\x10427' -> '\x1044f'+ '\x104b0' -> '\x104d8'+ '\x104b1' -> '\x104d9'+ '\x104b2' -> '\x104da'+ '\x104b3' -> '\x104db'+ '\x104b4' -> '\x104dc'+ '\x104b5' -> '\x104dd'+ '\x104b6' -> '\x104de'+ '\x104b7' -> '\x104df'+ '\x104b8' -> '\x104e0'+ '\x104b9' -> '\x104e1'+ '\x104ba' -> '\x104e2'+ '\x104bb' -> '\x104e3'+ '\x104bc' -> '\x104e4'+ '\x104bd' -> '\x104e5'+ '\x104be' -> '\x104e6'+ '\x104bf' -> '\x104e7'+ '\x104c0' -> '\x104e8'+ '\x104c1' -> '\x104e9'+ '\x104c2' -> '\x104ea'+ '\x104c3' -> '\x104eb'+ '\x104c4' -> '\x104ec'+ '\x104c5' -> '\x104ed'+ '\x104c6' -> '\x104ee'+ '\x104c7' -> '\x104ef'+ '\x104c8' -> '\x104f0'+ '\x104c9' -> '\x104f1'+ '\x104ca' -> '\x104f2'+ '\x104cb' -> '\x104f3'+ '\x104cc' -> '\x104f4'+ '\x104cd' -> '\x104f5'+ '\x104ce' -> '\x104f6'+ '\x104cf' -> '\x104f7'+ '\x104d0' -> '\x104f8'+ '\x104d1' -> '\x104f9'+ '\x104d2' -> '\x104fa'+ '\x104d3' -> '\x104fb'+ '\x10570' -> '\x10597'+ '\x10571' -> '\x10598'+ '\x10572' -> '\x10599'+ '\x10573' -> '\x1059a'+ '\x10574' -> '\x1059b'+ '\x10575' -> '\x1059c'+ '\x10576' -> '\x1059d'+ '\x10577' -> '\x1059e'+ '\x10578' -> '\x1059f'+ '\x10579' -> '\x105a0'+ '\x1057a' -> '\x105a1'+ '\x1057c' -> '\x105a3'+ '\x1057d' -> '\x105a4'+ '\x1057e' -> '\x105a5'+ '\x1057f' -> '\x105a6'+ '\x10580' -> '\x105a7'+ '\x10581' -> '\x105a8'+ '\x10582' -> '\x105a9'+ '\x10583' -> '\x105aa'+ '\x10584' -> '\x105ab'+ '\x10585' -> '\x105ac'+ '\x10586' -> '\x105ad'+ '\x10587' -> '\x105ae'+ '\x10588' -> '\x105af'+ '\x10589' -> '\x105b0'+ '\x1058a' -> '\x105b1'+ '\x1058c' -> '\x105b3'+ '\x1058d' -> '\x105b4'+ '\x1058e' -> '\x105b5'+ '\x1058f' -> '\x105b6'+ '\x10590' -> '\x105b7'+ '\x10591' -> '\x105b8'+ '\x10592' -> '\x105b9'+ '\x10594' -> '\x105bb'+ '\x10595' -> '\x105bc'+ '\x10c80' -> '\x10cc0'+ '\x10c81' -> '\x10cc1'+ '\x10c82' -> '\x10cc2'+ '\x10c83' -> '\x10cc3'+ '\x10c84' -> '\x10cc4'+ '\x10c85' -> '\x10cc5'+ '\x10c86' -> '\x10cc6'+ '\x10c87' -> '\x10cc7'+ '\x10c88' -> '\x10cc8'+ '\x10c89' -> '\x10cc9'+ '\x10c8a' -> '\x10cca'+ '\x10c8b' -> '\x10ccb'+ '\x10c8c' -> '\x10ccc'+ '\x10c8d' -> '\x10ccd'+ '\x10c8e' -> '\x10cce'+ '\x10c8f' -> '\x10ccf'+ '\x10c90' -> '\x10cd0'+ '\x10c91' -> '\x10cd1'+ '\x10c92' -> '\x10cd2'+ '\x10c93' -> '\x10cd3'+ '\x10c94' -> '\x10cd4'+ '\x10c95' -> '\x10cd5'+ '\x10c96' -> '\x10cd6'+ '\x10c97' -> '\x10cd7'+ '\x10c98' -> '\x10cd8'+ '\x10c99' -> '\x10cd9'+ '\x10c9a' -> '\x10cda'+ '\x10c9b' -> '\x10cdb'+ '\x10c9c' -> '\x10cdc'+ '\x10c9d' -> '\x10cdd'+ '\x10c9e' -> '\x10cde'+ '\x10c9f' -> '\x10cdf'+ '\x10ca0' -> '\x10ce0'+ '\x10ca1' -> '\x10ce1'+ '\x10ca2' -> '\x10ce2'+ '\x10ca3' -> '\x10ce3'+ '\x10ca4' -> '\x10ce4'+ '\x10ca5' -> '\x10ce5'+ '\x10ca6' -> '\x10ce6'+ '\x10ca7' -> '\x10ce7'+ '\x10ca8' -> '\x10ce8'+ '\x10ca9' -> '\x10ce9'+ '\x10caa' -> '\x10cea'+ '\x10cab' -> '\x10ceb'+ '\x10cac' -> '\x10cec'+ '\x10cad' -> '\x10ced'+ '\x10cae' -> '\x10cee'+ '\x10caf' -> '\x10cef'+ '\x10cb0' -> '\x10cf0'+ '\x10cb1' -> '\x10cf1'+ '\x10cb2' -> '\x10cf2'+ '\x118a0' -> '\x118c0'+ '\x118a1' -> '\x118c1'+ '\x118a2' -> '\x118c2'+ '\x118a3' -> '\x118c3'+ '\x118a4' -> '\x118c4'+ '\x118a5' -> '\x118c5'+ '\x118a6' -> '\x118c6'+ '\x118a7' -> '\x118c7'+ '\x118a8' -> '\x118c8'+ '\x118a9' -> '\x118c9'+ '\x118aa' -> '\x118ca'+ '\x118ab' -> '\x118cb'+ '\x118ac' -> '\x118cc'+ '\x118ad' -> '\x118cd'+ '\x118ae' -> '\x118ce'+ '\x118af' -> '\x118cf'+ '\x118b0' -> '\x118d0'+ '\x118b1' -> '\x118d1'+ '\x118b2' -> '\x118d2'+ '\x118b3' -> '\x118d3'+ '\x118b4' -> '\x118d4'+ '\x118b5' -> '\x118d5'+ '\x118b6' -> '\x118d6'+ '\x118b7' -> '\x118d7'+ '\x118b8' -> '\x118d8'+ '\x118b9' -> '\x118d9'+ '\x118ba' -> '\x118da'+ '\x118bb' -> '\x118db'+ '\x118bc' -> '\x118dc'+ '\x118bd' -> '\x118dd'+ '\x118be' -> '\x118de'+ '\x118bf' -> '\x118df'+ '\x16e40' -> '\x16e60'+ '\x16e41' -> '\x16e61'+ '\x16e42' -> '\x16e62'+ '\x16e43' -> '\x16e63'+ '\x16e44' -> '\x16e64'+ '\x16e45' -> '\x16e65'+ '\x16e46' -> '\x16e66'+ '\x16e47' -> '\x16e67'+ '\x16e48' -> '\x16e68'+ '\x16e49' -> '\x16e69'+ '\x16e4a' -> '\x16e6a'+ '\x16e4b' -> '\x16e6b'+ '\x16e4c' -> '\x16e6c'+ '\x16e4d' -> '\x16e6d'+ '\x16e4e' -> '\x16e6e'+ '\x16e4f' -> '\x16e6f'+ '\x16e50' -> '\x16e70'+ '\x16e51' -> '\x16e71'+ '\x16e52' -> '\x16e72'+ '\x16e53' -> '\x16e73'+ '\x16e54' -> '\x16e74'+ '\x16e55' -> '\x16e75'+ '\x16e56' -> '\x16e76'+ '\x16e57' -> '\x16e77'+ '\x16e58' -> '\x16e78'+ '\x16e59' -> '\x16e79'+ '\x16e5a' -> '\x16e7a'+ '\x16e5b' -> '\x16e7b'+ '\x16e5c' -> '\x16e7c'+ '\x16e5d' -> '\x16e7d'+ '\x16e5e' -> '\x16e7e'+ '\x16e5f' -> '\x16e7f'+ '\x1e900' -> '\x1e922'+ '\x1e901' -> '\x1e923'+ '\x1e902' -> '\x1e924'+ '\x1e903' -> '\x1e925'+ '\x1e904' -> '\x1e926'+ '\x1e905' -> '\x1e927'+ '\x1e906' -> '\x1e928'+ '\x1e907' -> '\x1e929'+ '\x1e908' -> '\x1e92a'+ '\x1e909' -> '\x1e92b'+ '\x1e90a' -> '\x1e92c'+ '\x1e90b' -> '\x1e92d'+ '\x1e90c' -> '\x1e92e'+ '\x1e90d' -> '\x1e92f'+ '\x1e90e' -> '\x1e930'+ '\x1e90f' -> '\x1e931'+ '\x1e910' -> '\x1e932'+ '\x1e911' -> '\x1e933'+ '\x1e912' -> '\x1e934'+ '\x1e913' -> '\x1e935'+ '\x1e914' -> '\x1e936'+ '\x1e915' -> '\x1e937'+ '\x1e916' -> '\x1e938'+ '\x1e917' -> '\x1e939'+ '\x1e918' -> '\x1e93a'+ '\x1e919' -> '\x1e93b'+ '\x1e91a' -> '\x1e93c'+ '\x1e91b' -> '\x1e93d'+ '\x1e91c' -> '\x1e93e'+ '\x1e91d' -> '\x1e93f'+ '\x1e91e' -> '\x1e940'+ '\x1e91f' -> '\x1e941'+ '\x1e920' -> '\x1e942'+ '\x1e921' -> '\x1e943'+ c -> c
+ GHC/Unicode/Internal/Char/UnicodeData/SimpleTitleCaseMapping.hs view
@@ -0,0 +1,1479 @@+-- DO NOT EDIT: This file is automatically generated by the internal tool ucd2haskell,+-- with data from: https://www.unicode.org/Public/15.0.0/ucd/UnicodeData.txt.++{-# LANGUAGE NoImplicitPrelude, LambdaCase #-}+{-# OPTIONS_HADDOCK hide #-}++-----------------------------------------------------------------------------+-- |+-- Module : GHC.Unicode.Internal.Char.UnicodeData.SimpleTitleCaseMapping+-- Copyright : (c) 2020 Composewell Technologies and Contributors+-- License : BSD-3-Clause+-- Maintainer : streamly@composewell.com+-- Stability : internal+-----------------------------------------------------------------------------++module GHC.Unicode.Internal.Char.UnicodeData.SimpleTitleCaseMapping+(toSimpleTitleCase)+where++import GHC.Base (Char)++{-# NOINLINE toSimpleTitleCase #-}+toSimpleTitleCase :: Char -> Char+toSimpleTitleCase = \case+ '\x61' -> '\x41'+ '\x62' -> '\x42'+ '\x63' -> '\x43'+ '\x64' -> '\x44'+ '\x65' -> '\x45'+ '\x66' -> '\x46'+ '\x67' -> '\x47'+ '\x68' -> '\x48'+ '\x69' -> '\x49'+ '\x6a' -> '\x4a'+ '\x6b' -> '\x4b'+ '\x6c' -> '\x4c'+ '\x6d' -> '\x4d'+ '\x6e' -> '\x4e'+ '\x6f' -> '\x4f'+ '\x70' -> '\x50'+ '\x71' -> '\x51'+ '\x72' -> '\x52'+ '\x73' -> '\x53'+ '\x74' -> '\x54'+ '\x75' -> '\x55'+ '\x76' -> '\x56'+ '\x77' -> '\x57'+ '\x78' -> '\x58'+ '\x79' -> '\x59'+ '\x7a' -> '\x5a'+ '\xb5' -> '\x39c'+ '\xe0' -> '\xc0'+ '\xe1' -> '\xc1'+ '\xe2' -> '\xc2'+ '\xe3' -> '\xc3'+ '\xe4' -> '\xc4'+ '\xe5' -> '\xc5'+ '\xe6' -> '\xc6'+ '\xe7' -> '\xc7'+ '\xe8' -> '\xc8'+ '\xe9' -> '\xc9'+ '\xea' -> '\xca'+ '\xeb' -> '\xcb'+ '\xec' -> '\xcc'+ '\xed' -> '\xcd'+ '\xee' -> '\xce'+ '\xef' -> '\xcf'+ '\xf0' -> '\xd0'+ '\xf1' -> '\xd1'+ '\xf2' -> '\xd2'+ '\xf3' -> '\xd3'+ '\xf4' -> '\xd4'+ '\xf5' -> '\xd5'+ '\xf6' -> '\xd6'+ '\xf8' -> '\xd8'+ '\xf9' -> '\xd9'+ '\xfa' -> '\xda'+ '\xfb' -> '\xdb'+ '\xfc' -> '\xdc'+ '\xfd' -> '\xdd'+ '\xfe' -> '\xde'+ '\xff' -> '\x178'+ '\x101' -> '\x100'+ '\x103' -> '\x102'+ '\x105' -> '\x104'+ '\x107' -> '\x106'+ '\x109' -> '\x108'+ '\x10b' -> '\x10a'+ '\x10d' -> '\x10c'+ '\x10f' -> '\x10e'+ '\x111' -> '\x110'+ '\x113' -> '\x112'+ '\x115' -> '\x114'+ '\x117' -> '\x116'+ '\x119' -> '\x118'+ '\x11b' -> '\x11a'+ '\x11d' -> '\x11c'+ '\x11f' -> '\x11e'+ '\x121' -> '\x120'+ '\x123' -> '\x122'+ '\x125' -> '\x124'+ '\x127' -> '\x126'+ '\x129' -> '\x128'+ '\x12b' -> '\x12a'+ '\x12d' -> '\x12c'+ '\x12f' -> '\x12e'+ '\x131' -> '\x49'+ '\x133' -> '\x132'+ '\x135' -> '\x134'+ '\x137' -> '\x136'+ '\x13a' -> '\x139'+ '\x13c' -> '\x13b'+ '\x13e' -> '\x13d'+ '\x140' -> '\x13f'+ '\x142' -> '\x141'+ '\x144' -> '\x143'+ '\x146' -> '\x145'+ '\x148' -> '\x147'+ '\x14b' -> '\x14a'+ '\x14d' -> '\x14c'+ '\x14f' -> '\x14e'+ '\x151' -> '\x150'+ '\x153' -> '\x152'+ '\x155' -> '\x154'+ '\x157' -> '\x156'+ '\x159' -> '\x158'+ '\x15b' -> '\x15a'+ '\x15d' -> '\x15c'+ '\x15f' -> '\x15e'+ '\x161' -> '\x160'+ '\x163' -> '\x162'+ '\x165' -> '\x164'+ '\x167' -> '\x166'+ '\x169' -> '\x168'+ '\x16b' -> '\x16a'+ '\x16d' -> '\x16c'+ '\x16f' -> '\x16e'+ '\x171' -> '\x170'+ '\x173' -> '\x172'+ '\x175' -> '\x174'+ '\x177' -> '\x176'+ '\x17a' -> '\x179'+ '\x17c' -> '\x17b'+ '\x17e' -> '\x17d'+ '\x17f' -> '\x53'+ '\x180' -> '\x243'+ '\x183' -> '\x182'+ '\x185' -> '\x184'+ '\x188' -> '\x187'+ '\x18c' -> '\x18b'+ '\x192' -> '\x191'+ '\x195' -> '\x1f6'+ '\x199' -> '\x198'+ '\x19a' -> '\x23d'+ '\x19e' -> '\x220'+ '\x1a1' -> '\x1a0'+ '\x1a3' -> '\x1a2'+ '\x1a5' -> '\x1a4'+ '\x1a8' -> '\x1a7'+ '\x1ad' -> '\x1ac'+ '\x1b0' -> '\x1af'+ '\x1b4' -> '\x1b3'+ '\x1b6' -> '\x1b5'+ '\x1b9' -> '\x1b8'+ '\x1bd' -> '\x1bc'+ '\x1bf' -> '\x1f7'+ '\x1c4' -> '\x1c5'+ '\x1c5' -> '\x1c5'+ '\x1c6' -> '\x1c5'+ '\x1c7' -> '\x1c8'+ '\x1c8' -> '\x1c8'+ '\x1c9' -> '\x1c8'+ '\x1ca' -> '\x1cb'+ '\x1cb' -> '\x1cb'+ '\x1cc' -> '\x1cb'+ '\x1ce' -> '\x1cd'+ '\x1d0' -> '\x1cf'+ '\x1d2' -> '\x1d1'+ '\x1d4' -> '\x1d3'+ '\x1d6' -> '\x1d5'+ '\x1d8' -> '\x1d7'+ '\x1da' -> '\x1d9'+ '\x1dc' -> '\x1db'+ '\x1dd' -> '\x18e'+ '\x1df' -> '\x1de'+ '\x1e1' -> '\x1e0'+ '\x1e3' -> '\x1e2'+ '\x1e5' -> '\x1e4'+ '\x1e7' -> '\x1e6'+ '\x1e9' -> '\x1e8'+ '\x1eb' -> '\x1ea'+ '\x1ed' -> '\x1ec'+ '\x1ef' -> '\x1ee'+ '\x1f1' -> '\x1f2'+ '\x1f2' -> '\x1f2'+ '\x1f3' -> '\x1f2'+ '\x1f5' -> '\x1f4'+ '\x1f9' -> '\x1f8'+ '\x1fb' -> '\x1fa'+ '\x1fd' -> '\x1fc'+ '\x1ff' -> '\x1fe'+ '\x201' -> '\x200'+ '\x203' -> '\x202'+ '\x205' -> '\x204'+ '\x207' -> '\x206'+ '\x209' -> '\x208'+ '\x20b' -> '\x20a'+ '\x20d' -> '\x20c'+ '\x20f' -> '\x20e'+ '\x211' -> '\x210'+ '\x213' -> '\x212'+ '\x215' -> '\x214'+ '\x217' -> '\x216'+ '\x219' -> '\x218'+ '\x21b' -> '\x21a'+ '\x21d' -> '\x21c'+ '\x21f' -> '\x21e'+ '\x223' -> '\x222'+ '\x225' -> '\x224'+ '\x227' -> '\x226'+ '\x229' -> '\x228'+ '\x22b' -> '\x22a'+ '\x22d' -> '\x22c'+ '\x22f' -> '\x22e'+ '\x231' -> '\x230'+ '\x233' -> '\x232'+ '\x23c' -> '\x23b'+ '\x23f' -> '\x2c7e'+ '\x240' -> '\x2c7f'+ '\x242' -> '\x241'+ '\x247' -> '\x246'+ '\x249' -> '\x248'+ '\x24b' -> '\x24a'+ '\x24d' -> '\x24c'+ '\x24f' -> '\x24e'+ '\x250' -> '\x2c6f'+ '\x251' -> '\x2c6d'+ '\x252' -> '\x2c70'+ '\x253' -> '\x181'+ '\x254' -> '\x186'+ '\x256' -> '\x189'+ '\x257' -> '\x18a'+ '\x259' -> '\x18f'+ '\x25b' -> '\x190'+ '\x25c' -> '\xa7ab'+ '\x260' -> '\x193'+ '\x261' -> '\xa7ac'+ '\x263' -> '\x194'+ '\x265' -> '\xa78d'+ '\x266' -> '\xa7aa'+ '\x268' -> '\x197'+ '\x269' -> '\x196'+ '\x26a' -> '\xa7ae'+ '\x26b' -> '\x2c62'+ '\x26c' -> '\xa7ad'+ '\x26f' -> '\x19c'+ '\x271' -> '\x2c6e'+ '\x272' -> '\x19d'+ '\x275' -> '\x19f'+ '\x27d' -> '\x2c64'+ '\x280' -> '\x1a6'+ '\x282' -> '\xa7c5'+ '\x283' -> '\x1a9'+ '\x287' -> '\xa7b1'+ '\x288' -> '\x1ae'+ '\x289' -> '\x244'+ '\x28a' -> '\x1b1'+ '\x28b' -> '\x1b2'+ '\x28c' -> '\x245'+ '\x292' -> '\x1b7'+ '\x29d' -> '\xa7b2'+ '\x29e' -> '\xa7b0'+ '\x345' -> '\x399'+ '\x371' -> '\x370'+ '\x373' -> '\x372'+ '\x377' -> '\x376'+ '\x37b' -> '\x3fd'+ '\x37c' -> '\x3fe'+ '\x37d' -> '\x3ff'+ '\x3ac' -> '\x386'+ '\x3ad' -> '\x388'+ '\x3ae' -> '\x389'+ '\x3af' -> '\x38a'+ '\x3b1' -> '\x391'+ '\x3b2' -> '\x392'+ '\x3b3' -> '\x393'+ '\x3b4' -> '\x394'+ '\x3b5' -> '\x395'+ '\x3b6' -> '\x396'+ '\x3b7' -> '\x397'+ '\x3b8' -> '\x398'+ '\x3b9' -> '\x399'+ '\x3ba' -> '\x39a'+ '\x3bb' -> '\x39b'+ '\x3bc' -> '\x39c'+ '\x3bd' -> '\x39d'+ '\x3be' -> '\x39e'+ '\x3bf' -> '\x39f'+ '\x3c0' -> '\x3a0'+ '\x3c1' -> '\x3a1'+ '\x3c2' -> '\x3a3'+ '\x3c3' -> '\x3a3'+ '\x3c4' -> '\x3a4'+ '\x3c5' -> '\x3a5'+ '\x3c6' -> '\x3a6'+ '\x3c7' -> '\x3a7'+ '\x3c8' -> '\x3a8'+ '\x3c9' -> '\x3a9'+ '\x3ca' -> '\x3aa'+ '\x3cb' -> '\x3ab'+ '\x3cc' -> '\x38c'+ '\x3cd' -> '\x38e'+ '\x3ce' -> '\x38f'+ '\x3d0' -> '\x392'+ '\x3d1' -> '\x398'+ '\x3d5' -> '\x3a6'+ '\x3d6' -> '\x3a0'+ '\x3d7' -> '\x3cf'+ '\x3d9' -> '\x3d8'+ '\x3db' -> '\x3da'+ '\x3dd' -> '\x3dc'+ '\x3df' -> '\x3de'+ '\x3e1' -> '\x3e0'+ '\x3e3' -> '\x3e2'+ '\x3e5' -> '\x3e4'+ '\x3e7' -> '\x3e6'+ '\x3e9' -> '\x3e8'+ '\x3eb' -> '\x3ea'+ '\x3ed' -> '\x3ec'+ '\x3ef' -> '\x3ee'+ '\x3f0' -> '\x39a'+ '\x3f1' -> '\x3a1'+ '\x3f2' -> '\x3f9'+ '\x3f3' -> '\x37f'+ '\x3f5' -> '\x395'+ '\x3f8' -> '\x3f7'+ '\x3fb' -> '\x3fa'+ '\x430' -> '\x410'+ '\x431' -> '\x411'+ '\x432' -> '\x412'+ '\x433' -> '\x413'+ '\x434' -> '\x414'+ '\x435' -> '\x415'+ '\x436' -> '\x416'+ '\x437' -> '\x417'+ '\x438' -> '\x418'+ '\x439' -> '\x419'+ '\x43a' -> '\x41a'+ '\x43b' -> '\x41b'+ '\x43c' -> '\x41c'+ '\x43d' -> '\x41d'+ '\x43e' -> '\x41e'+ '\x43f' -> '\x41f'+ '\x440' -> '\x420'+ '\x441' -> '\x421'+ '\x442' -> '\x422'+ '\x443' -> '\x423'+ '\x444' -> '\x424'+ '\x445' -> '\x425'+ '\x446' -> '\x426'+ '\x447' -> '\x427'+ '\x448' -> '\x428'+ '\x449' -> '\x429'+ '\x44a' -> '\x42a'+ '\x44b' -> '\x42b'+ '\x44c' -> '\x42c'+ '\x44d' -> '\x42d'+ '\x44e' -> '\x42e'+ '\x44f' -> '\x42f'+ '\x450' -> '\x400'+ '\x451' -> '\x401'+ '\x452' -> '\x402'+ '\x453' -> '\x403'+ '\x454' -> '\x404'+ '\x455' -> '\x405'+ '\x456' -> '\x406'+ '\x457' -> '\x407'+ '\x458' -> '\x408'+ '\x459' -> '\x409'+ '\x45a' -> '\x40a'+ '\x45b' -> '\x40b'+ '\x45c' -> '\x40c'+ '\x45d' -> '\x40d'+ '\x45e' -> '\x40e'+ '\x45f' -> '\x40f'+ '\x461' -> '\x460'+ '\x463' -> '\x462'+ '\x465' -> '\x464'+ '\x467' -> '\x466'+ '\x469' -> '\x468'+ '\x46b' -> '\x46a'+ '\x46d' -> '\x46c'+ '\x46f' -> '\x46e'+ '\x471' -> '\x470'+ '\x473' -> '\x472'+ '\x475' -> '\x474'+ '\x477' -> '\x476'+ '\x479' -> '\x478'+ '\x47b' -> '\x47a'+ '\x47d' -> '\x47c'+ '\x47f' -> '\x47e'+ '\x481' -> '\x480'+ '\x48b' -> '\x48a'+ '\x48d' -> '\x48c'+ '\x48f' -> '\x48e'+ '\x491' -> '\x490'+ '\x493' -> '\x492'+ '\x495' -> '\x494'+ '\x497' -> '\x496'+ '\x499' -> '\x498'+ '\x49b' -> '\x49a'+ '\x49d' -> '\x49c'+ '\x49f' -> '\x49e'+ '\x4a1' -> '\x4a0'+ '\x4a3' -> '\x4a2'+ '\x4a5' -> '\x4a4'+ '\x4a7' -> '\x4a6'+ '\x4a9' -> '\x4a8'+ '\x4ab' -> '\x4aa'+ '\x4ad' -> '\x4ac'+ '\x4af' -> '\x4ae'+ '\x4b1' -> '\x4b0'+ '\x4b3' -> '\x4b2'+ '\x4b5' -> '\x4b4'+ '\x4b7' -> '\x4b6'+ '\x4b9' -> '\x4b8'+ '\x4bb' -> '\x4ba'+ '\x4bd' -> '\x4bc'+ '\x4bf' -> '\x4be'+ '\x4c2' -> '\x4c1'+ '\x4c4' -> '\x4c3'+ '\x4c6' -> '\x4c5'+ '\x4c8' -> '\x4c7'+ '\x4ca' -> '\x4c9'+ '\x4cc' -> '\x4cb'+ '\x4ce' -> '\x4cd'+ '\x4cf' -> '\x4c0'+ '\x4d1' -> '\x4d0'+ '\x4d3' -> '\x4d2'+ '\x4d5' -> '\x4d4'+ '\x4d7' -> '\x4d6'+ '\x4d9' -> '\x4d8'+ '\x4db' -> '\x4da'+ '\x4dd' -> '\x4dc'+ '\x4df' -> '\x4de'+ '\x4e1' -> '\x4e0'+ '\x4e3' -> '\x4e2'+ '\x4e5' -> '\x4e4'+ '\x4e7' -> '\x4e6'+ '\x4e9' -> '\x4e8'+ '\x4eb' -> '\x4ea'+ '\x4ed' -> '\x4ec'+ '\x4ef' -> '\x4ee'+ '\x4f1' -> '\x4f0'+ '\x4f3' -> '\x4f2'+ '\x4f5' -> '\x4f4'+ '\x4f7' -> '\x4f6'+ '\x4f9' -> '\x4f8'+ '\x4fb' -> '\x4fa'+ '\x4fd' -> '\x4fc'+ '\x4ff' -> '\x4fe'+ '\x501' -> '\x500'+ '\x503' -> '\x502'+ '\x505' -> '\x504'+ '\x507' -> '\x506'+ '\x509' -> '\x508'+ '\x50b' -> '\x50a'+ '\x50d' -> '\x50c'+ '\x50f' -> '\x50e'+ '\x511' -> '\x510'+ '\x513' -> '\x512'+ '\x515' -> '\x514'+ '\x517' -> '\x516'+ '\x519' -> '\x518'+ '\x51b' -> '\x51a'+ '\x51d' -> '\x51c'+ '\x51f' -> '\x51e'+ '\x521' -> '\x520'+ '\x523' -> '\x522'+ '\x525' -> '\x524'+ '\x527' -> '\x526'+ '\x529' -> '\x528'+ '\x52b' -> '\x52a'+ '\x52d' -> '\x52c'+ '\x52f' -> '\x52e'+ '\x561' -> '\x531'+ '\x562' -> '\x532'+ '\x563' -> '\x533'+ '\x564' -> '\x534'+ '\x565' -> '\x535'+ '\x566' -> '\x536'+ '\x567' -> '\x537'+ '\x568' -> '\x538'+ '\x569' -> '\x539'+ '\x56a' -> '\x53a'+ '\x56b' -> '\x53b'+ '\x56c' -> '\x53c'+ '\x56d' -> '\x53d'+ '\x56e' -> '\x53e'+ '\x56f' -> '\x53f'+ '\x570' -> '\x540'+ '\x571' -> '\x541'+ '\x572' -> '\x542'+ '\x573' -> '\x543'+ '\x574' -> '\x544'+ '\x575' -> '\x545'+ '\x576' -> '\x546'+ '\x577' -> '\x547'+ '\x578' -> '\x548'+ '\x579' -> '\x549'+ '\x57a' -> '\x54a'+ '\x57b' -> '\x54b'+ '\x57c' -> '\x54c'+ '\x57d' -> '\x54d'+ '\x57e' -> '\x54e'+ '\x57f' -> '\x54f'+ '\x580' -> '\x550'+ '\x581' -> '\x551'+ '\x582' -> '\x552'+ '\x583' -> '\x553'+ '\x584' -> '\x554'+ '\x585' -> '\x555'+ '\x586' -> '\x556'+ '\x10d0' -> '\x10d0'+ '\x10d1' -> '\x10d1'+ '\x10d2' -> '\x10d2'+ '\x10d3' -> '\x10d3'+ '\x10d4' -> '\x10d4'+ '\x10d5' -> '\x10d5'+ '\x10d6' -> '\x10d6'+ '\x10d7' -> '\x10d7'+ '\x10d8' -> '\x10d8'+ '\x10d9' -> '\x10d9'+ '\x10da' -> '\x10da'+ '\x10db' -> '\x10db'+ '\x10dc' -> '\x10dc'+ '\x10dd' -> '\x10dd'+ '\x10de' -> '\x10de'+ '\x10df' -> '\x10df'+ '\x10e0' -> '\x10e0'+ '\x10e1' -> '\x10e1'+ '\x10e2' -> '\x10e2'+ '\x10e3' -> '\x10e3'+ '\x10e4' -> '\x10e4'+ '\x10e5' -> '\x10e5'+ '\x10e6' -> '\x10e6'+ '\x10e7' -> '\x10e7'+ '\x10e8' -> '\x10e8'+ '\x10e9' -> '\x10e9'+ '\x10ea' -> '\x10ea'+ '\x10eb' -> '\x10eb'+ '\x10ec' -> '\x10ec'+ '\x10ed' -> '\x10ed'+ '\x10ee' -> '\x10ee'+ '\x10ef' -> '\x10ef'+ '\x10f0' -> '\x10f0'+ '\x10f1' -> '\x10f1'+ '\x10f2' -> '\x10f2'+ '\x10f3' -> '\x10f3'+ '\x10f4' -> '\x10f4'+ '\x10f5' -> '\x10f5'+ '\x10f6' -> '\x10f6'+ '\x10f7' -> '\x10f7'+ '\x10f8' -> '\x10f8'+ '\x10f9' -> '\x10f9'+ '\x10fa' -> '\x10fa'+ '\x10fd' -> '\x10fd'+ '\x10fe' -> '\x10fe'+ '\x10ff' -> '\x10ff'+ '\x13f8' -> '\x13f0'+ '\x13f9' -> '\x13f1'+ '\x13fa' -> '\x13f2'+ '\x13fb' -> '\x13f3'+ '\x13fc' -> '\x13f4'+ '\x13fd' -> '\x13f5'+ '\x1c80' -> '\x412'+ '\x1c81' -> '\x414'+ '\x1c82' -> '\x41e'+ '\x1c83' -> '\x421'+ '\x1c84' -> '\x422'+ '\x1c85' -> '\x422'+ '\x1c86' -> '\x42a'+ '\x1c87' -> '\x462'+ '\x1c88' -> '\xa64a'+ '\x1d79' -> '\xa77d'+ '\x1d7d' -> '\x2c63'+ '\x1d8e' -> '\xa7c6'+ '\x1e01' -> '\x1e00'+ '\x1e03' -> '\x1e02'+ '\x1e05' -> '\x1e04'+ '\x1e07' -> '\x1e06'+ '\x1e09' -> '\x1e08'+ '\x1e0b' -> '\x1e0a'+ '\x1e0d' -> '\x1e0c'+ '\x1e0f' -> '\x1e0e'+ '\x1e11' -> '\x1e10'+ '\x1e13' -> '\x1e12'+ '\x1e15' -> '\x1e14'+ '\x1e17' -> '\x1e16'+ '\x1e19' -> '\x1e18'+ '\x1e1b' -> '\x1e1a'+ '\x1e1d' -> '\x1e1c'+ '\x1e1f' -> '\x1e1e'+ '\x1e21' -> '\x1e20'+ '\x1e23' -> '\x1e22'+ '\x1e25' -> '\x1e24'+ '\x1e27' -> '\x1e26'+ '\x1e29' -> '\x1e28'+ '\x1e2b' -> '\x1e2a'+ '\x1e2d' -> '\x1e2c'+ '\x1e2f' -> '\x1e2e'+ '\x1e31' -> '\x1e30'+ '\x1e33' -> '\x1e32'+ '\x1e35' -> '\x1e34'+ '\x1e37' -> '\x1e36'+ '\x1e39' -> '\x1e38'+ '\x1e3b' -> '\x1e3a'+ '\x1e3d' -> '\x1e3c'+ '\x1e3f' -> '\x1e3e'+ '\x1e41' -> '\x1e40'+ '\x1e43' -> '\x1e42'+ '\x1e45' -> '\x1e44'+ '\x1e47' -> '\x1e46'+ '\x1e49' -> '\x1e48'+ '\x1e4b' -> '\x1e4a'+ '\x1e4d' -> '\x1e4c'+ '\x1e4f' -> '\x1e4e'+ '\x1e51' -> '\x1e50'+ '\x1e53' -> '\x1e52'+ '\x1e55' -> '\x1e54'+ '\x1e57' -> '\x1e56'+ '\x1e59' -> '\x1e58'+ '\x1e5b' -> '\x1e5a'+ '\x1e5d' -> '\x1e5c'+ '\x1e5f' -> '\x1e5e'+ '\x1e61' -> '\x1e60'+ '\x1e63' -> '\x1e62'+ '\x1e65' -> '\x1e64'+ '\x1e67' -> '\x1e66'+ '\x1e69' -> '\x1e68'+ '\x1e6b' -> '\x1e6a'+ '\x1e6d' -> '\x1e6c'+ '\x1e6f' -> '\x1e6e'+ '\x1e71' -> '\x1e70'+ '\x1e73' -> '\x1e72'+ '\x1e75' -> '\x1e74'+ '\x1e77' -> '\x1e76'+ '\x1e79' -> '\x1e78'+ '\x1e7b' -> '\x1e7a'+ '\x1e7d' -> '\x1e7c'+ '\x1e7f' -> '\x1e7e'+ '\x1e81' -> '\x1e80'+ '\x1e83' -> '\x1e82'+ '\x1e85' -> '\x1e84'+ '\x1e87' -> '\x1e86'+ '\x1e89' -> '\x1e88'+ '\x1e8b' -> '\x1e8a'+ '\x1e8d' -> '\x1e8c'+ '\x1e8f' -> '\x1e8e'+ '\x1e91' -> '\x1e90'+ '\x1e93' -> '\x1e92'+ '\x1e95' -> '\x1e94'+ '\x1e9b' -> '\x1e60'+ '\x1ea1' -> '\x1ea0'+ '\x1ea3' -> '\x1ea2'+ '\x1ea5' -> '\x1ea4'+ '\x1ea7' -> '\x1ea6'+ '\x1ea9' -> '\x1ea8'+ '\x1eab' -> '\x1eaa'+ '\x1ead' -> '\x1eac'+ '\x1eaf' -> '\x1eae'+ '\x1eb1' -> '\x1eb0'+ '\x1eb3' -> '\x1eb2'+ '\x1eb5' -> '\x1eb4'+ '\x1eb7' -> '\x1eb6'+ '\x1eb9' -> '\x1eb8'+ '\x1ebb' -> '\x1eba'+ '\x1ebd' -> '\x1ebc'+ '\x1ebf' -> '\x1ebe'+ '\x1ec1' -> '\x1ec0'+ '\x1ec3' -> '\x1ec2'+ '\x1ec5' -> '\x1ec4'+ '\x1ec7' -> '\x1ec6'+ '\x1ec9' -> '\x1ec8'+ '\x1ecb' -> '\x1eca'+ '\x1ecd' -> '\x1ecc'+ '\x1ecf' -> '\x1ece'+ '\x1ed1' -> '\x1ed0'+ '\x1ed3' -> '\x1ed2'+ '\x1ed5' -> '\x1ed4'+ '\x1ed7' -> '\x1ed6'+ '\x1ed9' -> '\x1ed8'+ '\x1edb' -> '\x1eda'+ '\x1edd' -> '\x1edc'+ '\x1edf' -> '\x1ede'+ '\x1ee1' -> '\x1ee0'+ '\x1ee3' -> '\x1ee2'+ '\x1ee5' -> '\x1ee4'+ '\x1ee7' -> '\x1ee6'+ '\x1ee9' -> '\x1ee8'+ '\x1eeb' -> '\x1eea'+ '\x1eed' -> '\x1eec'+ '\x1eef' -> '\x1eee'+ '\x1ef1' -> '\x1ef0'+ '\x1ef3' -> '\x1ef2'+ '\x1ef5' -> '\x1ef4'+ '\x1ef7' -> '\x1ef6'+ '\x1ef9' -> '\x1ef8'+ '\x1efb' -> '\x1efa'+ '\x1efd' -> '\x1efc'+ '\x1eff' -> '\x1efe'+ '\x1f00' -> '\x1f08'+ '\x1f01' -> '\x1f09'+ '\x1f02' -> '\x1f0a'+ '\x1f03' -> '\x1f0b'+ '\x1f04' -> '\x1f0c'+ '\x1f05' -> '\x1f0d'+ '\x1f06' -> '\x1f0e'+ '\x1f07' -> '\x1f0f'+ '\x1f10' -> '\x1f18'+ '\x1f11' -> '\x1f19'+ '\x1f12' -> '\x1f1a'+ '\x1f13' -> '\x1f1b'+ '\x1f14' -> '\x1f1c'+ '\x1f15' -> '\x1f1d'+ '\x1f20' -> '\x1f28'+ '\x1f21' -> '\x1f29'+ '\x1f22' -> '\x1f2a'+ '\x1f23' -> '\x1f2b'+ '\x1f24' -> '\x1f2c'+ '\x1f25' -> '\x1f2d'+ '\x1f26' -> '\x1f2e'+ '\x1f27' -> '\x1f2f'+ '\x1f30' -> '\x1f38'+ '\x1f31' -> '\x1f39'+ '\x1f32' -> '\x1f3a'+ '\x1f33' -> '\x1f3b'+ '\x1f34' -> '\x1f3c'+ '\x1f35' -> '\x1f3d'+ '\x1f36' -> '\x1f3e'+ '\x1f37' -> '\x1f3f'+ '\x1f40' -> '\x1f48'+ '\x1f41' -> '\x1f49'+ '\x1f42' -> '\x1f4a'+ '\x1f43' -> '\x1f4b'+ '\x1f44' -> '\x1f4c'+ '\x1f45' -> '\x1f4d'+ '\x1f51' -> '\x1f59'+ '\x1f53' -> '\x1f5b'+ '\x1f55' -> '\x1f5d'+ '\x1f57' -> '\x1f5f'+ '\x1f60' -> '\x1f68'+ '\x1f61' -> '\x1f69'+ '\x1f62' -> '\x1f6a'+ '\x1f63' -> '\x1f6b'+ '\x1f64' -> '\x1f6c'+ '\x1f65' -> '\x1f6d'+ '\x1f66' -> '\x1f6e'+ '\x1f67' -> '\x1f6f'+ '\x1f70' -> '\x1fba'+ '\x1f71' -> '\x1fbb'+ '\x1f72' -> '\x1fc8'+ '\x1f73' -> '\x1fc9'+ '\x1f74' -> '\x1fca'+ '\x1f75' -> '\x1fcb'+ '\x1f76' -> '\x1fda'+ '\x1f77' -> '\x1fdb'+ '\x1f78' -> '\x1ff8'+ '\x1f79' -> '\x1ff9'+ '\x1f7a' -> '\x1fea'+ '\x1f7b' -> '\x1feb'+ '\x1f7c' -> '\x1ffa'+ '\x1f7d' -> '\x1ffb'+ '\x1f80' -> '\x1f88'+ '\x1f81' -> '\x1f89'+ '\x1f82' -> '\x1f8a'+ '\x1f83' -> '\x1f8b'+ '\x1f84' -> '\x1f8c'+ '\x1f85' -> '\x1f8d'+ '\x1f86' -> '\x1f8e'+ '\x1f87' -> '\x1f8f'+ '\x1f90' -> '\x1f98'+ '\x1f91' -> '\x1f99'+ '\x1f92' -> '\x1f9a'+ '\x1f93' -> '\x1f9b'+ '\x1f94' -> '\x1f9c'+ '\x1f95' -> '\x1f9d'+ '\x1f96' -> '\x1f9e'+ '\x1f97' -> '\x1f9f'+ '\x1fa0' -> '\x1fa8'+ '\x1fa1' -> '\x1fa9'+ '\x1fa2' -> '\x1faa'+ '\x1fa3' -> '\x1fab'+ '\x1fa4' -> '\x1fac'+ '\x1fa5' -> '\x1fad'+ '\x1fa6' -> '\x1fae'+ '\x1fa7' -> '\x1faf'+ '\x1fb0' -> '\x1fb8'+ '\x1fb1' -> '\x1fb9'+ '\x1fb3' -> '\x1fbc'+ '\x1fbe' -> '\x399'+ '\x1fc3' -> '\x1fcc'+ '\x1fd0' -> '\x1fd8'+ '\x1fd1' -> '\x1fd9'+ '\x1fe0' -> '\x1fe8'+ '\x1fe1' -> '\x1fe9'+ '\x1fe5' -> '\x1fec'+ '\x1ff3' -> '\x1ffc'+ '\x214e' -> '\x2132'+ '\x2170' -> '\x2160'+ '\x2171' -> '\x2161'+ '\x2172' -> '\x2162'+ '\x2173' -> '\x2163'+ '\x2174' -> '\x2164'+ '\x2175' -> '\x2165'+ '\x2176' -> '\x2166'+ '\x2177' -> '\x2167'+ '\x2178' -> '\x2168'+ '\x2179' -> '\x2169'+ '\x217a' -> '\x216a'+ '\x217b' -> '\x216b'+ '\x217c' -> '\x216c'+ '\x217d' -> '\x216d'+ '\x217e' -> '\x216e'+ '\x217f' -> '\x216f'+ '\x2184' -> '\x2183'+ '\x24d0' -> '\x24b6'+ '\x24d1' -> '\x24b7'+ '\x24d2' -> '\x24b8'+ '\x24d3' -> '\x24b9'+ '\x24d4' -> '\x24ba'+ '\x24d5' -> '\x24bb'+ '\x24d6' -> '\x24bc'+ '\x24d7' -> '\x24bd'+ '\x24d8' -> '\x24be'+ '\x24d9' -> '\x24bf'+ '\x24da' -> '\x24c0'+ '\x24db' -> '\x24c1'+ '\x24dc' -> '\x24c2'+ '\x24dd' -> '\x24c3'+ '\x24de' -> '\x24c4'+ '\x24df' -> '\x24c5'+ '\x24e0' -> '\x24c6'+ '\x24e1' -> '\x24c7'+ '\x24e2' -> '\x24c8'+ '\x24e3' -> '\x24c9'+ '\x24e4' -> '\x24ca'+ '\x24e5' -> '\x24cb'+ '\x24e6' -> '\x24cc'+ '\x24e7' -> '\x24cd'+ '\x24e8' -> '\x24ce'+ '\x24e9' -> '\x24cf'+ '\x2c30' -> '\x2c00'+ '\x2c31' -> '\x2c01'+ '\x2c32' -> '\x2c02'+ '\x2c33' -> '\x2c03'+ '\x2c34' -> '\x2c04'+ '\x2c35' -> '\x2c05'+ '\x2c36' -> '\x2c06'+ '\x2c37' -> '\x2c07'+ '\x2c38' -> '\x2c08'+ '\x2c39' -> '\x2c09'+ '\x2c3a' -> '\x2c0a'+ '\x2c3b' -> '\x2c0b'+ '\x2c3c' -> '\x2c0c'+ '\x2c3d' -> '\x2c0d'+ '\x2c3e' -> '\x2c0e'+ '\x2c3f' -> '\x2c0f'+ '\x2c40' -> '\x2c10'+ '\x2c41' -> '\x2c11'+ '\x2c42' -> '\x2c12'+ '\x2c43' -> '\x2c13'+ '\x2c44' -> '\x2c14'+ '\x2c45' -> '\x2c15'+ '\x2c46' -> '\x2c16'+ '\x2c47' -> '\x2c17'+ '\x2c48' -> '\x2c18'+ '\x2c49' -> '\x2c19'+ '\x2c4a' -> '\x2c1a'+ '\x2c4b' -> '\x2c1b'+ '\x2c4c' -> '\x2c1c'+ '\x2c4d' -> '\x2c1d'+ '\x2c4e' -> '\x2c1e'+ '\x2c4f' -> '\x2c1f'+ '\x2c50' -> '\x2c20'+ '\x2c51' -> '\x2c21'+ '\x2c52' -> '\x2c22'+ '\x2c53' -> '\x2c23'+ '\x2c54' -> '\x2c24'+ '\x2c55' -> '\x2c25'+ '\x2c56' -> '\x2c26'+ '\x2c57' -> '\x2c27'+ '\x2c58' -> '\x2c28'+ '\x2c59' -> '\x2c29'+ '\x2c5a' -> '\x2c2a'+ '\x2c5b' -> '\x2c2b'+ '\x2c5c' -> '\x2c2c'+ '\x2c5d' -> '\x2c2d'+ '\x2c5e' -> '\x2c2e'+ '\x2c5f' -> '\x2c2f'+ '\x2c61' -> '\x2c60'+ '\x2c65' -> '\x23a'+ '\x2c66' -> '\x23e'+ '\x2c68' -> '\x2c67'+ '\x2c6a' -> '\x2c69'+ '\x2c6c' -> '\x2c6b'+ '\x2c73' -> '\x2c72'+ '\x2c76' -> '\x2c75'+ '\x2c81' -> '\x2c80'+ '\x2c83' -> '\x2c82'+ '\x2c85' -> '\x2c84'+ '\x2c87' -> '\x2c86'+ '\x2c89' -> '\x2c88'+ '\x2c8b' -> '\x2c8a'+ '\x2c8d' -> '\x2c8c'+ '\x2c8f' -> '\x2c8e'+ '\x2c91' -> '\x2c90'+ '\x2c93' -> '\x2c92'+ '\x2c95' -> '\x2c94'+ '\x2c97' -> '\x2c96'+ '\x2c99' -> '\x2c98'+ '\x2c9b' -> '\x2c9a'+ '\x2c9d' -> '\x2c9c'+ '\x2c9f' -> '\x2c9e'+ '\x2ca1' -> '\x2ca0'+ '\x2ca3' -> '\x2ca2'+ '\x2ca5' -> '\x2ca4'+ '\x2ca7' -> '\x2ca6'+ '\x2ca9' -> '\x2ca8'+ '\x2cab' -> '\x2caa'+ '\x2cad' -> '\x2cac'+ '\x2caf' -> '\x2cae'+ '\x2cb1' -> '\x2cb0'+ '\x2cb3' -> '\x2cb2'+ '\x2cb5' -> '\x2cb4'+ '\x2cb7' -> '\x2cb6'+ '\x2cb9' -> '\x2cb8'+ '\x2cbb' -> '\x2cba'+ '\x2cbd' -> '\x2cbc'+ '\x2cbf' -> '\x2cbe'+ '\x2cc1' -> '\x2cc0'+ '\x2cc3' -> '\x2cc2'+ '\x2cc5' -> '\x2cc4'+ '\x2cc7' -> '\x2cc6'+ '\x2cc9' -> '\x2cc8'+ '\x2ccb' -> '\x2cca'+ '\x2ccd' -> '\x2ccc'+ '\x2ccf' -> '\x2cce'+ '\x2cd1' -> '\x2cd0'+ '\x2cd3' -> '\x2cd2'+ '\x2cd5' -> '\x2cd4'+ '\x2cd7' -> '\x2cd6'+ '\x2cd9' -> '\x2cd8'+ '\x2cdb' -> '\x2cda'+ '\x2cdd' -> '\x2cdc'+ '\x2cdf' -> '\x2cde'+ '\x2ce1' -> '\x2ce0'+ '\x2ce3' -> '\x2ce2'+ '\x2cec' -> '\x2ceb'+ '\x2cee' -> '\x2ced'+ '\x2cf3' -> '\x2cf2'+ '\x2d00' -> '\x10a0'+ '\x2d01' -> '\x10a1'+ '\x2d02' -> '\x10a2'+ '\x2d03' -> '\x10a3'+ '\x2d04' -> '\x10a4'+ '\x2d05' -> '\x10a5'+ '\x2d06' -> '\x10a6'+ '\x2d07' -> '\x10a7'+ '\x2d08' -> '\x10a8'+ '\x2d09' -> '\x10a9'+ '\x2d0a' -> '\x10aa'+ '\x2d0b' -> '\x10ab'+ '\x2d0c' -> '\x10ac'+ '\x2d0d' -> '\x10ad'+ '\x2d0e' -> '\x10ae'+ '\x2d0f' -> '\x10af'+ '\x2d10' -> '\x10b0'+ '\x2d11' -> '\x10b1'+ '\x2d12' -> '\x10b2'+ '\x2d13' -> '\x10b3'+ '\x2d14' -> '\x10b4'+ '\x2d15' -> '\x10b5'+ '\x2d16' -> '\x10b6'+ '\x2d17' -> '\x10b7'+ '\x2d18' -> '\x10b8'+ '\x2d19' -> '\x10b9'+ '\x2d1a' -> '\x10ba'+ '\x2d1b' -> '\x10bb'+ '\x2d1c' -> '\x10bc'+ '\x2d1d' -> '\x10bd'+ '\x2d1e' -> '\x10be'+ '\x2d1f' -> '\x10bf'+ '\x2d20' -> '\x10c0'+ '\x2d21' -> '\x10c1'+ '\x2d22' -> '\x10c2'+ '\x2d23' -> '\x10c3'+ '\x2d24' -> '\x10c4'+ '\x2d25' -> '\x10c5'+ '\x2d27' -> '\x10c7'+ '\x2d2d' -> '\x10cd'+ '\xa641' -> '\xa640'+ '\xa643' -> '\xa642'+ '\xa645' -> '\xa644'+ '\xa647' -> '\xa646'+ '\xa649' -> '\xa648'+ '\xa64b' -> '\xa64a'+ '\xa64d' -> '\xa64c'+ '\xa64f' -> '\xa64e'+ '\xa651' -> '\xa650'+ '\xa653' -> '\xa652'+ '\xa655' -> '\xa654'+ '\xa657' -> '\xa656'+ '\xa659' -> '\xa658'+ '\xa65b' -> '\xa65a'+ '\xa65d' -> '\xa65c'+ '\xa65f' -> '\xa65e'+ '\xa661' -> '\xa660'+ '\xa663' -> '\xa662'+ '\xa665' -> '\xa664'+ '\xa667' -> '\xa666'+ '\xa669' -> '\xa668'+ '\xa66b' -> '\xa66a'+ '\xa66d' -> '\xa66c'+ '\xa681' -> '\xa680'+ '\xa683' -> '\xa682'+ '\xa685' -> '\xa684'+ '\xa687' -> '\xa686'+ '\xa689' -> '\xa688'+ '\xa68b' -> '\xa68a'+ '\xa68d' -> '\xa68c'+ '\xa68f' -> '\xa68e'+ '\xa691' -> '\xa690'+ '\xa693' -> '\xa692'+ '\xa695' -> '\xa694'+ '\xa697' -> '\xa696'+ '\xa699' -> '\xa698'+ '\xa69b' -> '\xa69a'+ '\xa723' -> '\xa722'+ '\xa725' -> '\xa724'+ '\xa727' -> '\xa726'+ '\xa729' -> '\xa728'+ '\xa72b' -> '\xa72a'+ '\xa72d' -> '\xa72c'+ '\xa72f' -> '\xa72e'+ '\xa733' -> '\xa732'+ '\xa735' -> '\xa734'+ '\xa737' -> '\xa736'+ '\xa739' -> '\xa738'+ '\xa73b' -> '\xa73a'+ '\xa73d' -> '\xa73c'+ '\xa73f' -> '\xa73e'+ '\xa741' -> '\xa740'+ '\xa743' -> '\xa742'+ '\xa745' -> '\xa744'+ '\xa747' -> '\xa746'+ '\xa749' -> '\xa748'+ '\xa74b' -> '\xa74a'+ '\xa74d' -> '\xa74c'+ '\xa74f' -> '\xa74e'+ '\xa751' -> '\xa750'+ '\xa753' -> '\xa752'+ '\xa755' -> '\xa754'+ '\xa757' -> '\xa756'+ '\xa759' -> '\xa758'+ '\xa75b' -> '\xa75a'+ '\xa75d' -> '\xa75c'+ '\xa75f' -> '\xa75e'+ '\xa761' -> '\xa760'+ '\xa763' -> '\xa762'+ '\xa765' -> '\xa764'+ '\xa767' -> '\xa766'+ '\xa769' -> '\xa768'+ '\xa76b' -> '\xa76a'+ '\xa76d' -> '\xa76c'+ '\xa76f' -> '\xa76e'+ '\xa77a' -> '\xa779'+ '\xa77c' -> '\xa77b'+ '\xa77f' -> '\xa77e'+ '\xa781' -> '\xa780'+ '\xa783' -> '\xa782'+ '\xa785' -> '\xa784'+ '\xa787' -> '\xa786'+ '\xa78c' -> '\xa78b'+ '\xa791' -> '\xa790'+ '\xa793' -> '\xa792'+ '\xa794' -> '\xa7c4'+ '\xa797' -> '\xa796'+ '\xa799' -> '\xa798'+ '\xa79b' -> '\xa79a'+ '\xa79d' -> '\xa79c'+ '\xa79f' -> '\xa79e'+ '\xa7a1' -> '\xa7a0'+ '\xa7a3' -> '\xa7a2'+ '\xa7a5' -> '\xa7a4'+ '\xa7a7' -> '\xa7a6'+ '\xa7a9' -> '\xa7a8'+ '\xa7b5' -> '\xa7b4'+ '\xa7b7' -> '\xa7b6'+ '\xa7b9' -> '\xa7b8'+ '\xa7bb' -> '\xa7ba'+ '\xa7bd' -> '\xa7bc'+ '\xa7bf' -> '\xa7be'+ '\xa7c1' -> '\xa7c0'+ '\xa7c3' -> '\xa7c2'+ '\xa7c8' -> '\xa7c7'+ '\xa7ca' -> '\xa7c9'+ '\xa7d1' -> '\xa7d0'+ '\xa7d7' -> '\xa7d6'+ '\xa7d9' -> '\xa7d8'+ '\xa7f6' -> '\xa7f5'+ '\xab53' -> '\xa7b3'+ '\xab70' -> '\x13a0'+ '\xab71' -> '\x13a1'+ '\xab72' -> '\x13a2'+ '\xab73' -> '\x13a3'+ '\xab74' -> '\x13a4'+ '\xab75' -> '\x13a5'+ '\xab76' -> '\x13a6'+ '\xab77' -> '\x13a7'+ '\xab78' -> '\x13a8'+ '\xab79' -> '\x13a9'+ '\xab7a' -> '\x13aa'+ '\xab7b' -> '\x13ab'+ '\xab7c' -> '\x13ac'+ '\xab7d' -> '\x13ad'+ '\xab7e' -> '\x13ae'+ '\xab7f' -> '\x13af'+ '\xab80' -> '\x13b0'+ '\xab81' -> '\x13b1'+ '\xab82' -> '\x13b2'+ '\xab83' -> '\x13b3'+ '\xab84' -> '\x13b4'+ '\xab85' -> '\x13b5'+ '\xab86' -> '\x13b6'+ '\xab87' -> '\x13b7'+ '\xab88' -> '\x13b8'+ '\xab89' -> '\x13b9'+ '\xab8a' -> '\x13ba'+ '\xab8b' -> '\x13bb'+ '\xab8c' -> '\x13bc'+ '\xab8d' -> '\x13bd'+ '\xab8e' -> '\x13be'+ '\xab8f' -> '\x13bf'+ '\xab90' -> '\x13c0'+ '\xab91' -> '\x13c1'+ '\xab92' -> '\x13c2'+ '\xab93' -> '\x13c3'+ '\xab94' -> '\x13c4'+ '\xab95' -> '\x13c5'+ '\xab96' -> '\x13c6'+ '\xab97' -> '\x13c7'+ '\xab98' -> '\x13c8'+ '\xab99' -> '\x13c9'+ '\xab9a' -> '\x13ca'+ '\xab9b' -> '\x13cb'+ '\xab9c' -> '\x13cc'+ '\xab9d' -> '\x13cd'+ '\xab9e' -> '\x13ce'+ '\xab9f' -> '\x13cf'+ '\xaba0' -> '\x13d0'+ '\xaba1' -> '\x13d1'+ '\xaba2' -> '\x13d2'+ '\xaba3' -> '\x13d3'+ '\xaba4' -> '\x13d4'+ '\xaba5' -> '\x13d5'+ '\xaba6' -> '\x13d6'+ '\xaba7' -> '\x13d7'+ '\xaba8' -> '\x13d8'+ '\xaba9' -> '\x13d9'+ '\xabaa' -> '\x13da'+ '\xabab' -> '\x13db'+ '\xabac' -> '\x13dc'+ '\xabad' -> '\x13dd'+ '\xabae' -> '\x13de'+ '\xabaf' -> '\x13df'+ '\xabb0' -> '\x13e0'+ '\xabb1' -> '\x13e1'+ '\xabb2' -> '\x13e2'+ '\xabb3' -> '\x13e3'+ '\xabb4' -> '\x13e4'+ '\xabb5' -> '\x13e5'+ '\xabb6' -> '\x13e6'+ '\xabb7' -> '\x13e7'+ '\xabb8' -> '\x13e8'+ '\xabb9' -> '\x13e9'+ '\xabba' -> '\x13ea'+ '\xabbb' -> '\x13eb'+ '\xabbc' -> '\x13ec'+ '\xabbd' -> '\x13ed'+ '\xabbe' -> '\x13ee'+ '\xabbf' -> '\x13ef'+ '\xff41' -> '\xff21'+ '\xff42' -> '\xff22'+ '\xff43' -> '\xff23'+ '\xff44' -> '\xff24'+ '\xff45' -> '\xff25'+ '\xff46' -> '\xff26'+ '\xff47' -> '\xff27'+ '\xff48' -> '\xff28'+ '\xff49' -> '\xff29'+ '\xff4a' -> '\xff2a'+ '\xff4b' -> '\xff2b'+ '\xff4c' -> '\xff2c'+ '\xff4d' -> '\xff2d'+ '\xff4e' -> '\xff2e'+ '\xff4f' -> '\xff2f'+ '\xff50' -> '\xff30'+ '\xff51' -> '\xff31'+ '\xff52' -> '\xff32'+ '\xff53' -> '\xff33'+ '\xff54' -> '\xff34'+ '\xff55' -> '\xff35'+ '\xff56' -> '\xff36'+ '\xff57' -> '\xff37'+ '\xff58' -> '\xff38'+ '\xff59' -> '\xff39'+ '\xff5a' -> '\xff3a'+ '\x10428' -> '\x10400'+ '\x10429' -> '\x10401'+ '\x1042a' -> '\x10402'+ '\x1042b' -> '\x10403'+ '\x1042c' -> '\x10404'+ '\x1042d' -> '\x10405'+ '\x1042e' -> '\x10406'+ '\x1042f' -> '\x10407'+ '\x10430' -> '\x10408'+ '\x10431' -> '\x10409'+ '\x10432' -> '\x1040a'+ '\x10433' -> '\x1040b'+ '\x10434' -> '\x1040c'+ '\x10435' -> '\x1040d'+ '\x10436' -> '\x1040e'+ '\x10437' -> '\x1040f'+ '\x10438' -> '\x10410'+ '\x10439' -> '\x10411'+ '\x1043a' -> '\x10412'+ '\x1043b' -> '\x10413'+ '\x1043c' -> '\x10414'+ '\x1043d' -> '\x10415'+ '\x1043e' -> '\x10416'+ '\x1043f' -> '\x10417'+ '\x10440' -> '\x10418'+ '\x10441' -> '\x10419'+ '\x10442' -> '\x1041a'+ '\x10443' -> '\x1041b'+ '\x10444' -> '\x1041c'+ '\x10445' -> '\x1041d'+ '\x10446' -> '\x1041e'+ '\x10447' -> '\x1041f'+ '\x10448' -> '\x10420'+ '\x10449' -> '\x10421'+ '\x1044a' -> '\x10422'+ '\x1044b' -> '\x10423'+ '\x1044c' -> '\x10424'+ '\x1044d' -> '\x10425'+ '\x1044e' -> '\x10426'+ '\x1044f' -> '\x10427'+ '\x104d8' -> '\x104b0'+ '\x104d9' -> '\x104b1'+ '\x104da' -> '\x104b2'+ '\x104db' -> '\x104b3'+ '\x104dc' -> '\x104b4'+ '\x104dd' -> '\x104b5'+ '\x104de' -> '\x104b6'+ '\x104df' -> '\x104b7'+ '\x104e0' -> '\x104b8'+ '\x104e1' -> '\x104b9'+ '\x104e2' -> '\x104ba'+ '\x104e3' -> '\x104bb'+ '\x104e4' -> '\x104bc'+ '\x104e5' -> '\x104bd'+ '\x104e6' -> '\x104be'+ '\x104e7' -> '\x104bf'+ '\x104e8' -> '\x104c0'+ '\x104e9' -> '\x104c1'+ '\x104ea' -> '\x104c2'+ '\x104eb' -> '\x104c3'+ '\x104ec' -> '\x104c4'+ '\x104ed' -> '\x104c5'+ '\x104ee' -> '\x104c6'+ '\x104ef' -> '\x104c7'+ '\x104f0' -> '\x104c8'+ '\x104f1' -> '\x104c9'+ '\x104f2' -> '\x104ca'+ '\x104f3' -> '\x104cb'+ '\x104f4' -> '\x104cc'+ '\x104f5' -> '\x104cd'+ '\x104f6' -> '\x104ce'+ '\x104f7' -> '\x104cf'+ '\x104f8' -> '\x104d0'+ '\x104f9' -> '\x104d1'+ '\x104fa' -> '\x104d2'+ '\x104fb' -> '\x104d3'+ '\x10597' -> '\x10570'+ '\x10598' -> '\x10571'+ '\x10599' -> '\x10572'+ '\x1059a' -> '\x10573'+ '\x1059b' -> '\x10574'+ '\x1059c' -> '\x10575'+ '\x1059d' -> '\x10576'+ '\x1059e' -> '\x10577'+ '\x1059f' -> '\x10578'+ '\x105a0' -> '\x10579'+ '\x105a1' -> '\x1057a'+ '\x105a3' -> '\x1057c'+ '\x105a4' -> '\x1057d'+ '\x105a5' -> '\x1057e'+ '\x105a6' -> '\x1057f'+ '\x105a7' -> '\x10580'+ '\x105a8' -> '\x10581'+ '\x105a9' -> '\x10582'+ '\x105aa' -> '\x10583'+ '\x105ab' -> '\x10584'+ '\x105ac' -> '\x10585'+ '\x105ad' -> '\x10586'+ '\x105ae' -> '\x10587'+ '\x105af' -> '\x10588'+ '\x105b0' -> '\x10589'+ '\x105b1' -> '\x1058a'+ '\x105b3' -> '\x1058c'+ '\x105b4' -> '\x1058d'+ '\x105b5' -> '\x1058e'+ '\x105b6' -> '\x1058f'+ '\x105b7' -> '\x10590'+ '\x105b8' -> '\x10591'+ '\x105b9' -> '\x10592'+ '\x105bb' -> '\x10594'+ '\x105bc' -> '\x10595'+ '\x10cc0' -> '\x10c80'+ '\x10cc1' -> '\x10c81'+ '\x10cc2' -> '\x10c82'+ '\x10cc3' -> '\x10c83'+ '\x10cc4' -> '\x10c84'+ '\x10cc5' -> '\x10c85'+ '\x10cc6' -> '\x10c86'+ '\x10cc7' -> '\x10c87'+ '\x10cc8' -> '\x10c88'+ '\x10cc9' -> '\x10c89'+ '\x10cca' -> '\x10c8a'+ '\x10ccb' -> '\x10c8b'+ '\x10ccc' -> '\x10c8c'+ '\x10ccd' -> '\x10c8d'+ '\x10cce' -> '\x10c8e'+ '\x10ccf' -> '\x10c8f'+ '\x10cd0' -> '\x10c90'+ '\x10cd1' -> '\x10c91'+ '\x10cd2' -> '\x10c92'+ '\x10cd3' -> '\x10c93'+ '\x10cd4' -> '\x10c94'+ '\x10cd5' -> '\x10c95'+ '\x10cd6' -> '\x10c96'+ '\x10cd7' -> '\x10c97'+ '\x10cd8' -> '\x10c98'+ '\x10cd9' -> '\x10c99'+ '\x10cda' -> '\x10c9a'+ '\x10cdb' -> '\x10c9b'+ '\x10cdc' -> '\x10c9c'+ '\x10cdd' -> '\x10c9d'+ '\x10cde' -> '\x10c9e'+ '\x10cdf' -> '\x10c9f'+ '\x10ce0' -> '\x10ca0'+ '\x10ce1' -> '\x10ca1'+ '\x10ce2' -> '\x10ca2'+ '\x10ce3' -> '\x10ca3'+ '\x10ce4' -> '\x10ca4'+ '\x10ce5' -> '\x10ca5'+ '\x10ce6' -> '\x10ca6'+ '\x10ce7' -> '\x10ca7'+ '\x10ce8' -> '\x10ca8'+ '\x10ce9' -> '\x10ca9'+ '\x10cea' -> '\x10caa'+ '\x10ceb' -> '\x10cab'+ '\x10cec' -> '\x10cac'+ '\x10ced' -> '\x10cad'+ '\x10cee' -> '\x10cae'+ '\x10cef' -> '\x10caf'+ '\x10cf0' -> '\x10cb0'+ '\x10cf1' -> '\x10cb1'+ '\x10cf2' -> '\x10cb2'+ '\x118c0' -> '\x118a0'+ '\x118c1' -> '\x118a1'+ '\x118c2' -> '\x118a2'+ '\x118c3' -> '\x118a3'+ '\x118c4' -> '\x118a4'+ '\x118c5' -> '\x118a5'+ '\x118c6' -> '\x118a6'+ '\x118c7' -> '\x118a7'+ '\x118c8' -> '\x118a8'+ '\x118c9' -> '\x118a9'+ '\x118ca' -> '\x118aa'+ '\x118cb' -> '\x118ab'+ '\x118cc' -> '\x118ac'+ '\x118cd' -> '\x118ad'+ '\x118ce' -> '\x118ae'+ '\x118cf' -> '\x118af'+ '\x118d0' -> '\x118b0'+ '\x118d1' -> '\x118b1'+ '\x118d2' -> '\x118b2'+ '\x118d3' -> '\x118b3'+ '\x118d4' -> '\x118b4'+ '\x118d5' -> '\x118b5'+ '\x118d6' -> '\x118b6'+ '\x118d7' -> '\x118b7'+ '\x118d8' -> '\x118b8'+ '\x118d9' -> '\x118b9'+ '\x118da' -> '\x118ba'+ '\x118db' -> '\x118bb'+ '\x118dc' -> '\x118bc'+ '\x118dd' -> '\x118bd'+ '\x118de' -> '\x118be'+ '\x118df' -> '\x118bf'+ '\x16e60' -> '\x16e40'+ '\x16e61' -> '\x16e41'+ '\x16e62' -> '\x16e42'+ '\x16e63' -> '\x16e43'+ '\x16e64' -> '\x16e44'+ '\x16e65' -> '\x16e45'+ '\x16e66' -> '\x16e46'+ '\x16e67' -> '\x16e47'+ '\x16e68' -> '\x16e48'+ '\x16e69' -> '\x16e49'+ '\x16e6a' -> '\x16e4a'+ '\x16e6b' -> '\x16e4b'+ '\x16e6c' -> '\x16e4c'+ '\x16e6d' -> '\x16e4d'+ '\x16e6e' -> '\x16e4e'+ '\x16e6f' -> '\x16e4f'+ '\x16e70' -> '\x16e50'+ '\x16e71' -> '\x16e51'+ '\x16e72' -> '\x16e52'+ '\x16e73' -> '\x16e53'+ '\x16e74' -> '\x16e54'+ '\x16e75' -> '\x16e55'+ '\x16e76' -> '\x16e56'+ '\x16e77' -> '\x16e57'+ '\x16e78' -> '\x16e58'+ '\x16e79' -> '\x16e59'+ '\x16e7a' -> '\x16e5a'+ '\x16e7b' -> '\x16e5b'+ '\x16e7c' -> '\x16e5c'+ '\x16e7d' -> '\x16e5d'+ '\x16e7e' -> '\x16e5e'+ '\x16e7f' -> '\x16e5f'+ '\x1e922' -> '\x1e900'+ '\x1e923' -> '\x1e901'+ '\x1e924' -> '\x1e902'+ '\x1e925' -> '\x1e903'+ '\x1e926' -> '\x1e904'+ '\x1e927' -> '\x1e905'+ '\x1e928' -> '\x1e906'+ '\x1e929' -> '\x1e907'+ '\x1e92a' -> '\x1e908'+ '\x1e92b' -> '\x1e909'+ '\x1e92c' -> '\x1e90a'+ '\x1e92d' -> '\x1e90b'+ '\x1e92e' -> '\x1e90c'+ '\x1e92f' -> '\x1e90d'+ '\x1e930' -> '\x1e90e'+ '\x1e931' -> '\x1e90f'+ '\x1e932' -> '\x1e910'+ '\x1e933' -> '\x1e911'+ '\x1e934' -> '\x1e912'+ '\x1e935' -> '\x1e913'+ '\x1e936' -> '\x1e914'+ '\x1e937' -> '\x1e915'+ '\x1e938' -> '\x1e916'+ '\x1e939' -> '\x1e917'+ '\x1e93a' -> '\x1e918'+ '\x1e93b' -> '\x1e919'+ '\x1e93c' -> '\x1e91a'+ '\x1e93d' -> '\x1e91b'+ '\x1e93e' -> '\x1e91c'+ '\x1e93f' -> '\x1e91d'+ '\x1e940' -> '\x1e91e'+ '\x1e941' -> '\x1e91f'+ '\x1e942' -> '\x1e920'+ '\x1e943' -> '\x1e921'+ c -> c
+ GHC/Unicode/Internal/Char/UnicodeData/SimpleUpperCaseMapping.hs view
@@ -0,0 +1,1475 @@+-- DO NOT EDIT: This file is automatically generated by the internal tool ucd2haskell,+-- with data from: https://www.unicode.org/Public/15.0.0/ucd/UnicodeData.txt.++{-# LANGUAGE NoImplicitPrelude, LambdaCase #-}+{-# OPTIONS_HADDOCK hide #-}++-----------------------------------------------------------------------------+-- |+-- Module : GHC.Unicode.Internal.Char.UnicodeData.SimpleUpperCaseMapping+-- Copyright : (c) 2020 Composewell Technologies and Contributors+-- License : BSD-3-Clause+-- Maintainer : streamly@composewell.com+-- Stability : internal+-----------------------------------------------------------------------------++module GHC.Unicode.Internal.Char.UnicodeData.SimpleUpperCaseMapping+(toSimpleUpperCase)+where++import GHC.Base (Char)++{-# NOINLINE toSimpleUpperCase #-}+toSimpleUpperCase :: Char -> Char+toSimpleUpperCase = \case+ '\x61' -> '\x41'+ '\x62' -> '\x42'+ '\x63' -> '\x43'+ '\x64' -> '\x44'+ '\x65' -> '\x45'+ '\x66' -> '\x46'+ '\x67' -> '\x47'+ '\x68' -> '\x48'+ '\x69' -> '\x49'+ '\x6a' -> '\x4a'+ '\x6b' -> '\x4b'+ '\x6c' -> '\x4c'+ '\x6d' -> '\x4d'+ '\x6e' -> '\x4e'+ '\x6f' -> '\x4f'+ '\x70' -> '\x50'+ '\x71' -> '\x51'+ '\x72' -> '\x52'+ '\x73' -> '\x53'+ '\x74' -> '\x54'+ '\x75' -> '\x55'+ '\x76' -> '\x56'+ '\x77' -> '\x57'+ '\x78' -> '\x58'+ '\x79' -> '\x59'+ '\x7a' -> '\x5a'+ '\xb5' -> '\x39c'+ '\xe0' -> '\xc0'+ '\xe1' -> '\xc1'+ '\xe2' -> '\xc2'+ '\xe3' -> '\xc3'+ '\xe4' -> '\xc4'+ '\xe5' -> '\xc5'+ '\xe6' -> '\xc6'+ '\xe7' -> '\xc7'+ '\xe8' -> '\xc8'+ '\xe9' -> '\xc9'+ '\xea' -> '\xca'+ '\xeb' -> '\xcb'+ '\xec' -> '\xcc'+ '\xed' -> '\xcd'+ '\xee' -> '\xce'+ '\xef' -> '\xcf'+ '\xf0' -> '\xd0'+ '\xf1' -> '\xd1'+ '\xf2' -> '\xd2'+ '\xf3' -> '\xd3'+ '\xf4' -> '\xd4'+ '\xf5' -> '\xd5'+ '\xf6' -> '\xd6'+ '\xf8' -> '\xd8'+ '\xf9' -> '\xd9'+ '\xfa' -> '\xda'+ '\xfb' -> '\xdb'+ '\xfc' -> '\xdc'+ '\xfd' -> '\xdd'+ '\xfe' -> '\xde'+ '\xff' -> '\x178'+ '\x101' -> '\x100'+ '\x103' -> '\x102'+ '\x105' -> '\x104'+ '\x107' -> '\x106'+ '\x109' -> '\x108'+ '\x10b' -> '\x10a'+ '\x10d' -> '\x10c'+ '\x10f' -> '\x10e'+ '\x111' -> '\x110'+ '\x113' -> '\x112'+ '\x115' -> '\x114'+ '\x117' -> '\x116'+ '\x119' -> '\x118'+ '\x11b' -> '\x11a'+ '\x11d' -> '\x11c'+ '\x11f' -> '\x11e'+ '\x121' -> '\x120'+ '\x123' -> '\x122'+ '\x125' -> '\x124'+ '\x127' -> '\x126'+ '\x129' -> '\x128'+ '\x12b' -> '\x12a'+ '\x12d' -> '\x12c'+ '\x12f' -> '\x12e'+ '\x131' -> '\x49'+ '\x133' -> '\x132'+ '\x135' -> '\x134'+ '\x137' -> '\x136'+ '\x13a' -> '\x139'+ '\x13c' -> '\x13b'+ '\x13e' -> '\x13d'+ '\x140' -> '\x13f'+ '\x142' -> '\x141'+ '\x144' -> '\x143'+ '\x146' -> '\x145'+ '\x148' -> '\x147'+ '\x14b' -> '\x14a'+ '\x14d' -> '\x14c'+ '\x14f' -> '\x14e'+ '\x151' -> '\x150'+ '\x153' -> '\x152'+ '\x155' -> '\x154'+ '\x157' -> '\x156'+ '\x159' -> '\x158'+ '\x15b' -> '\x15a'+ '\x15d' -> '\x15c'+ '\x15f' -> '\x15e'+ '\x161' -> '\x160'+ '\x163' -> '\x162'+ '\x165' -> '\x164'+ '\x167' -> '\x166'+ '\x169' -> '\x168'+ '\x16b' -> '\x16a'+ '\x16d' -> '\x16c'+ '\x16f' -> '\x16e'+ '\x171' -> '\x170'+ '\x173' -> '\x172'+ '\x175' -> '\x174'+ '\x177' -> '\x176'+ '\x17a' -> '\x179'+ '\x17c' -> '\x17b'+ '\x17e' -> '\x17d'+ '\x17f' -> '\x53'+ '\x180' -> '\x243'+ '\x183' -> '\x182'+ '\x185' -> '\x184'+ '\x188' -> '\x187'+ '\x18c' -> '\x18b'+ '\x192' -> '\x191'+ '\x195' -> '\x1f6'+ '\x199' -> '\x198'+ '\x19a' -> '\x23d'+ '\x19e' -> '\x220'+ '\x1a1' -> '\x1a0'+ '\x1a3' -> '\x1a2'+ '\x1a5' -> '\x1a4'+ '\x1a8' -> '\x1a7'+ '\x1ad' -> '\x1ac'+ '\x1b0' -> '\x1af'+ '\x1b4' -> '\x1b3'+ '\x1b6' -> '\x1b5'+ '\x1b9' -> '\x1b8'+ '\x1bd' -> '\x1bc'+ '\x1bf' -> '\x1f7'+ '\x1c5' -> '\x1c4'+ '\x1c6' -> '\x1c4'+ '\x1c8' -> '\x1c7'+ '\x1c9' -> '\x1c7'+ '\x1cb' -> '\x1ca'+ '\x1cc' -> '\x1ca'+ '\x1ce' -> '\x1cd'+ '\x1d0' -> '\x1cf'+ '\x1d2' -> '\x1d1'+ '\x1d4' -> '\x1d3'+ '\x1d6' -> '\x1d5'+ '\x1d8' -> '\x1d7'+ '\x1da' -> '\x1d9'+ '\x1dc' -> '\x1db'+ '\x1dd' -> '\x18e'+ '\x1df' -> '\x1de'+ '\x1e1' -> '\x1e0'+ '\x1e3' -> '\x1e2'+ '\x1e5' -> '\x1e4'+ '\x1e7' -> '\x1e6'+ '\x1e9' -> '\x1e8'+ '\x1eb' -> '\x1ea'+ '\x1ed' -> '\x1ec'+ '\x1ef' -> '\x1ee'+ '\x1f2' -> '\x1f1'+ '\x1f3' -> '\x1f1'+ '\x1f5' -> '\x1f4'+ '\x1f9' -> '\x1f8'+ '\x1fb' -> '\x1fa'+ '\x1fd' -> '\x1fc'+ '\x1ff' -> '\x1fe'+ '\x201' -> '\x200'+ '\x203' -> '\x202'+ '\x205' -> '\x204'+ '\x207' -> '\x206'+ '\x209' -> '\x208'+ '\x20b' -> '\x20a'+ '\x20d' -> '\x20c'+ '\x20f' -> '\x20e'+ '\x211' -> '\x210'+ '\x213' -> '\x212'+ '\x215' -> '\x214'+ '\x217' -> '\x216'+ '\x219' -> '\x218'+ '\x21b' -> '\x21a'+ '\x21d' -> '\x21c'+ '\x21f' -> '\x21e'+ '\x223' -> '\x222'+ '\x225' -> '\x224'+ '\x227' -> '\x226'+ '\x229' -> '\x228'+ '\x22b' -> '\x22a'+ '\x22d' -> '\x22c'+ '\x22f' -> '\x22e'+ '\x231' -> '\x230'+ '\x233' -> '\x232'+ '\x23c' -> '\x23b'+ '\x23f' -> '\x2c7e'+ '\x240' -> '\x2c7f'+ '\x242' -> '\x241'+ '\x247' -> '\x246'+ '\x249' -> '\x248'+ '\x24b' -> '\x24a'+ '\x24d' -> '\x24c'+ '\x24f' -> '\x24e'+ '\x250' -> '\x2c6f'+ '\x251' -> '\x2c6d'+ '\x252' -> '\x2c70'+ '\x253' -> '\x181'+ '\x254' -> '\x186'+ '\x256' -> '\x189'+ '\x257' -> '\x18a'+ '\x259' -> '\x18f'+ '\x25b' -> '\x190'+ '\x25c' -> '\xa7ab'+ '\x260' -> '\x193'+ '\x261' -> '\xa7ac'+ '\x263' -> '\x194'+ '\x265' -> '\xa78d'+ '\x266' -> '\xa7aa'+ '\x268' -> '\x197'+ '\x269' -> '\x196'+ '\x26a' -> '\xa7ae'+ '\x26b' -> '\x2c62'+ '\x26c' -> '\xa7ad'+ '\x26f' -> '\x19c'+ '\x271' -> '\x2c6e'+ '\x272' -> '\x19d'+ '\x275' -> '\x19f'+ '\x27d' -> '\x2c64'+ '\x280' -> '\x1a6'+ '\x282' -> '\xa7c5'+ '\x283' -> '\x1a9'+ '\x287' -> '\xa7b1'+ '\x288' -> '\x1ae'+ '\x289' -> '\x244'+ '\x28a' -> '\x1b1'+ '\x28b' -> '\x1b2'+ '\x28c' -> '\x245'+ '\x292' -> '\x1b7'+ '\x29d' -> '\xa7b2'+ '\x29e' -> '\xa7b0'+ '\x345' -> '\x399'+ '\x371' -> '\x370'+ '\x373' -> '\x372'+ '\x377' -> '\x376'+ '\x37b' -> '\x3fd'+ '\x37c' -> '\x3fe'+ '\x37d' -> '\x3ff'+ '\x3ac' -> '\x386'+ '\x3ad' -> '\x388'+ '\x3ae' -> '\x389'+ '\x3af' -> '\x38a'+ '\x3b1' -> '\x391'+ '\x3b2' -> '\x392'+ '\x3b3' -> '\x393'+ '\x3b4' -> '\x394'+ '\x3b5' -> '\x395'+ '\x3b6' -> '\x396'+ '\x3b7' -> '\x397'+ '\x3b8' -> '\x398'+ '\x3b9' -> '\x399'+ '\x3ba' -> '\x39a'+ '\x3bb' -> '\x39b'+ '\x3bc' -> '\x39c'+ '\x3bd' -> '\x39d'+ '\x3be' -> '\x39e'+ '\x3bf' -> '\x39f'+ '\x3c0' -> '\x3a0'+ '\x3c1' -> '\x3a1'+ '\x3c2' -> '\x3a3'+ '\x3c3' -> '\x3a3'+ '\x3c4' -> '\x3a4'+ '\x3c5' -> '\x3a5'+ '\x3c6' -> '\x3a6'+ '\x3c7' -> '\x3a7'+ '\x3c8' -> '\x3a8'+ '\x3c9' -> '\x3a9'+ '\x3ca' -> '\x3aa'+ '\x3cb' -> '\x3ab'+ '\x3cc' -> '\x38c'+ '\x3cd' -> '\x38e'+ '\x3ce' -> '\x38f'+ '\x3d0' -> '\x392'+ '\x3d1' -> '\x398'+ '\x3d5' -> '\x3a6'+ '\x3d6' -> '\x3a0'+ '\x3d7' -> '\x3cf'+ '\x3d9' -> '\x3d8'+ '\x3db' -> '\x3da'+ '\x3dd' -> '\x3dc'+ '\x3df' -> '\x3de'+ '\x3e1' -> '\x3e0'+ '\x3e3' -> '\x3e2'+ '\x3e5' -> '\x3e4'+ '\x3e7' -> '\x3e6'+ '\x3e9' -> '\x3e8'+ '\x3eb' -> '\x3ea'+ '\x3ed' -> '\x3ec'+ '\x3ef' -> '\x3ee'+ '\x3f0' -> '\x39a'+ '\x3f1' -> '\x3a1'+ '\x3f2' -> '\x3f9'+ '\x3f3' -> '\x37f'+ '\x3f5' -> '\x395'+ '\x3f8' -> '\x3f7'+ '\x3fb' -> '\x3fa'+ '\x430' -> '\x410'+ '\x431' -> '\x411'+ '\x432' -> '\x412'+ '\x433' -> '\x413'+ '\x434' -> '\x414'+ '\x435' -> '\x415'+ '\x436' -> '\x416'+ '\x437' -> '\x417'+ '\x438' -> '\x418'+ '\x439' -> '\x419'+ '\x43a' -> '\x41a'+ '\x43b' -> '\x41b'+ '\x43c' -> '\x41c'+ '\x43d' -> '\x41d'+ '\x43e' -> '\x41e'+ '\x43f' -> '\x41f'+ '\x440' -> '\x420'+ '\x441' -> '\x421'+ '\x442' -> '\x422'+ '\x443' -> '\x423'+ '\x444' -> '\x424'+ '\x445' -> '\x425'+ '\x446' -> '\x426'+ '\x447' -> '\x427'+ '\x448' -> '\x428'+ '\x449' -> '\x429'+ '\x44a' -> '\x42a'+ '\x44b' -> '\x42b'+ '\x44c' -> '\x42c'+ '\x44d' -> '\x42d'+ '\x44e' -> '\x42e'+ '\x44f' -> '\x42f'+ '\x450' -> '\x400'+ '\x451' -> '\x401'+ '\x452' -> '\x402'+ '\x453' -> '\x403'+ '\x454' -> '\x404'+ '\x455' -> '\x405'+ '\x456' -> '\x406'+ '\x457' -> '\x407'+ '\x458' -> '\x408'+ '\x459' -> '\x409'+ '\x45a' -> '\x40a'+ '\x45b' -> '\x40b'+ '\x45c' -> '\x40c'+ '\x45d' -> '\x40d'+ '\x45e' -> '\x40e'+ '\x45f' -> '\x40f'+ '\x461' -> '\x460'+ '\x463' -> '\x462'+ '\x465' -> '\x464'+ '\x467' -> '\x466'+ '\x469' -> '\x468'+ '\x46b' -> '\x46a'+ '\x46d' -> '\x46c'+ '\x46f' -> '\x46e'+ '\x471' -> '\x470'+ '\x473' -> '\x472'+ '\x475' -> '\x474'+ '\x477' -> '\x476'+ '\x479' -> '\x478'+ '\x47b' -> '\x47a'+ '\x47d' -> '\x47c'+ '\x47f' -> '\x47e'+ '\x481' -> '\x480'+ '\x48b' -> '\x48a'+ '\x48d' -> '\x48c'+ '\x48f' -> '\x48e'+ '\x491' -> '\x490'+ '\x493' -> '\x492'+ '\x495' -> '\x494'+ '\x497' -> '\x496'+ '\x499' -> '\x498'+ '\x49b' -> '\x49a'+ '\x49d' -> '\x49c'+ '\x49f' -> '\x49e'+ '\x4a1' -> '\x4a0'+ '\x4a3' -> '\x4a2'+ '\x4a5' -> '\x4a4'+ '\x4a7' -> '\x4a6'+ '\x4a9' -> '\x4a8'+ '\x4ab' -> '\x4aa'+ '\x4ad' -> '\x4ac'+ '\x4af' -> '\x4ae'+ '\x4b1' -> '\x4b0'+ '\x4b3' -> '\x4b2'+ '\x4b5' -> '\x4b4'+ '\x4b7' -> '\x4b6'+ '\x4b9' -> '\x4b8'+ '\x4bb' -> '\x4ba'+ '\x4bd' -> '\x4bc'+ '\x4bf' -> '\x4be'+ '\x4c2' -> '\x4c1'+ '\x4c4' -> '\x4c3'+ '\x4c6' -> '\x4c5'+ '\x4c8' -> '\x4c7'+ '\x4ca' -> '\x4c9'+ '\x4cc' -> '\x4cb'+ '\x4ce' -> '\x4cd'+ '\x4cf' -> '\x4c0'+ '\x4d1' -> '\x4d0'+ '\x4d3' -> '\x4d2'+ '\x4d5' -> '\x4d4'+ '\x4d7' -> '\x4d6'+ '\x4d9' -> '\x4d8'+ '\x4db' -> '\x4da'+ '\x4dd' -> '\x4dc'+ '\x4df' -> '\x4de'+ '\x4e1' -> '\x4e0'+ '\x4e3' -> '\x4e2'+ '\x4e5' -> '\x4e4'+ '\x4e7' -> '\x4e6'+ '\x4e9' -> '\x4e8'+ '\x4eb' -> '\x4ea'+ '\x4ed' -> '\x4ec'+ '\x4ef' -> '\x4ee'+ '\x4f1' -> '\x4f0'+ '\x4f3' -> '\x4f2'+ '\x4f5' -> '\x4f4'+ '\x4f7' -> '\x4f6'+ '\x4f9' -> '\x4f8'+ '\x4fb' -> '\x4fa'+ '\x4fd' -> '\x4fc'+ '\x4ff' -> '\x4fe'+ '\x501' -> '\x500'+ '\x503' -> '\x502'+ '\x505' -> '\x504'+ '\x507' -> '\x506'+ '\x509' -> '\x508'+ '\x50b' -> '\x50a'+ '\x50d' -> '\x50c'+ '\x50f' -> '\x50e'+ '\x511' -> '\x510'+ '\x513' -> '\x512'+ '\x515' -> '\x514'+ '\x517' -> '\x516'+ '\x519' -> '\x518'+ '\x51b' -> '\x51a'+ '\x51d' -> '\x51c'+ '\x51f' -> '\x51e'+ '\x521' -> '\x520'+ '\x523' -> '\x522'+ '\x525' -> '\x524'+ '\x527' -> '\x526'+ '\x529' -> '\x528'+ '\x52b' -> '\x52a'+ '\x52d' -> '\x52c'+ '\x52f' -> '\x52e'+ '\x561' -> '\x531'+ '\x562' -> '\x532'+ '\x563' -> '\x533'+ '\x564' -> '\x534'+ '\x565' -> '\x535'+ '\x566' -> '\x536'+ '\x567' -> '\x537'+ '\x568' -> '\x538'+ '\x569' -> '\x539'+ '\x56a' -> '\x53a'+ '\x56b' -> '\x53b'+ '\x56c' -> '\x53c'+ '\x56d' -> '\x53d'+ '\x56e' -> '\x53e'+ '\x56f' -> '\x53f'+ '\x570' -> '\x540'+ '\x571' -> '\x541'+ '\x572' -> '\x542'+ '\x573' -> '\x543'+ '\x574' -> '\x544'+ '\x575' -> '\x545'+ '\x576' -> '\x546'+ '\x577' -> '\x547'+ '\x578' -> '\x548'+ '\x579' -> '\x549'+ '\x57a' -> '\x54a'+ '\x57b' -> '\x54b'+ '\x57c' -> '\x54c'+ '\x57d' -> '\x54d'+ '\x57e' -> '\x54e'+ '\x57f' -> '\x54f'+ '\x580' -> '\x550'+ '\x581' -> '\x551'+ '\x582' -> '\x552'+ '\x583' -> '\x553'+ '\x584' -> '\x554'+ '\x585' -> '\x555'+ '\x586' -> '\x556'+ '\x10d0' -> '\x1c90'+ '\x10d1' -> '\x1c91'+ '\x10d2' -> '\x1c92'+ '\x10d3' -> '\x1c93'+ '\x10d4' -> '\x1c94'+ '\x10d5' -> '\x1c95'+ '\x10d6' -> '\x1c96'+ '\x10d7' -> '\x1c97'+ '\x10d8' -> '\x1c98'+ '\x10d9' -> '\x1c99'+ '\x10da' -> '\x1c9a'+ '\x10db' -> '\x1c9b'+ '\x10dc' -> '\x1c9c'+ '\x10dd' -> '\x1c9d'+ '\x10de' -> '\x1c9e'+ '\x10df' -> '\x1c9f'+ '\x10e0' -> '\x1ca0'+ '\x10e1' -> '\x1ca1'+ '\x10e2' -> '\x1ca2'+ '\x10e3' -> '\x1ca3'+ '\x10e4' -> '\x1ca4'+ '\x10e5' -> '\x1ca5'+ '\x10e6' -> '\x1ca6'+ '\x10e7' -> '\x1ca7'+ '\x10e8' -> '\x1ca8'+ '\x10e9' -> '\x1ca9'+ '\x10ea' -> '\x1caa'+ '\x10eb' -> '\x1cab'+ '\x10ec' -> '\x1cac'+ '\x10ed' -> '\x1cad'+ '\x10ee' -> '\x1cae'+ '\x10ef' -> '\x1caf'+ '\x10f0' -> '\x1cb0'+ '\x10f1' -> '\x1cb1'+ '\x10f2' -> '\x1cb2'+ '\x10f3' -> '\x1cb3'+ '\x10f4' -> '\x1cb4'+ '\x10f5' -> '\x1cb5'+ '\x10f6' -> '\x1cb6'+ '\x10f7' -> '\x1cb7'+ '\x10f8' -> '\x1cb8'+ '\x10f9' -> '\x1cb9'+ '\x10fa' -> '\x1cba'+ '\x10fd' -> '\x1cbd'+ '\x10fe' -> '\x1cbe'+ '\x10ff' -> '\x1cbf'+ '\x13f8' -> '\x13f0'+ '\x13f9' -> '\x13f1'+ '\x13fa' -> '\x13f2'+ '\x13fb' -> '\x13f3'+ '\x13fc' -> '\x13f4'+ '\x13fd' -> '\x13f5'+ '\x1c80' -> '\x412'+ '\x1c81' -> '\x414'+ '\x1c82' -> '\x41e'+ '\x1c83' -> '\x421'+ '\x1c84' -> '\x422'+ '\x1c85' -> '\x422'+ '\x1c86' -> '\x42a'+ '\x1c87' -> '\x462'+ '\x1c88' -> '\xa64a'+ '\x1d79' -> '\xa77d'+ '\x1d7d' -> '\x2c63'+ '\x1d8e' -> '\xa7c6'+ '\x1e01' -> '\x1e00'+ '\x1e03' -> '\x1e02'+ '\x1e05' -> '\x1e04'+ '\x1e07' -> '\x1e06'+ '\x1e09' -> '\x1e08'+ '\x1e0b' -> '\x1e0a'+ '\x1e0d' -> '\x1e0c'+ '\x1e0f' -> '\x1e0e'+ '\x1e11' -> '\x1e10'+ '\x1e13' -> '\x1e12'+ '\x1e15' -> '\x1e14'+ '\x1e17' -> '\x1e16'+ '\x1e19' -> '\x1e18'+ '\x1e1b' -> '\x1e1a'+ '\x1e1d' -> '\x1e1c'+ '\x1e1f' -> '\x1e1e'+ '\x1e21' -> '\x1e20'+ '\x1e23' -> '\x1e22'+ '\x1e25' -> '\x1e24'+ '\x1e27' -> '\x1e26'+ '\x1e29' -> '\x1e28'+ '\x1e2b' -> '\x1e2a'+ '\x1e2d' -> '\x1e2c'+ '\x1e2f' -> '\x1e2e'+ '\x1e31' -> '\x1e30'+ '\x1e33' -> '\x1e32'+ '\x1e35' -> '\x1e34'+ '\x1e37' -> '\x1e36'+ '\x1e39' -> '\x1e38'+ '\x1e3b' -> '\x1e3a'+ '\x1e3d' -> '\x1e3c'+ '\x1e3f' -> '\x1e3e'+ '\x1e41' -> '\x1e40'+ '\x1e43' -> '\x1e42'+ '\x1e45' -> '\x1e44'+ '\x1e47' -> '\x1e46'+ '\x1e49' -> '\x1e48'+ '\x1e4b' -> '\x1e4a'+ '\x1e4d' -> '\x1e4c'+ '\x1e4f' -> '\x1e4e'+ '\x1e51' -> '\x1e50'+ '\x1e53' -> '\x1e52'+ '\x1e55' -> '\x1e54'+ '\x1e57' -> '\x1e56'+ '\x1e59' -> '\x1e58'+ '\x1e5b' -> '\x1e5a'+ '\x1e5d' -> '\x1e5c'+ '\x1e5f' -> '\x1e5e'+ '\x1e61' -> '\x1e60'+ '\x1e63' -> '\x1e62'+ '\x1e65' -> '\x1e64'+ '\x1e67' -> '\x1e66'+ '\x1e69' -> '\x1e68'+ '\x1e6b' -> '\x1e6a'+ '\x1e6d' -> '\x1e6c'+ '\x1e6f' -> '\x1e6e'+ '\x1e71' -> '\x1e70'+ '\x1e73' -> '\x1e72'+ '\x1e75' -> '\x1e74'+ '\x1e77' -> '\x1e76'+ '\x1e79' -> '\x1e78'+ '\x1e7b' -> '\x1e7a'+ '\x1e7d' -> '\x1e7c'+ '\x1e7f' -> '\x1e7e'+ '\x1e81' -> '\x1e80'+ '\x1e83' -> '\x1e82'+ '\x1e85' -> '\x1e84'+ '\x1e87' -> '\x1e86'+ '\x1e89' -> '\x1e88'+ '\x1e8b' -> '\x1e8a'+ '\x1e8d' -> '\x1e8c'+ '\x1e8f' -> '\x1e8e'+ '\x1e91' -> '\x1e90'+ '\x1e93' -> '\x1e92'+ '\x1e95' -> '\x1e94'+ '\x1e9b' -> '\x1e60'+ '\x1ea1' -> '\x1ea0'+ '\x1ea3' -> '\x1ea2'+ '\x1ea5' -> '\x1ea4'+ '\x1ea7' -> '\x1ea6'+ '\x1ea9' -> '\x1ea8'+ '\x1eab' -> '\x1eaa'+ '\x1ead' -> '\x1eac'+ '\x1eaf' -> '\x1eae'+ '\x1eb1' -> '\x1eb0'+ '\x1eb3' -> '\x1eb2'+ '\x1eb5' -> '\x1eb4'+ '\x1eb7' -> '\x1eb6'+ '\x1eb9' -> '\x1eb8'+ '\x1ebb' -> '\x1eba'+ '\x1ebd' -> '\x1ebc'+ '\x1ebf' -> '\x1ebe'+ '\x1ec1' -> '\x1ec0'+ '\x1ec3' -> '\x1ec2'+ '\x1ec5' -> '\x1ec4'+ '\x1ec7' -> '\x1ec6'+ '\x1ec9' -> '\x1ec8'+ '\x1ecb' -> '\x1eca'+ '\x1ecd' -> '\x1ecc'+ '\x1ecf' -> '\x1ece'+ '\x1ed1' -> '\x1ed0'+ '\x1ed3' -> '\x1ed2'+ '\x1ed5' -> '\x1ed4'+ '\x1ed7' -> '\x1ed6'+ '\x1ed9' -> '\x1ed8'+ '\x1edb' -> '\x1eda'+ '\x1edd' -> '\x1edc'+ '\x1edf' -> '\x1ede'+ '\x1ee1' -> '\x1ee0'+ '\x1ee3' -> '\x1ee2'+ '\x1ee5' -> '\x1ee4'+ '\x1ee7' -> '\x1ee6'+ '\x1ee9' -> '\x1ee8'+ '\x1eeb' -> '\x1eea'+ '\x1eed' -> '\x1eec'+ '\x1eef' -> '\x1eee'+ '\x1ef1' -> '\x1ef0'+ '\x1ef3' -> '\x1ef2'+ '\x1ef5' -> '\x1ef4'+ '\x1ef7' -> '\x1ef6'+ '\x1ef9' -> '\x1ef8'+ '\x1efb' -> '\x1efa'+ '\x1efd' -> '\x1efc'+ '\x1eff' -> '\x1efe'+ '\x1f00' -> '\x1f08'+ '\x1f01' -> '\x1f09'+ '\x1f02' -> '\x1f0a'+ '\x1f03' -> '\x1f0b'+ '\x1f04' -> '\x1f0c'+ '\x1f05' -> '\x1f0d'+ '\x1f06' -> '\x1f0e'+ '\x1f07' -> '\x1f0f'+ '\x1f10' -> '\x1f18'+ '\x1f11' -> '\x1f19'+ '\x1f12' -> '\x1f1a'+ '\x1f13' -> '\x1f1b'+ '\x1f14' -> '\x1f1c'+ '\x1f15' -> '\x1f1d'+ '\x1f20' -> '\x1f28'+ '\x1f21' -> '\x1f29'+ '\x1f22' -> '\x1f2a'+ '\x1f23' -> '\x1f2b'+ '\x1f24' -> '\x1f2c'+ '\x1f25' -> '\x1f2d'+ '\x1f26' -> '\x1f2e'+ '\x1f27' -> '\x1f2f'+ '\x1f30' -> '\x1f38'+ '\x1f31' -> '\x1f39'+ '\x1f32' -> '\x1f3a'+ '\x1f33' -> '\x1f3b'+ '\x1f34' -> '\x1f3c'+ '\x1f35' -> '\x1f3d'+ '\x1f36' -> '\x1f3e'+ '\x1f37' -> '\x1f3f'+ '\x1f40' -> '\x1f48'+ '\x1f41' -> '\x1f49'+ '\x1f42' -> '\x1f4a'+ '\x1f43' -> '\x1f4b'+ '\x1f44' -> '\x1f4c'+ '\x1f45' -> '\x1f4d'+ '\x1f51' -> '\x1f59'+ '\x1f53' -> '\x1f5b'+ '\x1f55' -> '\x1f5d'+ '\x1f57' -> '\x1f5f'+ '\x1f60' -> '\x1f68'+ '\x1f61' -> '\x1f69'+ '\x1f62' -> '\x1f6a'+ '\x1f63' -> '\x1f6b'+ '\x1f64' -> '\x1f6c'+ '\x1f65' -> '\x1f6d'+ '\x1f66' -> '\x1f6e'+ '\x1f67' -> '\x1f6f'+ '\x1f70' -> '\x1fba'+ '\x1f71' -> '\x1fbb'+ '\x1f72' -> '\x1fc8'+ '\x1f73' -> '\x1fc9'+ '\x1f74' -> '\x1fca'+ '\x1f75' -> '\x1fcb'+ '\x1f76' -> '\x1fda'+ '\x1f77' -> '\x1fdb'+ '\x1f78' -> '\x1ff8'+ '\x1f79' -> '\x1ff9'+ '\x1f7a' -> '\x1fea'+ '\x1f7b' -> '\x1feb'+ '\x1f7c' -> '\x1ffa'+ '\x1f7d' -> '\x1ffb'+ '\x1f80' -> '\x1f88'+ '\x1f81' -> '\x1f89'+ '\x1f82' -> '\x1f8a'+ '\x1f83' -> '\x1f8b'+ '\x1f84' -> '\x1f8c'+ '\x1f85' -> '\x1f8d'+ '\x1f86' -> '\x1f8e'+ '\x1f87' -> '\x1f8f'+ '\x1f90' -> '\x1f98'+ '\x1f91' -> '\x1f99'+ '\x1f92' -> '\x1f9a'+ '\x1f93' -> '\x1f9b'+ '\x1f94' -> '\x1f9c'+ '\x1f95' -> '\x1f9d'+ '\x1f96' -> '\x1f9e'+ '\x1f97' -> '\x1f9f'+ '\x1fa0' -> '\x1fa8'+ '\x1fa1' -> '\x1fa9'+ '\x1fa2' -> '\x1faa'+ '\x1fa3' -> '\x1fab'+ '\x1fa4' -> '\x1fac'+ '\x1fa5' -> '\x1fad'+ '\x1fa6' -> '\x1fae'+ '\x1fa7' -> '\x1faf'+ '\x1fb0' -> '\x1fb8'+ '\x1fb1' -> '\x1fb9'+ '\x1fb3' -> '\x1fbc'+ '\x1fbe' -> '\x399'+ '\x1fc3' -> '\x1fcc'+ '\x1fd0' -> '\x1fd8'+ '\x1fd1' -> '\x1fd9'+ '\x1fe0' -> '\x1fe8'+ '\x1fe1' -> '\x1fe9'+ '\x1fe5' -> '\x1fec'+ '\x1ff3' -> '\x1ffc'+ '\x214e' -> '\x2132'+ '\x2170' -> '\x2160'+ '\x2171' -> '\x2161'+ '\x2172' -> '\x2162'+ '\x2173' -> '\x2163'+ '\x2174' -> '\x2164'+ '\x2175' -> '\x2165'+ '\x2176' -> '\x2166'+ '\x2177' -> '\x2167'+ '\x2178' -> '\x2168'+ '\x2179' -> '\x2169'+ '\x217a' -> '\x216a'+ '\x217b' -> '\x216b'+ '\x217c' -> '\x216c'+ '\x217d' -> '\x216d'+ '\x217e' -> '\x216e'+ '\x217f' -> '\x216f'+ '\x2184' -> '\x2183'+ '\x24d0' -> '\x24b6'+ '\x24d1' -> '\x24b7'+ '\x24d2' -> '\x24b8'+ '\x24d3' -> '\x24b9'+ '\x24d4' -> '\x24ba'+ '\x24d5' -> '\x24bb'+ '\x24d6' -> '\x24bc'+ '\x24d7' -> '\x24bd'+ '\x24d8' -> '\x24be'+ '\x24d9' -> '\x24bf'+ '\x24da' -> '\x24c0'+ '\x24db' -> '\x24c1'+ '\x24dc' -> '\x24c2'+ '\x24dd' -> '\x24c3'+ '\x24de' -> '\x24c4'+ '\x24df' -> '\x24c5'+ '\x24e0' -> '\x24c6'+ '\x24e1' -> '\x24c7'+ '\x24e2' -> '\x24c8'+ '\x24e3' -> '\x24c9'+ '\x24e4' -> '\x24ca'+ '\x24e5' -> '\x24cb'+ '\x24e6' -> '\x24cc'+ '\x24e7' -> '\x24cd'+ '\x24e8' -> '\x24ce'+ '\x24e9' -> '\x24cf'+ '\x2c30' -> '\x2c00'+ '\x2c31' -> '\x2c01'+ '\x2c32' -> '\x2c02'+ '\x2c33' -> '\x2c03'+ '\x2c34' -> '\x2c04'+ '\x2c35' -> '\x2c05'+ '\x2c36' -> '\x2c06'+ '\x2c37' -> '\x2c07'+ '\x2c38' -> '\x2c08'+ '\x2c39' -> '\x2c09'+ '\x2c3a' -> '\x2c0a'+ '\x2c3b' -> '\x2c0b'+ '\x2c3c' -> '\x2c0c'+ '\x2c3d' -> '\x2c0d'+ '\x2c3e' -> '\x2c0e'+ '\x2c3f' -> '\x2c0f'+ '\x2c40' -> '\x2c10'+ '\x2c41' -> '\x2c11'+ '\x2c42' -> '\x2c12'+ '\x2c43' -> '\x2c13'+ '\x2c44' -> '\x2c14'+ '\x2c45' -> '\x2c15'+ '\x2c46' -> '\x2c16'+ '\x2c47' -> '\x2c17'+ '\x2c48' -> '\x2c18'+ '\x2c49' -> '\x2c19'+ '\x2c4a' -> '\x2c1a'+ '\x2c4b' -> '\x2c1b'+ '\x2c4c' -> '\x2c1c'+ '\x2c4d' -> '\x2c1d'+ '\x2c4e' -> '\x2c1e'+ '\x2c4f' -> '\x2c1f'+ '\x2c50' -> '\x2c20'+ '\x2c51' -> '\x2c21'+ '\x2c52' -> '\x2c22'+ '\x2c53' -> '\x2c23'+ '\x2c54' -> '\x2c24'+ '\x2c55' -> '\x2c25'+ '\x2c56' -> '\x2c26'+ '\x2c57' -> '\x2c27'+ '\x2c58' -> '\x2c28'+ '\x2c59' -> '\x2c29'+ '\x2c5a' -> '\x2c2a'+ '\x2c5b' -> '\x2c2b'+ '\x2c5c' -> '\x2c2c'+ '\x2c5d' -> '\x2c2d'+ '\x2c5e' -> '\x2c2e'+ '\x2c5f' -> '\x2c2f'+ '\x2c61' -> '\x2c60'+ '\x2c65' -> '\x23a'+ '\x2c66' -> '\x23e'+ '\x2c68' -> '\x2c67'+ '\x2c6a' -> '\x2c69'+ '\x2c6c' -> '\x2c6b'+ '\x2c73' -> '\x2c72'+ '\x2c76' -> '\x2c75'+ '\x2c81' -> '\x2c80'+ '\x2c83' -> '\x2c82'+ '\x2c85' -> '\x2c84'+ '\x2c87' -> '\x2c86'+ '\x2c89' -> '\x2c88'+ '\x2c8b' -> '\x2c8a'+ '\x2c8d' -> '\x2c8c'+ '\x2c8f' -> '\x2c8e'+ '\x2c91' -> '\x2c90'+ '\x2c93' -> '\x2c92'+ '\x2c95' -> '\x2c94'+ '\x2c97' -> '\x2c96'+ '\x2c99' -> '\x2c98'+ '\x2c9b' -> '\x2c9a'+ '\x2c9d' -> '\x2c9c'+ '\x2c9f' -> '\x2c9e'+ '\x2ca1' -> '\x2ca0'+ '\x2ca3' -> '\x2ca2'+ '\x2ca5' -> '\x2ca4'+ '\x2ca7' -> '\x2ca6'+ '\x2ca9' -> '\x2ca8'+ '\x2cab' -> '\x2caa'+ '\x2cad' -> '\x2cac'+ '\x2caf' -> '\x2cae'+ '\x2cb1' -> '\x2cb0'+ '\x2cb3' -> '\x2cb2'+ '\x2cb5' -> '\x2cb4'+ '\x2cb7' -> '\x2cb6'+ '\x2cb9' -> '\x2cb8'+ '\x2cbb' -> '\x2cba'+ '\x2cbd' -> '\x2cbc'+ '\x2cbf' -> '\x2cbe'+ '\x2cc1' -> '\x2cc0'+ '\x2cc3' -> '\x2cc2'+ '\x2cc5' -> '\x2cc4'+ '\x2cc7' -> '\x2cc6'+ '\x2cc9' -> '\x2cc8'+ '\x2ccb' -> '\x2cca'+ '\x2ccd' -> '\x2ccc'+ '\x2ccf' -> '\x2cce'+ '\x2cd1' -> '\x2cd0'+ '\x2cd3' -> '\x2cd2'+ '\x2cd5' -> '\x2cd4'+ '\x2cd7' -> '\x2cd6'+ '\x2cd9' -> '\x2cd8'+ '\x2cdb' -> '\x2cda'+ '\x2cdd' -> '\x2cdc'+ '\x2cdf' -> '\x2cde'+ '\x2ce1' -> '\x2ce0'+ '\x2ce3' -> '\x2ce2'+ '\x2cec' -> '\x2ceb'+ '\x2cee' -> '\x2ced'+ '\x2cf3' -> '\x2cf2'+ '\x2d00' -> '\x10a0'+ '\x2d01' -> '\x10a1'+ '\x2d02' -> '\x10a2'+ '\x2d03' -> '\x10a3'+ '\x2d04' -> '\x10a4'+ '\x2d05' -> '\x10a5'+ '\x2d06' -> '\x10a6'+ '\x2d07' -> '\x10a7'+ '\x2d08' -> '\x10a8'+ '\x2d09' -> '\x10a9'+ '\x2d0a' -> '\x10aa'+ '\x2d0b' -> '\x10ab'+ '\x2d0c' -> '\x10ac'+ '\x2d0d' -> '\x10ad'+ '\x2d0e' -> '\x10ae'+ '\x2d0f' -> '\x10af'+ '\x2d10' -> '\x10b0'+ '\x2d11' -> '\x10b1'+ '\x2d12' -> '\x10b2'+ '\x2d13' -> '\x10b3'+ '\x2d14' -> '\x10b4'+ '\x2d15' -> '\x10b5'+ '\x2d16' -> '\x10b6'+ '\x2d17' -> '\x10b7'+ '\x2d18' -> '\x10b8'+ '\x2d19' -> '\x10b9'+ '\x2d1a' -> '\x10ba'+ '\x2d1b' -> '\x10bb'+ '\x2d1c' -> '\x10bc'+ '\x2d1d' -> '\x10bd'+ '\x2d1e' -> '\x10be'+ '\x2d1f' -> '\x10bf'+ '\x2d20' -> '\x10c0'+ '\x2d21' -> '\x10c1'+ '\x2d22' -> '\x10c2'+ '\x2d23' -> '\x10c3'+ '\x2d24' -> '\x10c4'+ '\x2d25' -> '\x10c5'+ '\x2d27' -> '\x10c7'+ '\x2d2d' -> '\x10cd'+ '\xa641' -> '\xa640'+ '\xa643' -> '\xa642'+ '\xa645' -> '\xa644'+ '\xa647' -> '\xa646'+ '\xa649' -> '\xa648'+ '\xa64b' -> '\xa64a'+ '\xa64d' -> '\xa64c'+ '\xa64f' -> '\xa64e'+ '\xa651' -> '\xa650'+ '\xa653' -> '\xa652'+ '\xa655' -> '\xa654'+ '\xa657' -> '\xa656'+ '\xa659' -> '\xa658'+ '\xa65b' -> '\xa65a'+ '\xa65d' -> '\xa65c'+ '\xa65f' -> '\xa65e'+ '\xa661' -> '\xa660'+ '\xa663' -> '\xa662'+ '\xa665' -> '\xa664'+ '\xa667' -> '\xa666'+ '\xa669' -> '\xa668'+ '\xa66b' -> '\xa66a'+ '\xa66d' -> '\xa66c'+ '\xa681' -> '\xa680'+ '\xa683' -> '\xa682'+ '\xa685' -> '\xa684'+ '\xa687' -> '\xa686'+ '\xa689' -> '\xa688'+ '\xa68b' -> '\xa68a'+ '\xa68d' -> '\xa68c'+ '\xa68f' -> '\xa68e'+ '\xa691' -> '\xa690'+ '\xa693' -> '\xa692'+ '\xa695' -> '\xa694'+ '\xa697' -> '\xa696'+ '\xa699' -> '\xa698'+ '\xa69b' -> '\xa69a'+ '\xa723' -> '\xa722'+ '\xa725' -> '\xa724'+ '\xa727' -> '\xa726'+ '\xa729' -> '\xa728'+ '\xa72b' -> '\xa72a'+ '\xa72d' -> '\xa72c'+ '\xa72f' -> '\xa72e'+ '\xa733' -> '\xa732'+ '\xa735' -> '\xa734'+ '\xa737' -> '\xa736'+ '\xa739' -> '\xa738'+ '\xa73b' -> '\xa73a'+ '\xa73d' -> '\xa73c'+ '\xa73f' -> '\xa73e'+ '\xa741' -> '\xa740'+ '\xa743' -> '\xa742'+ '\xa745' -> '\xa744'+ '\xa747' -> '\xa746'+ '\xa749' -> '\xa748'+ '\xa74b' -> '\xa74a'+ '\xa74d' -> '\xa74c'+ '\xa74f' -> '\xa74e'+ '\xa751' -> '\xa750'+ '\xa753' -> '\xa752'+ '\xa755' -> '\xa754'+ '\xa757' -> '\xa756'+ '\xa759' -> '\xa758'+ '\xa75b' -> '\xa75a'+ '\xa75d' -> '\xa75c'+ '\xa75f' -> '\xa75e'+ '\xa761' -> '\xa760'+ '\xa763' -> '\xa762'+ '\xa765' -> '\xa764'+ '\xa767' -> '\xa766'+ '\xa769' -> '\xa768'+ '\xa76b' -> '\xa76a'+ '\xa76d' -> '\xa76c'+ '\xa76f' -> '\xa76e'+ '\xa77a' -> '\xa779'+ '\xa77c' -> '\xa77b'+ '\xa77f' -> '\xa77e'+ '\xa781' -> '\xa780'+ '\xa783' -> '\xa782'+ '\xa785' -> '\xa784'+ '\xa787' -> '\xa786'+ '\xa78c' -> '\xa78b'+ '\xa791' -> '\xa790'+ '\xa793' -> '\xa792'+ '\xa794' -> '\xa7c4'+ '\xa797' -> '\xa796'+ '\xa799' -> '\xa798'+ '\xa79b' -> '\xa79a'+ '\xa79d' -> '\xa79c'+ '\xa79f' -> '\xa79e'+ '\xa7a1' -> '\xa7a0'+ '\xa7a3' -> '\xa7a2'+ '\xa7a5' -> '\xa7a4'+ '\xa7a7' -> '\xa7a6'+ '\xa7a9' -> '\xa7a8'+ '\xa7b5' -> '\xa7b4'+ '\xa7b7' -> '\xa7b6'+ '\xa7b9' -> '\xa7b8'+ '\xa7bb' -> '\xa7ba'+ '\xa7bd' -> '\xa7bc'+ '\xa7bf' -> '\xa7be'+ '\xa7c1' -> '\xa7c0'+ '\xa7c3' -> '\xa7c2'+ '\xa7c8' -> '\xa7c7'+ '\xa7ca' -> '\xa7c9'+ '\xa7d1' -> '\xa7d0'+ '\xa7d7' -> '\xa7d6'+ '\xa7d9' -> '\xa7d8'+ '\xa7f6' -> '\xa7f5'+ '\xab53' -> '\xa7b3'+ '\xab70' -> '\x13a0'+ '\xab71' -> '\x13a1'+ '\xab72' -> '\x13a2'+ '\xab73' -> '\x13a3'+ '\xab74' -> '\x13a4'+ '\xab75' -> '\x13a5'+ '\xab76' -> '\x13a6'+ '\xab77' -> '\x13a7'+ '\xab78' -> '\x13a8'+ '\xab79' -> '\x13a9'+ '\xab7a' -> '\x13aa'+ '\xab7b' -> '\x13ab'+ '\xab7c' -> '\x13ac'+ '\xab7d' -> '\x13ad'+ '\xab7e' -> '\x13ae'+ '\xab7f' -> '\x13af'+ '\xab80' -> '\x13b0'+ '\xab81' -> '\x13b1'+ '\xab82' -> '\x13b2'+ '\xab83' -> '\x13b3'+ '\xab84' -> '\x13b4'+ '\xab85' -> '\x13b5'+ '\xab86' -> '\x13b6'+ '\xab87' -> '\x13b7'+ '\xab88' -> '\x13b8'+ '\xab89' -> '\x13b9'+ '\xab8a' -> '\x13ba'+ '\xab8b' -> '\x13bb'+ '\xab8c' -> '\x13bc'+ '\xab8d' -> '\x13bd'+ '\xab8e' -> '\x13be'+ '\xab8f' -> '\x13bf'+ '\xab90' -> '\x13c0'+ '\xab91' -> '\x13c1'+ '\xab92' -> '\x13c2'+ '\xab93' -> '\x13c3'+ '\xab94' -> '\x13c4'+ '\xab95' -> '\x13c5'+ '\xab96' -> '\x13c6'+ '\xab97' -> '\x13c7'+ '\xab98' -> '\x13c8'+ '\xab99' -> '\x13c9'+ '\xab9a' -> '\x13ca'+ '\xab9b' -> '\x13cb'+ '\xab9c' -> '\x13cc'+ '\xab9d' -> '\x13cd'+ '\xab9e' -> '\x13ce'+ '\xab9f' -> '\x13cf'+ '\xaba0' -> '\x13d0'+ '\xaba1' -> '\x13d1'+ '\xaba2' -> '\x13d2'+ '\xaba3' -> '\x13d3'+ '\xaba4' -> '\x13d4'+ '\xaba5' -> '\x13d5'+ '\xaba6' -> '\x13d6'+ '\xaba7' -> '\x13d7'+ '\xaba8' -> '\x13d8'+ '\xaba9' -> '\x13d9'+ '\xabaa' -> '\x13da'+ '\xabab' -> '\x13db'+ '\xabac' -> '\x13dc'+ '\xabad' -> '\x13dd'+ '\xabae' -> '\x13de'+ '\xabaf' -> '\x13df'+ '\xabb0' -> '\x13e0'+ '\xabb1' -> '\x13e1'+ '\xabb2' -> '\x13e2'+ '\xabb3' -> '\x13e3'+ '\xabb4' -> '\x13e4'+ '\xabb5' -> '\x13e5'+ '\xabb6' -> '\x13e6'+ '\xabb7' -> '\x13e7'+ '\xabb8' -> '\x13e8'+ '\xabb9' -> '\x13e9'+ '\xabba' -> '\x13ea'+ '\xabbb' -> '\x13eb'+ '\xabbc' -> '\x13ec'+ '\xabbd' -> '\x13ed'+ '\xabbe' -> '\x13ee'+ '\xabbf' -> '\x13ef'+ '\xff41' -> '\xff21'+ '\xff42' -> '\xff22'+ '\xff43' -> '\xff23'+ '\xff44' -> '\xff24'+ '\xff45' -> '\xff25'+ '\xff46' -> '\xff26'+ '\xff47' -> '\xff27'+ '\xff48' -> '\xff28'+ '\xff49' -> '\xff29'+ '\xff4a' -> '\xff2a'+ '\xff4b' -> '\xff2b'+ '\xff4c' -> '\xff2c'+ '\xff4d' -> '\xff2d'+ '\xff4e' -> '\xff2e'+ '\xff4f' -> '\xff2f'+ '\xff50' -> '\xff30'+ '\xff51' -> '\xff31'+ '\xff52' -> '\xff32'+ '\xff53' -> '\xff33'+ '\xff54' -> '\xff34'+ '\xff55' -> '\xff35'+ '\xff56' -> '\xff36'+ '\xff57' -> '\xff37'+ '\xff58' -> '\xff38'+ '\xff59' -> '\xff39'+ '\xff5a' -> '\xff3a'+ '\x10428' -> '\x10400'+ '\x10429' -> '\x10401'+ '\x1042a' -> '\x10402'+ '\x1042b' -> '\x10403'+ '\x1042c' -> '\x10404'+ '\x1042d' -> '\x10405'+ '\x1042e' -> '\x10406'+ '\x1042f' -> '\x10407'+ '\x10430' -> '\x10408'+ '\x10431' -> '\x10409'+ '\x10432' -> '\x1040a'+ '\x10433' -> '\x1040b'+ '\x10434' -> '\x1040c'+ '\x10435' -> '\x1040d'+ '\x10436' -> '\x1040e'+ '\x10437' -> '\x1040f'+ '\x10438' -> '\x10410'+ '\x10439' -> '\x10411'+ '\x1043a' -> '\x10412'+ '\x1043b' -> '\x10413'+ '\x1043c' -> '\x10414'+ '\x1043d' -> '\x10415'+ '\x1043e' -> '\x10416'+ '\x1043f' -> '\x10417'+ '\x10440' -> '\x10418'+ '\x10441' -> '\x10419'+ '\x10442' -> '\x1041a'+ '\x10443' -> '\x1041b'+ '\x10444' -> '\x1041c'+ '\x10445' -> '\x1041d'+ '\x10446' -> '\x1041e'+ '\x10447' -> '\x1041f'+ '\x10448' -> '\x10420'+ '\x10449' -> '\x10421'+ '\x1044a' -> '\x10422'+ '\x1044b' -> '\x10423'+ '\x1044c' -> '\x10424'+ '\x1044d' -> '\x10425'+ '\x1044e' -> '\x10426'+ '\x1044f' -> '\x10427'+ '\x104d8' -> '\x104b0'+ '\x104d9' -> '\x104b1'+ '\x104da' -> '\x104b2'+ '\x104db' -> '\x104b3'+ '\x104dc' -> '\x104b4'+ '\x104dd' -> '\x104b5'+ '\x104de' -> '\x104b6'+ '\x104df' -> '\x104b7'+ '\x104e0' -> '\x104b8'+ '\x104e1' -> '\x104b9'+ '\x104e2' -> '\x104ba'+ '\x104e3' -> '\x104bb'+ '\x104e4' -> '\x104bc'+ '\x104e5' -> '\x104bd'+ '\x104e6' -> '\x104be'+ '\x104e7' -> '\x104bf'+ '\x104e8' -> '\x104c0'+ '\x104e9' -> '\x104c1'+ '\x104ea' -> '\x104c2'+ '\x104eb' -> '\x104c3'+ '\x104ec' -> '\x104c4'+ '\x104ed' -> '\x104c5'+ '\x104ee' -> '\x104c6'+ '\x104ef' -> '\x104c7'+ '\x104f0' -> '\x104c8'+ '\x104f1' -> '\x104c9'+ '\x104f2' -> '\x104ca'+ '\x104f3' -> '\x104cb'+ '\x104f4' -> '\x104cc'+ '\x104f5' -> '\x104cd'+ '\x104f6' -> '\x104ce'+ '\x104f7' -> '\x104cf'+ '\x104f8' -> '\x104d0'+ '\x104f9' -> '\x104d1'+ '\x104fa' -> '\x104d2'+ '\x104fb' -> '\x104d3'+ '\x10597' -> '\x10570'+ '\x10598' -> '\x10571'+ '\x10599' -> '\x10572'+ '\x1059a' -> '\x10573'+ '\x1059b' -> '\x10574'+ '\x1059c' -> '\x10575'+ '\x1059d' -> '\x10576'+ '\x1059e' -> '\x10577'+ '\x1059f' -> '\x10578'+ '\x105a0' -> '\x10579'+ '\x105a1' -> '\x1057a'+ '\x105a3' -> '\x1057c'+ '\x105a4' -> '\x1057d'+ '\x105a5' -> '\x1057e'+ '\x105a6' -> '\x1057f'+ '\x105a7' -> '\x10580'+ '\x105a8' -> '\x10581'+ '\x105a9' -> '\x10582'+ '\x105aa' -> '\x10583'+ '\x105ab' -> '\x10584'+ '\x105ac' -> '\x10585'+ '\x105ad' -> '\x10586'+ '\x105ae' -> '\x10587'+ '\x105af' -> '\x10588'+ '\x105b0' -> '\x10589'+ '\x105b1' -> '\x1058a'+ '\x105b3' -> '\x1058c'+ '\x105b4' -> '\x1058d'+ '\x105b5' -> '\x1058e'+ '\x105b6' -> '\x1058f'+ '\x105b7' -> '\x10590'+ '\x105b8' -> '\x10591'+ '\x105b9' -> '\x10592'+ '\x105bb' -> '\x10594'+ '\x105bc' -> '\x10595'+ '\x10cc0' -> '\x10c80'+ '\x10cc1' -> '\x10c81'+ '\x10cc2' -> '\x10c82'+ '\x10cc3' -> '\x10c83'+ '\x10cc4' -> '\x10c84'+ '\x10cc5' -> '\x10c85'+ '\x10cc6' -> '\x10c86'+ '\x10cc7' -> '\x10c87'+ '\x10cc8' -> '\x10c88'+ '\x10cc9' -> '\x10c89'+ '\x10cca' -> '\x10c8a'+ '\x10ccb' -> '\x10c8b'+ '\x10ccc' -> '\x10c8c'+ '\x10ccd' -> '\x10c8d'+ '\x10cce' -> '\x10c8e'+ '\x10ccf' -> '\x10c8f'+ '\x10cd0' -> '\x10c90'+ '\x10cd1' -> '\x10c91'+ '\x10cd2' -> '\x10c92'+ '\x10cd3' -> '\x10c93'+ '\x10cd4' -> '\x10c94'+ '\x10cd5' -> '\x10c95'+ '\x10cd6' -> '\x10c96'+ '\x10cd7' -> '\x10c97'+ '\x10cd8' -> '\x10c98'+ '\x10cd9' -> '\x10c99'+ '\x10cda' -> '\x10c9a'+ '\x10cdb' -> '\x10c9b'+ '\x10cdc' -> '\x10c9c'+ '\x10cdd' -> '\x10c9d'+ '\x10cde' -> '\x10c9e'+ '\x10cdf' -> '\x10c9f'+ '\x10ce0' -> '\x10ca0'+ '\x10ce1' -> '\x10ca1'+ '\x10ce2' -> '\x10ca2'+ '\x10ce3' -> '\x10ca3'+ '\x10ce4' -> '\x10ca4'+ '\x10ce5' -> '\x10ca5'+ '\x10ce6' -> '\x10ca6'+ '\x10ce7' -> '\x10ca7'+ '\x10ce8' -> '\x10ca8'+ '\x10ce9' -> '\x10ca9'+ '\x10cea' -> '\x10caa'+ '\x10ceb' -> '\x10cab'+ '\x10cec' -> '\x10cac'+ '\x10ced' -> '\x10cad'+ '\x10cee' -> '\x10cae'+ '\x10cef' -> '\x10caf'+ '\x10cf0' -> '\x10cb0'+ '\x10cf1' -> '\x10cb1'+ '\x10cf2' -> '\x10cb2'+ '\x118c0' -> '\x118a0'+ '\x118c1' -> '\x118a1'+ '\x118c2' -> '\x118a2'+ '\x118c3' -> '\x118a3'+ '\x118c4' -> '\x118a4'+ '\x118c5' -> '\x118a5'+ '\x118c6' -> '\x118a6'+ '\x118c7' -> '\x118a7'+ '\x118c8' -> '\x118a8'+ '\x118c9' -> '\x118a9'+ '\x118ca' -> '\x118aa'+ '\x118cb' -> '\x118ab'+ '\x118cc' -> '\x118ac'+ '\x118cd' -> '\x118ad'+ '\x118ce' -> '\x118ae'+ '\x118cf' -> '\x118af'+ '\x118d0' -> '\x118b0'+ '\x118d1' -> '\x118b1'+ '\x118d2' -> '\x118b2'+ '\x118d3' -> '\x118b3'+ '\x118d4' -> '\x118b4'+ '\x118d5' -> '\x118b5'+ '\x118d6' -> '\x118b6'+ '\x118d7' -> '\x118b7'+ '\x118d8' -> '\x118b8'+ '\x118d9' -> '\x118b9'+ '\x118da' -> '\x118ba'+ '\x118db' -> '\x118bb'+ '\x118dc' -> '\x118bc'+ '\x118dd' -> '\x118bd'+ '\x118de' -> '\x118be'+ '\x118df' -> '\x118bf'+ '\x16e60' -> '\x16e40'+ '\x16e61' -> '\x16e41'+ '\x16e62' -> '\x16e42'+ '\x16e63' -> '\x16e43'+ '\x16e64' -> '\x16e44'+ '\x16e65' -> '\x16e45'+ '\x16e66' -> '\x16e46'+ '\x16e67' -> '\x16e47'+ '\x16e68' -> '\x16e48'+ '\x16e69' -> '\x16e49'+ '\x16e6a' -> '\x16e4a'+ '\x16e6b' -> '\x16e4b'+ '\x16e6c' -> '\x16e4c'+ '\x16e6d' -> '\x16e4d'+ '\x16e6e' -> '\x16e4e'+ '\x16e6f' -> '\x16e4f'+ '\x16e70' -> '\x16e50'+ '\x16e71' -> '\x16e51'+ '\x16e72' -> '\x16e52'+ '\x16e73' -> '\x16e53'+ '\x16e74' -> '\x16e54'+ '\x16e75' -> '\x16e55'+ '\x16e76' -> '\x16e56'+ '\x16e77' -> '\x16e57'+ '\x16e78' -> '\x16e58'+ '\x16e79' -> '\x16e59'+ '\x16e7a' -> '\x16e5a'+ '\x16e7b' -> '\x16e5b'+ '\x16e7c' -> '\x16e5c'+ '\x16e7d' -> '\x16e5d'+ '\x16e7e' -> '\x16e5e'+ '\x16e7f' -> '\x16e5f'+ '\x1e922' -> '\x1e900'+ '\x1e923' -> '\x1e901'+ '\x1e924' -> '\x1e902'+ '\x1e925' -> '\x1e903'+ '\x1e926' -> '\x1e904'+ '\x1e927' -> '\x1e905'+ '\x1e928' -> '\x1e906'+ '\x1e929' -> '\x1e907'+ '\x1e92a' -> '\x1e908'+ '\x1e92b' -> '\x1e909'+ '\x1e92c' -> '\x1e90a'+ '\x1e92d' -> '\x1e90b'+ '\x1e92e' -> '\x1e90c'+ '\x1e92f' -> '\x1e90d'+ '\x1e930' -> '\x1e90e'+ '\x1e931' -> '\x1e90f'+ '\x1e932' -> '\x1e910'+ '\x1e933' -> '\x1e911'+ '\x1e934' -> '\x1e912'+ '\x1e935' -> '\x1e913'+ '\x1e936' -> '\x1e914'+ '\x1e937' -> '\x1e915'+ '\x1e938' -> '\x1e916'+ '\x1e939' -> '\x1e917'+ '\x1e93a' -> '\x1e918'+ '\x1e93b' -> '\x1e919'+ '\x1e93c' -> '\x1e91a'+ '\x1e93d' -> '\x1e91b'+ '\x1e93e' -> '\x1e91c'+ '\x1e93f' -> '\x1e91d'+ '\x1e940' -> '\x1e91e'+ '\x1e941' -> '\x1e91f'+ '\x1e942' -> '\x1e920'+ '\x1e943' -> '\x1e921'+ c -> c
+ GHC/Unicode/Internal/Version.hs view
@@ -0,0 +1,26 @@+-- DO NOT EDIT: This file is automatically generated by the internal tool ucd2haskell.++{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_HADDOCK hide #-}++-----------------------------------------------------------------------------+-- |+-- Module : GHC.Unicode.Internal.Version+-- Copyright : (c) 2020 Composewell Technologies and Contributors+-- License : BSD-3-Clause+-- Maintainer : streamly@composewell.com+-- Stability : internal+-----------------------------------------------------------------------------++module GHC.Unicode.Internal.Version+(unicodeVersion)+where++import {-# SOURCE #-} Data.Version++-- | Version of Unicode standard used by @base@:+-- [15.0.0](https://www.unicode.org/versions/Unicode15.0.0/).+--+-- @since 4.15.0.0+unicodeVersion :: Version+unicodeVersion = makeVersion [15, 0, 0]
GHC/Weak.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE BangPatterns #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE UnboxedTuples #-}@@ -25,10 +24,18 @@ mkWeak, deRefWeak, finalize,- runFinalizerBatch++ -- * Handling exceptions+ -- | When an exception is thrown by a finalizer called by the+ -- garbage collector, GHC calls a global handler which can be set with+ -- 'setFinalizerExceptionHandler'. Note that any exceptions thrown by+ -- this handler will be ignored.+ setFinalizerExceptionHandler,+ getFinalizerExceptionHandler ) where import GHC.Base+import GHC.Weak.Finalize {-| A weak pointer object with a key and a value. The value has type @v@.@@ -52,7 +59,7 @@ References from the finalizer to the key are treated in the same way as references from the value to the key: they do not keep the key-alive. A finalizer may therefore ressurrect the key, perhaps by+alive. A finalizer may therefore resurrect the key, perhaps by storing it in the same data structure. The finalizer, and the relationship between the key and the value,@@ -131,25 +138,3 @@ (Weak w1) == (Weak w2) = w1 `sameWeak#` w2 -} ---- run a batch of finalizers from the garbage collector. We're given--- an array of finalizers and the length of the array, and we just--- call each one in turn.------ the IO primitives are inlined by hand here to get the optimal--- code (sigh) --SDM.--runFinalizerBatch :: Int -> Array# (State# RealWorld -> State# RealWorld)- -> IO ()-runFinalizerBatch (I# n) arr =- let go m = IO $ \s ->- case m of- 0# -> (# s, () #)- _ -> let !m' = m -# 1# in- case indexArray# arr m' of { (# io #) ->- case catch# (\p -> (# io p, () #))- (\_ s'' -> (# s'', () #)) s of {- (# s', _ #) -> unIO (go m') s'- }}- in- go n
+ GHC/Weak/Finalize.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE UnboxedTuples #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE Unsafe #-}++module GHC.Weak.Finalize+ ( -- * Handling exceptions+ -- | When an exception is thrown by a finalizer called by the+ -- garbage collector, GHC calls a global handler which can be set with+ -- 'setFinalizerExceptionHandler'. Note that any exceptions thrown by+ -- this handler will be ignored.+ setFinalizerExceptionHandler+ , getFinalizerExceptionHandler+ -- * Internal+ , runFinalizerBatch+ ) where++import GHC.Base+import GHC.Exception+import GHC.IORef+import {-# SOURCE #-} GHC.Conc.Sync (labelThreadByteArray#, myThreadId)+import GHC.IO (catchException, unsafePerformIO)+import GHC.Encoding.UTF8 (utf8EncodeByteArray#)++data ByteArray = ByteArray ByteArray#++-- | The label we use for finalization threads. We manually float this to the+-- top-level to ensure that the ByteArray# can be shared.+label :: ByteArray+label = ByteArray (utf8EncodeByteArray# "weak finalizer thread")++-- | Run a batch of finalizers from the garbage collector. We're given+-- an array of finalizers and the length of the array, and we just+-- call each one in turn.+runFinalizerBatch :: Int+ -> Array# (State# RealWorld -> State# RealWorld)+ -> IO ()+runFinalizerBatch (I# n) arr = do+ tid <- myThreadId+ case label of ByteArray ba# -> labelThreadByteArray# tid ba#+ go n+ where+ getFinalizer :: Int# -> IO ()+ getFinalizer i =+ case indexArray# arr i of+ (# io #) -> IO $ \s ->+ case io s of+ s' -> (# s', () #)++ go :: Int# -> IO ()+ go 0# = return ()+ go i = do+ let i' = i -# 1#+ let finalizer = getFinalizer i'+ finalizer `catchException` handleExc+ go i'++ handleExc :: SomeException -> IO ()+ handleExc se = do+ handleFinalizerExc <- getFinalizerExceptionHandler+ handleFinalizerExc se `catchException` (\(SomeException _) -> return ())++-- See Note [Handling exceptions during Handle finalization] for the+-- motivation for this mechanism.+finalizerExceptionHandler :: IORef (SomeException -> IO ())+finalizerExceptionHandler = unsafePerformIO $ newIORef (const $ return ())+{-# NOINLINE finalizerExceptionHandler #-}++-- | Get the global action called to report exceptions thrown by weak pointer+-- finalizers to the user.+--+-- @since 4.18.0.0+getFinalizerExceptionHandler :: IO (SomeException -> IO ())+getFinalizerExceptionHandler = readIORef finalizerExceptionHandler++-- | Set the global action called to report exceptions thrown by weak pointer+-- finalizers to the user.+--+-- @since 4.18.0.0+setFinalizerExceptionHandler :: (SomeException -> IO ()) -> IO ()+setFinalizerExceptionHandler = writeIORef finalizerExceptionHandler
GHC/Windows.hs view
@@ -21,6 +21,10 @@ ----------------------------------------------------------------------------- module GHC.Windows (+#if defined(javascript_HOST_ARCH)+ ) where++#else -- * Types BOOL, LPBOOL,@@ -236,3 +240,5 @@ dwordsToDdword:: (DWORD,DWORD) -> DDWORD dwordsToDdword (hi,low) = (fromIntegral low) .|. (fromIntegral hi `shiftL` finiteBitSize hi)++#endif
Numeric/Natural.hs view
@@ -19,6 +19,8 @@ module Numeric.Natural ( Natural+ , minusNaturalMaybe ) where import GHC.Num.Natural+import GHC.Natural (minusNaturalMaybe)
Prelude.hs view
@@ -73,7 +73,7 @@ -- ** Monads and functors Functor(fmap, (<$)), (<$>),- Applicative(pure, (<*>), (*>), (<*)),+ Applicative(pure, (<*>), (*>), (<*), liftA2), Monad((>>=), (>>), return), MonadFail(fail), mapM_, sequence_, (=<<),
System/CPUTime.hsc view
@@ -34,6 +34,9 @@ #if defined(mingw32_HOST_OS) import qualified System.CPUTime.Windows as I +#elif defined(javascript_HOST_ARCH)+import qualified System.CPUTime.Javascript as I+ #elif _POSIX_TIMERS > 0 && defined(_POSIX_CPUTIME) && _POSIX_CPUTIME >= 0 import qualified System.CPUTime.Posix.ClockGetTime as I
+ System/CPUTime/Javascript.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE JavaScriptFFI #-}++module System.CPUTime.Javascript+ ( getCPUTime+ , getCpuTimePrecision+ )+where++import qualified System.CPUTime.Unsupported as I++getCpuTimePrecision :: IO Integer+getCpuTimePrecision = toInteger <$> js_cpuTimePrecision++getCPUTime :: IO Integer+getCPUTime = do+ t <- js_getCPUTime+ if t == -1 then I.getCPUTime+ else pure (1000 * round t)++foreign import javascript unsafe+ "(() => { return h$cpuTimePrecision(); })"+ js_cpuTimePrecision :: IO Int++foreign import javascript unsafe+ "(() => { return h$getCPUTime(); })"+ js_getCPUTime :: IO Double
System/CPUTime/Posix/ClockGetTime.hsc view
@@ -2,10 +2,8 @@ #include "HsFFI.h" #include "HsBaseConfig.h"-#if HAVE_TIME_H #include <unistd.h> #include <time.h>-#endif module System.CPUTime.Posix.ClockGetTime ( getCPUTime@@ -42,7 +40,12 @@ foreign import capi unsafe "time.h clock_getres" clock_getres :: CUIntPtr -> Ptr Timespec -> IO CInt foreign import capi unsafe "time.h clock_gettime" clock_gettime :: CUIntPtr -> Ptr Timespec -> IO CInt++#if HAVE_DECL_CLOCK_PROCESS_CPUTIME_ID foreign import capi unsafe "time.h value CLOCK_PROCESS_CPUTIME_ID" cLOCK_PROCESS_CPUTIME_ID :: CUIntPtr+#else+foreign import capi unsafe "time.h value CLOCK_MONOTONIC" cLOCK_PROCESS_CPUTIME_ID :: CUIntPtr+#endif // HAVE_DECL_CLOCK_PROCESS_CPUTIME_ID #else
System/CPUTime/Posix/RUsage.hsc view
@@ -18,6 +18,8 @@ #include <sys/resource.h> #endif +#if HAVE_GETRUSAGE+ getCPUTime :: IO Integer getCPUTime = allocaBytes (#const sizeof(struct rusage)) $ \ p_rusage -> do throwErrnoIfMinus1_ "getrusage" $ getrusage (#const RUSAGE_SELF) p_rusage@@ -40,3 +42,13 @@ return $ round ((1e12::Integer) % fromIntegral clk_tck) foreign import ccall unsafe clk_tck :: CLong++#else++getCPUTime :: IO Integer+getCPUTime = fail "System.CPUTime.Posix.RUsage.getCPUTime"++getCpuTimePrecision :: IO Integer+getCpuTimePrecision = fail "System.CPUTime.Posix.RUsage.getCpuTimePrecision"++#endif
System/CPUTime/Posix/Times.hsc view
@@ -18,6 +18,8 @@ #include <sys/times.h> #endif +#if HAVE_TIMES+ getCPUTime :: IO Integer getCPUTime = allocaBytes (#const sizeof(struct tms)) $ \ p_tms -> do _ <- times p_tms@@ -37,3 +39,13 @@ clockTicks :: Integer clockTicks = fromIntegral clk_tck++#else++getCPUTime :: IO Integer+getCPUTime = fail "System.CPUTime.Posix.Times.getCPUTime"++getCpuTimePrecision :: IO Integer+getCpuTimePrecision = fail "System.CPUTime.Posix.Times.getCpuTimePrecision"++#endif
System/Environment.hs view
@@ -19,7 +19,9 @@ ( getArgs, getProgName,+#if !defined(javascript_HOST_ARCH) executablePath,+#endif getExecutablePath, getEnv, lookupEnv,
System/Environment/ExecutablePath.hsc view
@@ -18,9 +18,18 @@ module System.Environment.ExecutablePath ( getExecutablePath+##if !defined(javascript_HOST_ARCH) , executablePath+##endif ) where +##if defined(javascript_HOST_ARCH)++getExecutablePath :: IO FilePath+getExecutablePath = return "a.jsexe"++##else+ -- The imports are purposely kept completely disjoint to prevent edits -- to one OS implementation from breaking another. @@ -102,6 +111,10 @@ -- Note that for scripts and interactive sessions, the result is the path to -- the interpreter (e.g. ghci.) --+-- Note also that while most operating systems return @Nothing@ if the+-- executable file was deleted/unlinked, some (including NetBSD) return the+-- original path.+-- -- @since 4.17.0.0 executablePath :: Maybe (IO (Maybe FilePath)) @@ -368,3 +381,5 @@ -------------------------------------------------------------------------------- #endif++##endif
System/Exit.hs view
@@ -45,16 +45,14 @@ -- A program that terminates successfully without calling 'exitWith' -- explicitly is treated as if it had called 'exitWith' 'ExitSuccess'. ----- As an 'ExitCode' is not an 'IOError', 'exitWith' bypasses--- the error handling in the 'IO' monad and cannot be intercepted by--- 'catch' from the "Prelude". However it is a 'Control.Exception.SomeException', and can--- be caught using the functions of "Control.Exception". This means--- that cleanup computations added with 'Control.Exception.bracket'--- (from "Control.Exception") are also executed properly on 'exitWith'.+-- As an 'ExitCode' is an 'Control.Exception.Exception', it can be+-- caught using the functions of "Control.Exception". This means that+-- cleanup computations added with 'Control.Exception.bracket' (from+-- "Control.Exception") are also executed properly on 'exitWith'. -- -- Note: in GHC, 'exitWith' should be called from the main program -- thread in order to exit the process. When called from another--- thread, 'exitWith' will throw an 'ExitException' as normal, but the+-- thread, 'exitWith' will throw an 'ExitCode' as normal, but the -- exception will not cause the process itself to exit. -- exitWith :: ExitCode -> IO a
System/Info.hs view
@@ -89,6 +89,8 @@ -- * "powerpc64le" -- * "riscv32" -- * "riscv64"+-- * "loongarch32"+-- * "loongarch64" -- * "rs6000" -- * "s390" -- * "s390x"
System/Posix/Internals.hs view
@@ -26,6 +26,7 @@ module System.Posix.Internals where +#include <ghcplatform.h> #include "HsBaseConfig.h" import System.Posix.Types@@ -263,7 +264,7 @@ foreign import ccall unsafe "HsBase.h __hscore_set_saved_termios" set_saved_termios :: CInt -> (Ptr CTermios) -> IO () -#else+#elif defined(mingw32_HOST_OS) -- 'raw' mode for Win32 means turn off 'line input' (=> buffering and -- character translation for the console.) The Win32 API for doing@@ -312,6 +313,17 @@ foreign import ccall unsafe "consUtils.h is_console__" is_console :: CInt -> IO CInt +#else++setCooked :: FD -> Bool -> IO ()+setCooked _ _ = errorWithoutStackTrace "setCooked"++setEcho :: FD -> Bool -> IO ()+setEcho _ _ = errorWithoutStackTrace "setEcho"++getEcho :: FD -> IO Bool+getEcho _ = errorWithoutStackTrace "getEcho"+ #endif -- ---------------------------------------------------------------------------@@ -356,9 +368,6 @@ type CFilePath = CWString #endif -foreign import ccall unsafe "HsBase.h __hscore_open"- c_open :: CFilePath -> CInt -> CMode -> IO CInt- -- | The same as 'c_safe_open', but an /interruptible operation/ -- as described in "Control.Exception"—it respects `uninterruptibleMask` -- but not `mask`.@@ -367,6 +376,8 @@ -- it's expensive (NFS, FUSE, etc.), and we especially -- need to be able to interrupt a blocking open call. -- See #17912.+--+-- @since 4.16.0.0 c_interruptible_open :: CFilePath -> CInt -> CMode -> IO CInt c_interruptible_open filepath oflags mode = getMaskingState >>= \case@@ -401,15 +412,6 @@ interruptible (IO $ \s -> (# yield# s, () #)) pure open_res -foreign import ccall interruptible "HsBase.h __hscore_open"- c_interruptible_open_ :: CFilePath -> CInt -> CMode -> IO CInt---- | Consult the RTS to find whether it is threaded.-hostIsThreaded :: Bool-hostIsThreaded = rtsIsThreaded_ /= 0--foreign import ccall unsafe "rts_isThreaded" rtsIsThreaded_ :: Int- c_safe_open :: CFilePath -> CInt -> CMode -> IO CInt c_safe_open filepath oflags mode = getMaskingState >>= \case@@ -421,6 +423,27 @@ Unmasked -> c_interruptible_open_ filepath oflags mode _ -> c_safe_open_ filepath oflags mode +-- | Consult the RTS to find whether it is threaded.+--+-- @since 4.16.0.0+hostIsThreaded :: Bool+hostIsThreaded = rtsIsThreaded_ /= 0++#if !defined(javascript_HOST_ARCH)+foreign import ccall unsafe "HsBase.h __hscore_open"+ c_open :: CFilePath -> CInt -> CMode -> IO CInt++-- |+--+-- @since 4.16.0.0+foreign import ccall interruptible "HsBase.h __hscore_open"+ c_interruptible_open_ :: CFilePath -> CInt -> CMode -> IO CInt++-- |+--+-- @since 4.16.0.0+foreign import ccall unsafe "rts_isThreaded" rtsIsThreaded_ :: Int+ foreign import ccall safe "HsBase.h __hscore_open" c_safe_open_ :: CFilePath -> CInt -> CMode -> IO CInt @@ -429,7 +452,145 @@ foreign import ccall unsafe "HsBase.h __hscore_lstat" lstat :: CFilePath -> Ptr CStat -> IO CInt+#endif +#if defined(javascript_HOST_ARCH)++foreign import javascript unsafe "(() => { return rts_isThreaded; })" rtsIsThreaded_ :: Int+foreign import javascript interruptible "(($1_1, $2_2, $2, $c) => { return h$base_access($1_1,$2_2,$2,$c); })"+ c_access :: CString -> CInt -> IO CInt+foreign import javascript interruptible "(($1_1, $2_2, $2, $c) => { return h$base_chmod($1_1,$2_2,$2,$c); })"+ c_chmod :: CString -> CMode -> IO CInt+foreign import javascript interruptible "(($1,$c) => { return h$base_close($1,$c); })"+ c_close :: CInt -> IO CInt+foreign import javascript interruptible "(($1, $c) => { return h$base_creat($1,$c); })"+ c_creat :: CString -> CMode -> IO CInt+foreign import javascript interruptible "(($1, $c) => { return h$base_dup($1, $c); })"+ c_dup :: CInt -> IO CInt+foreign import javascript interruptible "(($1, $2, $c) => { return h$base_dup2($1,$2,$c); })"+ c_dup2 :: CInt -> CInt -> IO CInt+foreign import javascript interruptible "(($1,$2_1,$2_2,$c) => { return h$base_fstat($1,$2_1,$2_2,$c); })" -- fixme wrong type+ c_fstat :: CInt -> Ptr CStat -> IO CInt+foreign import javascript unsafe "(($1) => { return h$base_isatty($1); })"+ c_isatty :: CInt -> IO CInt+foreign import javascript interruptible "(($1,$2_1,$2_2,$3,$c) => { return h$base_lseek($1,$2_1,$2_2,$3,$c); })"+ c_lseek :: CInt -> COff -> CInt -> IO COff+foreign import javascript interruptible "(($1_1,$1_2,$2_1,$2_2,$c) => { return h$base_lstat($1_1,$1_2,$2_1,$2_2,$c); })" -- fixme wrong type+ lstat :: CFilePath -> Ptr CStat -> IO CInt+foreign import javascript interruptible "(($1_1,$1_2,$2,$3,$c) => { return h$base_open($1_1,$1_2,$2,$3,$c); })"+ c_open :: CFilePath -> CInt -> CMode -> IO CInt+foreign import javascript interruptible "(($1_1,$1_2,$2,$3,$c) => { return h$base_open($1_1,$1_2,$2,$3,$c); })"+ c_interruptible_open_ :: CFilePath -> CInt -> CMode -> IO CInt+foreign import javascript interruptible "(($1_1,$1_2,$2,$3,$c) => { return h$base_open($1_1,$1_2,$2,$3,$c); })"+ c_safe_open_ :: CFilePath -> CInt -> CMode -> IO CInt+foreign import javascript interruptible "(($1,$2_1,$2_2,$3,$c) => { return h$base_read($1,$2_1,$2_2,$3,$c); })"+ c_read :: CInt -> Ptr Word8 -> CSize -> IO CSsize+foreign import javascript interruptible "(($1,$2_1,$2_2,$3,$c) => { return h$base_read($1,$2_1,$2_2,$3,$c); })"+ c_safe_read :: CInt -> Ptr Word8 -> CSize -> IO CSsize+foreign import javascript interruptible "(($1_1,$1_2,$2_1,$2_2,$c) => { return h$base_stat($1_1,$1_2,$2_1,$2_2,$c); })" -- fixme wrong type+ c_stat :: CFilePath -> Ptr CStat -> IO CInt+foreign import javascript unsafe "(($1) => { return h$base_umask($1); })"+ c_umask :: CMode -> IO CMode+foreign import javascript interruptible "(($1,$2_1,$2_2,$3,$c) => { return h$base_write($1,$2_1,$2_2,$3,$c); })"+ c_write :: CInt -> Ptr Word8 -> CSize -> IO CSsize+foreign import javascript interruptible "(($1,$2_1,$2_2,$3,$c) => { return h$base_write($1,$2_1,$2_2,$3,$c); })"+ c_safe_write :: CInt -> Ptr Word8 -> CSize -> IO CSsize+foreign import javascript interruptible "(($1,$2_1,$2_2,$c) => { return h$base_ftruncate($1,$2_1,$2_2,$c); })" -- fixme COff+ c_ftruncate :: CInt -> FileOffset -> IO CInt+foreign import javascript interruptible "(($1_1,$1_2,$c) => { return h$base_unlink($1_1,$1_2,$c); })"+ c_unlink :: CString -> IO CInt+foreign import javascript unsafe "(() => { return h$base_getpid; })"+ c_getpid :: IO CPid+-- foreign import ccall unsafe "HsBase.h fork"+-- c_fork :: IO CPid+foreign import javascript interruptible "($1_1,$1_2,$2_1,$2_2,$c) => { return h$base_link($1_1,$1_2,$2_1,$2_2,$c); })"+ c_link :: CString -> CString -> IO CInt+foreign import javascript interruptible "(($1_1,$1_2,$2,$c) => { return h$base_mkfifo($1_1,$1_2,$2,$c); })"+ c_mkfifo :: CString -> CMode -> IO CInt+foreign import javascript interruptible "(($1_1,$1_2,$c) => { return h$base_pipe($1_1,$1_2,$c); })"+ c_pipe :: Ptr CInt -> IO CInt+foreign import javascript unsafe "(($1_1,$1_2) => { return h$base_sigemptyset($1_1,$1_2); })"+ c_sigemptyset :: Ptr CSigset -> IO CInt+foreign import javascript unsafe "(($1_1,$1_2,$2) => { return h$base_sigaddset($1_1,$1_2,$2); })"+ c_sigaddset :: Ptr CSigset -> CInt -> IO CInt+foreign import javascript unsafe "(($1,$2_1,$2_2,$3_1,$3_2) => { return h$base_sigprocmask($1,$2_1,$2_2,$3_1,$3_2); })"+ c_sigprocmask :: CInt -> Ptr CSigset -> Ptr CSigset -> IO CInt+foreign import javascript unsafe "(($1,$2_1,$2_2) => { return h$base_tcgetattr($1,$2_1,$2_2); })"+ c_tcgetattr :: CInt -> Ptr CTermios -> IO CInt+foreign import javascript unsafe "(($1,$2,$3_1,$3_2) => { return h$base_tcsetattr($1,$2,$3_1,$3_2); })"+ c_tcsetattr :: CInt -> CInt -> Ptr CTermios -> IO CInt+foreign import javascript unsafe "(($1_1,$1_2,$2_1,$2_2) => { return h$base_utime($1_1,$1_2,$2_1,$2_2); })" -- should this be async?+ c_utime :: CString -> Ptr CUtimbuf -> IO CInt+foreign import javascript interruptible "(($1,$2_1,$2_2,$3,$c) => { return h$base_waitpid($1,$2_1,$2_2,$3,$c); })"+ c_waitpid :: CPid -> Ptr CInt -> CInt -> IO CPid++foreign import javascript unsafe "(() => { return h$base_o_rdonly; })" o_RDONLY :: CInt+foreign import javascript unsafe "(() => { return h$base_o_wronly; })" o_WRONLY :: CInt+foreign import javascript unsafe "(() => { return h$base_o_rdwr; })" o_RDWR :: CInt+foreign import javascript unsafe "(() => { return h$base_o_append; })" o_APPEND :: CInt+foreign import javascript unsafe "(() => { return h$base_o_creat; })" o_CREAT :: CInt+foreign import javascript unsafe "(() => { return h$base_o_excl; })" o_EXCL :: CInt+foreign import javascript unsafe "(() => { return h$base_o_trunc; })" o_TRUNC :: CInt+foreign import javascript unsafe "(() => { return h$base_o_noctty; })" o_NOCTTY :: CInt+foreign import javascript unsafe "(() => { return h$base_o_nonblock; })" o_NONBLOCK :: CInt+foreign import javascript unsafe "(() => { return h$base_o_binary; })" o_BINARY :: CInt++foreign import javascript unsafe "(($1) => { return h$base_c_s_isreg($1); })" c_s_isreg :: CMode -> CInt+foreign import javascript unsafe "(($1) => { return h$base_c_s_ischr($1); })" c_s_ischr :: CMode -> CInt+foreign import javascript unsafe "(($1) => { return h$base_c_s_isblk($1); })" c_s_isblk :: CMode -> CInt+foreign import javascript unsafe "(($1) => { return h$base_c_s_isdir($1); })" c_s_isdir :: CMode -> CInt+foreign import javascript unsafe "(($1) => { return h$base_c_s_isfifo($1); })" c_s_isfifo :: CMode -> CInt++s_isreg :: CMode -> Bool+s_isreg cm = c_s_isreg cm /= 0+s_ischr :: CMode -> Bool+s_ischr cm = c_s_ischr cm /= 0+s_isblk :: CMode -> Bool+s_isblk cm = c_s_isblk cm /= 0+s_isdir :: CMode -> Bool+s_isdir cm = c_s_isdir cm /= 0+s_isfifo :: CMode -> Bool+s_isfifo cm = c_s_isfifo cm /= 0++foreign import javascript unsafe "(() => { return h$base_sizeof_stat; })" sizeof_stat :: Int+foreign import javascript unsafe "(($1_1,$1_2) => { return h$base_st_mtime($1_1,$1_2); })" st_mtime :: Ptr CStat -> IO CTime+foreign import javascript unsafe "(($1_1,$1_2) => { return h$base_st_size($1_1,$1_2); })" st_size :: Ptr CStat -> IO Int64+foreign import javascript unsafe "(($1_1,$1_2) => { return h$base_st_mode($1_1,$1_2); })" st_mode :: Ptr CStat -> IO CMode+foreign import javascript unsafe "(($1_1,$1_2) => { return h$base_st_dev($1_1,$1_2); })" st_dev :: Ptr CStat -> IO CDev+foreign import javascript unsafe "(($1_1,$1_2) => { return h$base_st_ino($1_1,$1_2); })" st_ino :: Ptr CStat -> IO CIno++foreign import javascript unsafe "(() => { return h$base_echo; })" const_echo :: CInt+foreign import javascript unsafe "(() => { return h$base_tcsanow; })" const_tcsanow :: CInt+foreign import javascript unsafe "(() => { return h$base_icanon; })" const_icanon :: CInt+foreign import javascript unsafe "(() => { return h$base_vmin; })" const_vmin :: CInt+foreign import javascript unsafe "(() => { return h$base_vtime; })" const_vtime :: CInt+foreign import javascript unsafe "(() => { return h$base_sigttou; })" const_sigttou :: CInt+foreign import javascript unsafe "(() => { return h$base_sig_block; })" const_sig_block :: CInt+foreign import javascript unsafe "(() => { return h$base_sig_setmask; })" const_sig_setmask :: CInt+foreign import javascript unsafe "(() => { return h$base_f_getfl; })" const_f_getfl :: CInt+foreign import javascript unsafe "(() => { return h$base_f_setfl; })" const_f_setfl :: CInt+foreign import javascript unsafe "(() => { return h$base_f_setfd; })" const_f_setfd :: CInt+foreign import javascript unsafe "(() => { return h$base_fd_cloexec; })" const_fd_cloexec :: CLong+foreign import javascript unsafe "(() => { return h$base_sizeof_termios; })" sizeof_termios :: Int+foreign import javascript unsafe "(() => { return h$base_sizeof_sigset_t; })" sizeof_sigset_t :: Int+foreign import javascript unsafe "(($1_1,$1_2) => { return h$base_lflag($1_1,$1_2); })" c_lflag :: Ptr CTermios -> IO CTcflag+foreign import javascript unsafe "(($1_1,$1_2,$2) => { return h$base_poke_lflag($1_1,$1_2,$2); })" poke_c_lflag :: Ptr CTermios -> CTcflag -> IO ()+foreign import javascript unsafe "(($1_1,$1_2) => { return h$base_ptr_c_cc($1_1,$1_2); })" ptr_c_cc :: Ptr CTermios -> IO (Ptr Word8)+s_issock :: CMode -> Bool+s_issock cmode = c_s_issock cmode /= 0+foreign import javascript unsafe "(($1) => { return h$base_c_s_issock($1); })" c_s_issock :: CMode -> CInt+foreign import javascript unsafe "(() => { return h$base_default_buffer_size; })" dEFAULT_BUFFER_SIZE :: Int+foreign import javascript unsafe "(() => { return h$base_SEEK_CUR; })" sEEK_CUR :: CInt+foreign import javascript unsafe "(() => { return h$base_SEEK_SET; })" sEEK_SET :: CInt+foreign import javascript unsafe "(() => { return h$base_SEEK_END; })" sEEK_END :: CInt++-- fixme, unclear if these can be supported, remove?+foreign import javascript unsafe "(($1, $2) => { return h$base_c_fcntl_read($1,$2); })" c_fcntl_read :: CInt -> CInt -> IO CInt+foreign import javascript unsafe "(($1, $2, $3) => { return h$base_c_fcntl_write($1,$2,$3); })" c_fcntl_write :: CInt -> CInt -> CLong -> IO CInt+foreign import javascript unsafe "(($1,$2,$3_1,$3_2) => { return h$base_c_fcntl_lock($1,$2,$3_1,$3_2); })" c_fcntl_lock :: CInt -> CInt -> Ptr CFLock -> IO CInt++#else+ #if defined(mingw32_HOST_OS) -- See Note [Windows types] foreign import capi unsafe "HsBase.h _read"@@ -459,8 +620,13 @@ foreign import capi unsafe "HsBase.h _access" c_access :: CString -> CInt -> IO CInt +#if !defined(HAVE_CHMOD)+c_chmod :: CString -> CMode -> IO CInt+c_chmod _ _ = ioError (ioeSetLocation unsupportedOperation "_chmod")+#else foreign import ccall unsafe "HsBase.h _chmod" c_chmod :: CString -> CMode -> IO CInt+#endif foreign import capi unsafe "HsBase.h _close" c_close :: CInt -> IO CInt@@ -468,11 +634,19 @@ foreign import capi unsafe "HsBase.h _creat" c_creat :: CString -> CMode -> IO CInt +#if !defined(HAVE_DUP)+c_dup :: CInt -> IO CInt+c_dup _ = ioError (ioeSetLocation unsupportedOperation "_dup")++c_dup2 :: CInt -> CInt -> IO CInt+c_dup2 _ _ = ioError (ioeSetLocation unsupportedOperation "_dup2")+#else foreign import ccall unsafe "HsBase.h _dup" c_dup :: CInt -> IO CInt foreign import ccall unsafe "HsBase.h _dup2" c_dup2 :: CInt -> CInt -> IO CInt+#endif foreign import capi unsafe "HsBase.h _isatty" c_isatty :: CInt -> IO CInt@@ -485,7 +659,6 @@ foreign import capi unsafe "HsBase.h _getpid" c_getpid :: IO CPid- #else -- We use CAPI as on some OSs (eg. Linux) this is wrapped by a macro -- which redirects to the 64-bit-off_t versions when large file@@ -510,8 +683,13 @@ foreign import capi safe "HsBase.h write" c_safe_write :: CInt -> Ptr Word8 -> CSize -> IO CSsize +#if !defined(HAVE_PIPE)+c_pipe :: Ptr CInt -> IO CInt+c_pipe _ = ioError (ioeSetLocation unsupportedOperation "pipe")+#else foreign import ccall unsafe "HsBase.h pipe" c_pipe :: Ptr CInt -> IO CInt+#endif foreign import capi unsafe "unistd.h lseek" c_lseek :: CInt -> COff -> CInt -> IO COff@@ -519,8 +697,13 @@ foreign import ccall unsafe "HsBase.h access" c_access :: CString -> CInt -> IO CInt +#if !defined(HAVE_CHMOD)+c_chmod :: CString -> CMode -> IO CInt+c_chmod _ _ = ioError (ioeSetLocation unsupportedOperation "chmod")+#else foreign import ccall unsafe "HsBase.h chmod" c_chmod :: CString -> CMode -> IO CInt+#endif foreign import ccall unsafe "HsBase.h close" c_close :: CInt -> IO CInt@@ -528,11 +711,19 @@ foreign import ccall unsafe "HsBase.h creat" c_creat :: CString -> CMode -> IO CInt +#if !defined(HAVE_DUP)+c_dup :: CInt -> IO CInt+c_dup _ = ioError (ioeSetLocation unsupportedOperation "dup")++c_dup2 :: CInt -> CInt -> IO CInt+c_dup2 _ _ = ioError (ioeSetLocation unsupportedOperation "dup2")+#else foreign import ccall unsafe "HsBase.h dup" c_dup :: CInt -> IO CInt foreign import ccall unsafe "HsBase.h dup2" c_dup2 :: CInt -> CInt -> IO CInt+#endif foreign import ccall unsafe "HsBase.h isatty" c_isatty :: CInt -> IO CInt@@ -543,17 +734,24 @@ foreign import capi unsafe "HsBase.h utime" c_utime :: CString -> Ptr CUtimbuf -> IO CInt +#if !defined(HAVE_GETPID)+c_getpid :: IO CPid+c_getpid = pure 1+#else foreign import ccall unsafe "HsBase.h getpid" c_getpid :: IO CPid #endif+#endif +#if !defined(javascript_HOST_ARCH) foreign import ccall unsafe "HsBase.h __hscore_stat" c_stat :: CFilePath -> Ptr CStat -> IO CInt foreign import ccall unsafe "HsBase.h __hscore_ftruncate" c_ftruncate :: CInt -> COff -> IO CInt+#endif -#if !defined(mingw32_HOST_OS)+#if !defined(mingw32_HOST_OS) && !defined(javascript_HOST_ARCH) foreign import capi unsafe "HsBase.h fcntl" c_fcntl_read :: CInt -> CInt -> IO CInt @@ -563,16 +761,27 @@ foreign import capi unsafe "HsBase.h fcntl" c_fcntl_lock :: CInt -> CInt -> Ptr CFLock -> IO CInt +#if !defined(HAVE_FORK)+c_fork :: IO CPid+c_fork = ioError (ioeSetLocation unsupportedOperation "fork")+#else foreign import ccall unsafe "HsBase.h fork" c_fork :: IO CPid+#endif foreign import ccall unsafe "HsBase.h link" c_link :: CString -> CString -> IO CInt +#if !defined(HAVE_MKFIFO)+c_mkfifo :: CString -> CMode -> IO CInt+c_mkfifo _ _ = ioError (ioeSetLocation unsupportedOperation "mkfifo")+#else -- capi is required at least on Android foreign import capi unsafe "HsBase.h mkfifo" c_mkfifo :: CString -> CMode -> IO CInt+#endif +#if HAVE_SIGNAL_H foreign import capi unsafe "signal.h sigemptyset" c_sigemptyset :: Ptr CSigset -> IO CInt @@ -581,7 +790,18 @@ foreign import capi unsafe "signal.h sigprocmask" c_sigprocmask :: CInt -> Ptr CSigset -> Ptr CSigset -> IO CInt+#endif +#if !defined(HAVE_TERMIOS_H)++c_tcgetattr :: CInt -> Ptr CTermios -> IO CInt+c_tcgetattr _ _ = ioError (ioeSetLocation unsupportedOperation "tcgetattr")++c_tcsetattr :: CInt -> CInt -> Ptr CTermios -> IO CInt+c_tcsetattr _ _ _ = ioError (ioeSetLocation unsupportedOperation "tcsetattr")++#else+ -- capi is required at least on Android foreign import capi unsafe "HsBase.h tcgetattr" c_tcgetattr :: CInt -> Ptr CTermios -> IO CInt@@ -590,10 +810,19 @@ foreign import capi unsafe "HsBase.h tcsetattr" c_tcsetattr :: CInt -> CInt -> Ptr CTermios -> IO CInt +#endif++#if defined(HAVE_GETPID) foreign import ccall unsafe "HsBase.h waitpid" c_waitpid :: CPid -> Ptr CInt -> CInt -> IO CPid+#else+c_waitpid :: CPid -> Ptr CInt -> CInt -> IO CPid+c_waitpid _ _ _ = ioError (ioeSetLocation unsupportedOperation "waitpid") #endif +#endif++#if !defined(javascript_HOST_ARCH) -- POSIX flags only: foreign import ccall unsafe "HsBase.h __hscore_o_rdonly" o_RDONLY :: CInt foreign import ccall unsafe "HsBase.h __hscore_o_wronly" o_WRONLY :: CInt@@ -670,6 +899,8 @@ foreign import capi unsafe "stdio.h value SEEK_CUR" sEEK_CUR :: CInt foreign import capi unsafe "stdio.h value SEEK_SET" sEEK_SET :: CInt foreign import capi unsafe "stdio.h value SEEK_END" sEEK_END :: CInt+#endif+#endif {- Note [Windows types]@@ -682,4 +913,3 @@ c_safe_read, c_write and c_safe_write have different Haskell types depending on the OS. -}-
System/Timeout.hs view
@@ -17,7 +17,7 @@ -- TODO: Inspect is still suitable. module System.Timeout ( Timeout, timeout ) where -#if !defined(mingw32_HOST_OS)+#if !defined(mingw32_HOST_OS) && !defined(javascript_HOST_ARCH) import Control.Monad import GHC.Event (getSystemTimerManager, registerTimeout, unregisterTimeout)@@ -58,7 +58,9 @@ -- is available within @n@ microseconds (@1\/10^6@ seconds). In case a result -- is available before the timeout expires, @Just a@ is returned. A negative -- timeout interval means \"wait indefinitely\". When specifying long timeouts,--- be careful not to exceed @maxBound :: Int@.+-- be careful not to exceed @maxBound :: Int@, which on 32-bit machines is only+-- 2147483647 μs, less than 36 minutes.+-- Consider using @Control.Concurrent.Timeout.timeout@ from @unbounded-delays@ package. -- -- >>> timeout 1000000 (threadDelay 1000 *> pure "finished on time") -- Just "finished on time"@@ -97,7 +99,7 @@ timeout n f | n < 0 = fmap Just f | n == 0 = return Nothing-#if !defined(mingw32_HOST_OS)+#if !defined(mingw32_HOST_OS) && !defined(javascript_HOST_ARCH) | rtsSupportsBoundThreads = do -- In the threaded RTS, we use the Timer Manager to delay the -- (fairly expensive) 'forkIO' call until the timeout has expired.
Text/Printf.hs view
@@ -63,7 +63,7 @@ -- ** Standard Formatters -- -- | These formatters for standard types are provided for--- convenience in writting new type-specific formatters:+-- convenience in writing new type-specific formatters: -- a common pattern is to throw to 'formatString' or -- 'formatInteger' to do most of the format handling for -- a new type.
Type/Reflection/Unsafe.hs view
@@ -12,7 +12,7 @@ -- type representations. -- ------------------------------------------------------------------------------{-# LANGUAGE PolyKinds, DataKinds, ScopedTypeVariables #-}+{-# LANGUAGE PolyKinds, DataKinds, ScopedTypeVariables, Unsafe #-} module Type.Reflection.Unsafe ( -- * Type representations
aclocal.m4 view
@@ -78,9 +78,7 @@ # include <signal.h> #endif -#if HAVE_TIME_H-# include <time.h>-#endif+#include <time.h> #if HAVE_TERMIOS_H # include <termios.h>@@ -119,7 +117,7 @@ dnl ** Map an arithmetic C type to a Haskell type.-dnl Based on autconf's AC_CHECK_SIZEOF.+dnl Based on autoconf's AC_CHECK_SIZEOF. dnl FPTOOLS_CHECK_HTYPE_ELSE(TYPE, WHAT_TO_DO_IF_TYPE_DOES_NOT_EXIST) AC_DEFUN([FPTOOLS_CHECK_HTYPE_ELSE],[
base.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: base-version: 4.17.2.1+version: 4.18.0.0 -- NOTE: Don't forget to update ./changelog.md license: BSD-3-Clause@@ -86,7 +86,7 @@ build-depends: rts == 1.0.*,- ghc-prim >= 0.5.1.0 && < 0.10,+ ghc-prim >= 0.5.1.0 && < 0.11, ghc-bignum >= 1.0 && < 2.0 exposed-modules:@@ -115,6 +115,7 @@ Control.Monad.Zip Data.Array.Byte Data.Bifoldable+ Data.Bifoldable1 Data.Bifunctor Data.Bitraversable Data.Bits@@ -128,6 +129,7 @@ Data.Eq Data.Fixed Data.Foldable+ Data.Foldable1 Data.Function Data.Functor Data.Functor.Classes@@ -167,6 +169,7 @@ Debug.Trace Foreign Foreign.C+ Foreign.C.ConstPtr Foreign.C.Error Foreign.C.String Foreign.C.Types@@ -200,6 +203,7 @@ GHC.ConsoleHandler GHC.Constants GHC.Desugar+ GHC.Encoding.UTF8 GHC.Enum GHC.Environment GHC.Err@@ -219,6 +223,7 @@ GHC.GHCi GHC.GHCi.Helpers GHC.Generics+ GHC.InfoProv GHC.IO GHC.IO.Buffer GHC.IO.BufferedIO@@ -286,6 +291,7 @@ GHC.TypeNats.Internal GHC.Unicode GHC.Weak+ GHC.Weak.Finalize GHC.Word Numeric Numeric.Natural@@ -346,38 +352,51 @@ GHC.Event.PSQ GHC.Event.Unique -- GHC.IOPort -- TODO: hide again after debug+ GHC.Unicode.Internal.Bits+ GHC.Unicode.Internal.Char.DerivedCoreProperties+ GHC.Unicode.Internal.Char.UnicodeData.GeneralCategory+ GHC.Unicode.Internal.Char.UnicodeData.SimpleLowerCaseMapping+ GHC.Unicode.Internal.Char.UnicodeData.SimpleTitleCaseMapping+ GHC.Unicode.Internal.Char.UnicodeData.SimpleUpperCaseMapping+ GHC.Unicode.Internal.Version System.Environment.ExecutablePath System.CPUTime.Utils - c-sources:- cbits/DarwinUtils.c- cbits/PrelIOUtils.c- cbits/SetEnv.c- cbits/WCsubst.c- cbits/iconv.c- cbits/inputReady.c- cbits/md5.c- cbits/primFloat.c- cbits/sysconf.c- cbits/fs.c+ if !arch(javascript)+ c-sources:+ cbits/DarwinUtils.c+ cbits/PrelIOUtils.c+ cbits/SetEnv.c+ cbits/iconv.c+ cbits/inputReady.c+ cbits/md5.c+ cbits/primFloat.c+ cbits/sysconf.c+ cbits/fs.c - cmm-sources:- cbits/CastFloatWord.cmm- cbits/StackCloningDecoding.cmm+ cmm-sources:+ cbits/CastFloatWord.cmm+ cbits/StackCloningDecoding.cmm + if arch(javascript)+ js-sources:+ -- "platform" must be linked first because it defines global constants+ -- (e.g. h$isNode)+ jsbits/platform.js+ jsbits/base.js+ jsbits/errno.js+ include-dirs: include includes: HsBase.h install-includes: HsBase.h- WCsubst.h consUtils.h -- OS Specific if os(windows) -- Windows requires some extra libraries for linking because the RTS -- is no longer re-exporting them.- -- mingwex: provides GNU POSIX extensions that aren't provided by ucrt. -- mingw32: Unfortunately required because of a resource leak between -- mingwex and mingw32. the __math_err symbol is defined in -- mingw32 which is required by mingwex.@@ -390,7 +409,7 @@ -- advapi32: provides advanced kernel functions extra-libraries: wsock32, user32, shell32, mingw32, kernel32, advapi32,- mingwex, ws2_32, shlwapi, ole32, rpcrt4, ntdll+ ws2_32, shlwapi, ole32, rpcrt4, ntdll -- Minimum supported Windows version. -- These numbers can be found at: -- https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx@@ -441,11 +460,21 @@ System.CPUTime.Posix.RUsage System.CPUTime.Unsupported + if arch(javascript)+ other-modules:+ System.CPUTime.Javascript+ -- The Ports framework always passes this flag when building software that -- uses iconv to make iconv from Ports compatible with iconv from the base system -- See /usr/ports/Mk/Uses/iconv.mk if os(freebsd) cc-options: -DLIBICONV_PLUG++ if arch(javascript)+ exposed-modules:+ GHC.JS.Prim+ GHC.JS.Prim.Internal+ GHC.JS.Prim.Internal.Build -- We need to set the unit id to base (without a version number) -- as it's magic.
− cbits/WCsubst.c
@@ -1,5238 +0,0 @@-/*--------------------------------------------------------------------------This is an automatically generated file: do not edit-Generated by ubconfc at Fri Sep 24 05:07:27 PM EDT 2021-@generated--------------------------------------------------------------------------*/--#include "WCsubst.h"--/* Unicode general categories, listed in the same order as in the Unicode- * standard -- this must be the same order as in GHC.Unicode.- */--enum {- NUMCAT_LU, /* Letter, Uppercase */- NUMCAT_LL, /* Letter, Lowercase */- NUMCAT_LT, /* Letter, Titlecase */- NUMCAT_LM, /* Letter, Modifier */- NUMCAT_LO, /* Letter, Other */- NUMCAT_MN, /* Mark, Non-Spacing */- NUMCAT_MC, /* Mark, Spacing Combining */- NUMCAT_ME, /* Mark, Enclosing */- NUMCAT_ND, /* Number, Decimal */- NUMCAT_NL, /* Number, Letter */- NUMCAT_NO, /* Number, Other */- NUMCAT_PC, /* Punctuation, Connector */- NUMCAT_PD, /* Punctuation, Dash */- NUMCAT_PS, /* Punctuation, Open */- NUMCAT_PE, /* Punctuation, Close */- NUMCAT_PI, /* Punctuation, Initial quote */- NUMCAT_PF, /* Punctuation, Final quote */- NUMCAT_PO, /* Punctuation, Other */- NUMCAT_SM, /* Symbol, Math */- NUMCAT_SC, /* Symbol, Currency */- NUMCAT_SK, /* Symbol, Modifier */- NUMCAT_SO, /* Symbol, Other */- NUMCAT_ZS, /* Separator, Space */- NUMCAT_ZL, /* Separator, Line */- NUMCAT_ZP, /* Separator, Paragraph */- NUMCAT_CC, /* Other, Control */- NUMCAT_CF, /* Other, Format */- NUMCAT_CS, /* Other, Surrogate */- NUMCAT_CO, /* Other, Private Use */- NUMCAT_CN /* Other, Not Assigned */-};--struct _convrule_ -{ - unsigned int category;- unsigned int catnumber;- int possible;- int updist;- int lowdist; - int titledist;-};--struct _charblock_ -{ - int start;- int length;- const struct _convrule_ *rule;-};--#define GENCAT_ZP 67108864-#define GENCAT_MC 8388608-#define GENCAT_NO 131072-#define GENCAT_SK 1024-#define GENCAT_CO 268435456-#define GENCAT_ME 4194304-#define GENCAT_ND 256-#define GENCAT_PO 4-#define GENCAT_LT 524288-#define GENCAT_PC 2048-#define GENCAT_SM 64-#define GENCAT_ZS 2-#define GENCAT_CC 1-#define GENCAT_LU 512-#define GENCAT_PD 128-#define GENCAT_SO 8192-#define GENCAT_PE 32-#define GENCAT_CS 134217728-#define GENCAT_PF 262144-#define GENCAT_CF 65536-#define GENCAT_PS 16-#define GENCAT_SC 8-#define GENCAT_LL 4096-#define GENCAT_ZL 33554432-#define GENCAT_LM 1048576-#define GENCAT_PI 32768-#define GENCAT_NL 16777216-#define GENCAT_MN 2097152-#define GENCAT_LO 16384-#define MAX_UNI_CHAR 1114109-#define NUM_BLOCKS 3467-#define NUM_CONVBLOCKS 1348-#define NUM_SPACEBLOCKS 7-#define NUM_LAT1BLOCKS 63-#define NUM_RULES 207-static const struct _convrule_ rule183={GENCAT_LU, NUMCAT_LU, 1, 0, -35332, 0};-static const struct _convrule_ rule171={GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26};-static const struct _convrule_ rule182={GENCAT_LL, NUMCAT_LL, 1, -7264, 0, -7264};-static const struct _convrule_ rule188={GENCAT_LU, NUMCAT_LU, 1, 0, -42315, 0};-static const struct _convrule_ rule143={GENCAT_LL, NUMCAT_LL, 1, 8, 0, 8};-static const struct _convrule_ rule127={GENCAT_LU, NUMCAT_LU, 1, 0, 38864, 0};-static const struct _convrule_ rule90={GENCAT_LL, NUMCAT_LL, 1, 42258, 0, 42258};-static const struct _convrule_ rule20={GENCAT_LL, NUMCAT_LL, 0, 0, 0, 0};-static const struct _convrule_ rule76={GENCAT_LL, NUMCAT_LL, 1, 10743, 0, 10743};-static const struct _convrule_ rule61={GENCAT_LL, NUMCAT_LL, 1, 10783, 0, 10783};-static const struct _convrule_ rule132={GENCAT_LL, NUMCAT_LL, 1, -6242, 0, -6242};-static const struct _convrule_ rule37={GENCAT_LU, NUMCAT_LU, 1, 0, 211, 0};-static const struct _convrule_ rule197={GENCAT_LL, NUMCAT_LL, 1, -928, 0, -928};-static const struct _convrule_ rule80={GENCAT_LL, NUMCAT_LL, 1, -214, 0, -214};-static const struct _convrule_ rule75={GENCAT_LL, NUMCAT_LL, 1, -211, 0, -211};-static const struct _convrule_ rule123={GENCAT_LL, NUMCAT_LL, 1, -48, 0, -48};-static const struct _convrule_ rule52={GENCAT_LU, NUMCAT_LU, 1, 0, -56, 0};-static const struct _convrule_ rule149={GENCAT_LL, NUMCAT_LL, 1, 112, 0, 112};-static const struct _convrule_ rule71={GENCAT_LL, NUMCAT_LL, 1, -207, 0, -207};-static const struct _convrule_ rule125={GENCAT_LU, NUMCAT_LU, 1, 0, 7264, 0};-static const struct _convrule_ rule204={GENCAT_LL, NUMCAT_LL, 1, -39, 0, -39};-static const struct _convrule_ rule166={GENCAT_LU, NUMCAT_LU, 1, 0, 28, 0};-static const struct _convrule_ rule173={GENCAT_LU, NUMCAT_LU, 1, 0, -3814, 0};-static const struct _convrule_ rule45={GENCAT_LU, NUMCAT_LU, 1, 0, 219, 0};-static const struct _convrule_ rule7={GENCAT_PD, NUMCAT_PD, 0, 0, 0, 0};-static const struct _convrule_ rule202={GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40};-static const struct _convrule_ rule99={GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38};-static const struct _convrule_ rule97={GENCAT_LU, NUMCAT_LU, 1, 0, 64, 0};-static const struct _convrule_ rule1={GENCAT_ZS, NUMCAT_ZS, 0, 0, 0, 0};-static const struct _convrule_ rule203={GENCAT_LU, NUMCAT_LU, 1, 0, 39, 0};-static const struct _convrule_ rule89={GENCAT_LL, NUMCAT_LL, 1, 42261, 0, 42261};-static const struct _convrule_ rule29={GENCAT_LU, NUMCAT_LU, 1, 0, 210, 0};-static const struct _convrule_ rule35={GENCAT_LU, NUMCAT_LU, 1, 0, 207, 0};-static const struct _convrule_ rule168={GENCAT_NL, NUMCAT_NL, 1, 0, 16, 0};-static const struct _convrule_ rule13={GENCAT_SO, NUMCAT_SO, 0, 0, 0, 0};-static const struct _convrule_ rule163={GENCAT_LU, NUMCAT_LU, 1, 0, -7517, 0};-static const struct _convrule_ rule142={GENCAT_LU, NUMCAT_LU, 1, 0, -7615, 0};-static const struct _convrule_ rule137={GENCAT_LU, NUMCAT_LU, 1, 0, -3008, 0};-static const struct _convrule_ rule100={GENCAT_LL, NUMCAT_LL, 1, -37, 0, -37};-static const struct _convrule_ rule2={GENCAT_PO, NUMCAT_PO, 0, 0, 0, 0};-static const struct _convrule_ rule69={GENCAT_LL, NUMCAT_LL, 1, 42319, 0, 42319};-static const struct _convrule_ rule56={GENCAT_LU, NUMCAT_LU, 1, 0, 10792, 0};-static const struct _convrule_ rule25={GENCAT_LL, NUMCAT_LL, 1, -232, 0, -232};-static const struct _convrule_ rule43={GENCAT_LU, NUMCAT_LU, 1, 0, 218, 0};-static const struct _convrule_ rule179={GENCAT_LU, NUMCAT_LU, 1, 0, -10783, 0};-static const struct _convrule_ rule147={GENCAT_LL, NUMCAT_LL, 1, 100, 0, 100};-static const struct _convrule_ rule98={GENCAT_LU, NUMCAT_LU, 1, 0, 63, 0};-static const struct _convrule_ rule92={GENCAT_MN, NUMCAT_MN, 0, 0, 0, 0};-static const struct _convrule_ rule12={GENCAT_LL, NUMCAT_LL, 1, -32, 0, -32};-static const struct _convrule_ rule95={GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0};-static const struct _convrule_ rule140={GENCAT_LL, NUMCAT_LL, 1, 35384, 0, 35384};-static const struct _convrule_ rule101={GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31};-static const struct _convrule_ rule206={GENCAT_LL, NUMCAT_LL, 1, -34, 0, -34};-static const struct _convrule_ rule107={GENCAT_LU, NUMCAT_LU, 0, 0, 0, 0};-static const struct _convrule_ rule11={GENCAT_PC, NUMCAT_PC, 0, 0, 0, 0};-static const struct _convrule_ rule192={GENCAT_LU, NUMCAT_LU, 1, 0, -42261, 0};-static const struct _convrule_ rule190={GENCAT_LU, NUMCAT_LU, 1, 0, -42258, 0};-static const struct _convrule_ rule158={GENCAT_LU, NUMCAT_LU, 1, 0, -112, 0};-static const struct _convrule_ rule15={GENCAT_PI, NUMCAT_PI, 0, 0, 0, 0};-static const struct _convrule_ rule146={GENCAT_LL, NUMCAT_LL, 1, 86, 0, 86};-static const struct _convrule_ rule124={GENCAT_MC, NUMCAT_MC, 0, 0, 0, 0};-static const struct _convrule_ rule139={GENCAT_LL, NUMCAT_LL, 1, 3814, 0, 3814};-static const struct _convrule_ rule44={GENCAT_LU, NUMCAT_LU, 1, 0, 217, 0};-static const struct _convrule_ rule167={GENCAT_LL, NUMCAT_LL, 1, -28, 0, -28};-static const struct _convrule_ rule200={GENCAT_CO, NUMCAT_CO, 0, 0, 0, 0};-static const struct _convrule_ rule196={GENCAT_LU, NUMCAT_LU, 1, 0, -35384, 0};-static const struct _convrule_ rule116={GENCAT_LL, NUMCAT_LL, 1, -96, 0, -96};-static const struct _convrule_ rule185={GENCAT_LL, NUMCAT_LL, 1, 48, 0, 48};-static const struct _convrule_ rule51={GENCAT_LU, NUMCAT_LU, 1, 0, -97, 0};-static const struct _convrule_ rule39={GENCAT_LL, NUMCAT_LL, 1, 163, 0, 163};-static const struct _convrule_ rule201={GENCAT_LU, NUMCAT_LU, 1, 0, 40, 0};-static const struct _convrule_ rule128={GENCAT_NL, NUMCAT_NL, 0, 0, 0, 0};-static const struct _convrule_ rule126={GENCAT_LL, NUMCAT_LL, 1, 3008, 0, 0};-static const struct _convrule_ rule96={GENCAT_LU, NUMCAT_LU, 1, 0, 37, 0};-static const struct _convrule_ rule82={GENCAT_LL, NUMCAT_LL, 1, -218, 0, -218};-static const struct _convrule_ rule120={GENCAT_LU, NUMCAT_LU, 1, 0, 15, 0};-static const struct _convrule_ rule67={GENCAT_LL, NUMCAT_LL, 1, -202, 0, -202};-static const struct _convrule_ rule66={GENCAT_LL, NUMCAT_LL, 1, -205, 0, -205};-static const struct _convrule_ rule47={GENCAT_LU, NUMCAT_LU, 1, 0, 2, 1};-static const struct _convrule_ rule136={GENCAT_LL, NUMCAT_LL, 1, 35266, 0, 35266};-static const struct _convrule_ rule83={GENCAT_LL, NUMCAT_LL, 1, 42307, 0, 42307};-static const struct _convrule_ rule30={GENCAT_LU, NUMCAT_LU, 1, 0, 206, 0};-static const struct _convrule_ rule111={GENCAT_LL, NUMCAT_LL, 1, -86, 0, -86};-static const struct _convrule_ rule4={GENCAT_PS, NUMCAT_PS, 0, 0, 0, 0};-static const struct _convrule_ rule3={GENCAT_SC, NUMCAT_SC, 0, 0, 0, 0};-static const struct _convrule_ rule164={GENCAT_LU, NUMCAT_LU, 1, 0, -8383, 0};-static const struct _convrule_ rule122={GENCAT_LU, NUMCAT_LU, 1, 0, 48, 0};-static const struct _convrule_ rule14={GENCAT_LO, NUMCAT_LO, 0, 0, 0, 0};-static const struct _convrule_ rule18={GENCAT_LL, NUMCAT_LL, 1, 743, 0, 743};-static const struct _convrule_ rule161={GENCAT_ZL, NUMCAT_ZL, 0, 0, 0, 0};-static const struct _convrule_ rule156={GENCAT_LU, NUMCAT_LU, 1, 0, -86, 0};-static const struct _convrule_ rule186={GENCAT_LU, NUMCAT_LU, 1, 0, -42308, 0};-static const struct _convrule_ rule176={GENCAT_LL, NUMCAT_LL, 1, -10792, 0, -10792};-static const struct _convrule_ rule180={GENCAT_LU, NUMCAT_LU, 1, 0, -10782, 0};-static const struct _convrule_ rule198={GENCAT_LL, NUMCAT_LL, 1, -38864, 0, -38864};-static const struct _convrule_ rule153={GENCAT_LU, NUMCAT_LU, 1, 0, -74, 0};-static const struct _convrule_ rule24={GENCAT_LU, NUMCAT_LU, 1, 0, -199, 0};-static const struct _convrule_ rule157={GENCAT_LU, NUMCAT_LU, 1, 0, -100, 0};-static const struct _convrule_ rule138={GENCAT_LL, NUMCAT_LL, 1, 35332, 0, 35332};-static const struct _convrule_ rule155={GENCAT_LL, NUMCAT_LL, 1, -7205, 0, -7205};-static const struct _convrule_ rule152={GENCAT_LL, NUMCAT_LL, 1, 9, 0, 9};-static const struct _convrule_ rule27={GENCAT_LL, NUMCAT_LL, 1, -300, 0, -300};-static const struct _convrule_ rule187={GENCAT_LU, NUMCAT_LU, 1, 0, -42319, 0};-static const struct _convrule_ rule31={GENCAT_LU, NUMCAT_LU, 1, 0, 205, 0};-static const struct _convrule_ rule59={GENCAT_LU, NUMCAT_LU, 1, 0, 69, 0};-static const struct _convrule_ rule6={GENCAT_SM, NUMCAT_SM, 0, 0, 0, 0};-static const struct _convrule_ rule121={GENCAT_LL, NUMCAT_LL, 1, -15, 0, -15};-static const struct _convrule_ rule112={GENCAT_LL, NUMCAT_LL, 1, -80, 0, -80};-static const struct _convrule_ rule191={GENCAT_LU, NUMCAT_LU, 1, 0, -42282, 0};-static const struct _convrule_ rule133={GENCAT_LL, NUMCAT_LL, 1, -6243, 0, -6243};-static const struct _convrule_ rule130={GENCAT_LL, NUMCAT_LL, 1, -6253, 0, -6253};-static const struct _convrule_ rule165={GENCAT_LU, NUMCAT_LU, 1, 0, -8262, 0};-static const struct _convrule_ rule144={GENCAT_LU, NUMCAT_LU, 1, 0, -8, 0};-static const struct _convrule_ rule26={GENCAT_LU, NUMCAT_LU, 1, 0, -121, 0};-static const struct _convrule_ rule0={GENCAT_CC, NUMCAT_CC, 0, 0, 0, 0};-static const struct _convrule_ rule113={GENCAT_LL, NUMCAT_LL, 1, 7, 0, 7};-static const struct _convrule_ rule93={GENCAT_MN, NUMCAT_MN, 1, 84, 0, 84};-static const struct _convrule_ rule78={GENCAT_LL, NUMCAT_LL, 1, 10749, 0, 10749};-static const struct _convrule_ rule77={GENCAT_LL, NUMCAT_LL, 1, 42305, 0, 42305};-static const struct _convrule_ rule70={GENCAT_LL, NUMCAT_LL, 1, 42315, 0, 42315};-static const struct _convrule_ rule50={GENCAT_LL, NUMCAT_LL, 1, -79, 0, -79};-static const struct _convrule_ rule60={GENCAT_LU, NUMCAT_LU, 1, 0, 71, 0};-static const struct _convrule_ rule22={GENCAT_LU, NUMCAT_LU, 1, 0, 1, 0};-static const struct _convrule_ rule49={GENCAT_LL, NUMCAT_LL, 1, -2, 0, -1};-static const struct _convrule_ rule94={GENCAT_LU, NUMCAT_LU, 1, 0, 116, 0};-static const struct _convrule_ rule84={GENCAT_LL, NUMCAT_LL, 1, 42282, 0, 42282};-static const struct _convrule_ rule169={GENCAT_NL, NUMCAT_NL, 1, -16, 0, -16};-static const struct _convrule_ rule104={GENCAT_LU, NUMCAT_LU, 1, 0, 8, 0};-static const struct _convrule_ rule23={GENCAT_LL, NUMCAT_LL, 1, -1, 0, -1};-static const struct _convrule_ rule88={GENCAT_LL, NUMCAT_LL, 1, -219, 0, -219};-static const struct _convrule_ rule79={GENCAT_LL, NUMCAT_LL, 1, -213, 0, -213};-static const struct _convrule_ rule64={GENCAT_LL, NUMCAT_LL, 1, -210, 0, -210};-static const struct _convrule_ rule177={GENCAT_LU, NUMCAT_LU, 1, 0, -10780, 0};-static const struct _convrule_ rule87={GENCAT_LL, NUMCAT_LL, 1, -71, 0, -71};-static const struct _convrule_ rule85={GENCAT_LL, NUMCAT_LL, 1, -69, 0, -69};-static const struct _convrule_ rule32={GENCAT_LU, NUMCAT_LU, 1, 0, 79, 0};-static const struct _convrule_ rule195={GENCAT_LU, NUMCAT_LU, 1, 0, -42307, 0};-static const struct _convrule_ rule117={GENCAT_LU, NUMCAT_LU, 1, 0, -7, 0};-static const struct _convrule_ rule74={GENCAT_LL, NUMCAT_LL, 1, -209, 0, -209};-static const struct _convrule_ rule199={GENCAT_CS, NUMCAT_CS, 0, 0, 0, 0};-static const struct _convrule_ rule154={GENCAT_LT, NUMCAT_LT, 1, 0, -9, 0};-static const struct _convrule_ rule57={GENCAT_LL, NUMCAT_LL, 1, 10815, 0, 10815};-static const struct _convrule_ rule72={GENCAT_LL, NUMCAT_LL, 1, 42280, 0, 42280};-static const struct _convrule_ rule34={GENCAT_LU, NUMCAT_LU, 1, 0, 203, 0};-static const struct _convrule_ rule194={GENCAT_LU, NUMCAT_LU, 1, 0, -48, 0};-static const struct _convrule_ rule63={GENCAT_LL, NUMCAT_LL, 1, 10782, 0, 10782};-static const struct _convrule_ rule184={GENCAT_LU, NUMCAT_LU, 1, 0, -42280, 0};-static const struct _convrule_ rule159={GENCAT_LU, NUMCAT_LU, 1, 0, -128, 0};-static const struct _convrule_ rule102={GENCAT_LL, NUMCAT_LL, 1, -64, 0, -64};-static const struct _convrule_ rule17={GENCAT_NO, NUMCAT_NO, 0, 0, 0, 0};-static const struct _convrule_ rule91={GENCAT_LM, NUMCAT_LM, 0, 0, 0, 0};-static const struct _convrule_ rule46={GENCAT_LL, NUMCAT_LL, 1, 56, 0, 56};-static const struct _convrule_ rule145={GENCAT_LL, NUMCAT_LL, 1, 74, 0, 74};-static const struct _convrule_ rule42={GENCAT_LU, NUMCAT_LU, 1, 0, 214, 0};-static const struct _convrule_ rule162={GENCAT_ZP, NUMCAT_ZP, 0, 0, 0, 0};-static const struct _convrule_ rule103={GENCAT_LL, NUMCAT_LL, 1, -63, 0, -63};-static const struct _convrule_ rule36={GENCAT_LL, NUMCAT_LL, 1, 97, 0, 97};-static const struct _convrule_ rule151={GENCAT_LT, NUMCAT_LT, 1, 0, -8, 0};-static const struct _convrule_ rule148={GENCAT_LL, NUMCAT_LL, 1, 128, 0, 128};-static const struct _convrule_ rule81={GENCAT_LL, NUMCAT_LL, 1, 10727, 0, 10727};-static const struct _convrule_ rule62={GENCAT_LL, NUMCAT_LL, 1, 10780, 0, 10780};-static const struct _convrule_ rule41={GENCAT_LL, NUMCAT_LL, 1, 130, 0, 130};-static const struct _convrule_ rule205={GENCAT_LU, NUMCAT_LU, 1, 0, 34, 0};-static const struct _convrule_ rule134={GENCAT_LL, NUMCAT_LL, 1, -6236, 0, -6236};-static const struct _convrule_ rule68={GENCAT_LL, NUMCAT_LL, 1, -203, 0, -203};-static const struct _convrule_ rule65={GENCAT_LL, NUMCAT_LL, 1, -206, 0, -206};-static const struct _convrule_ rule48={GENCAT_LT, NUMCAT_LT, 1, -1, 1, 0};-static const struct _convrule_ rule19={GENCAT_PF, NUMCAT_PF, 0, 0, 0, 0};-static const struct _convrule_ rule33={GENCAT_LU, NUMCAT_LU, 1, 0, 202, 0};-static const struct _convrule_ rule105={GENCAT_LL, NUMCAT_LL, 1, -62, 0, -62};-static const struct _convrule_ rule8={GENCAT_ND, NUMCAT_ND, 0, 0, 0, 0};-static const struct _convrule_ rule193={GENCAT_LU, NUMCAT_LU, 1, 0, 928, 0};-static const struct _convrule_ rule53={GENCAT_LU, NUMCAT_LU, 1, 0, -130, 0};-static const struct _convrule_ rule28={GENCAT_LL, NUMCAT_LL, 1, 195, 0, 195};-static const struct _convrule_ rule172={GENCAT_LU, NUMCAT_LU, 1, 0, -10743, 0};-static const struct _convrule_ rule141={GENCAT_LL, NUMCAT_LL, 1, -59, 0, -59};-static const struct _convrule_ rule115={GENCAT_LU, NUMCAT_LU, 1, 0, -60, 0};-static const struct _convrule_ rule110={GENCAT_LL, NUMCAT_LL, 1, -8, 0, -8};-static const struct _convrule_ rule73={GENCAT_LL, NUMCAT_LL, 1, 42308, 0, 42308};-static const struct _convrule_ rule40={GENCAT_LU, NUMCAT_LU, 1, 0, 213, 0};-static const struct _convrule_ rule150={GENCAT_LL, NUMCAT_LL, 1, 126, 0, 126};-static const struct _convrule_ rule131={GENCAT_LL, NUMCAT_LL, 1, -6244, 0, -6244};-static const struct _convrule_ rule129={GENCAT_LL, NUMCAT_LL, 1, -6254, 0, -6254};-static const struct _convrule_ rule118={GENCAT_LU, NUMCAT_LU, 1, 0, 80, 0};-static const struct _convrule_ rule55={GENCAT_LU, NUMCAT_LU, 1, 0, -163, 0};-static const struct _convrule_ rule189={GENCAT_LU, NUMCAT_LU, 1, 0, -42305, 0};-static const struct _convrule_ rule175={GENCAT_LL, NUMCAT_LL, 1, -10795, 0, -10795};-static const struct _convrule_ rule58={GENCAT_LU, NUMCAT_LU, 1, 0, -195, 0};-static const struct _convrule_ rule54={GENCAT_LU, NUMCAT_LU, 1, 0, 10795, 0};-static const struct _convrule_ rule135={GENCAT_LL, NUMCAT_LL, 1, -6181, 0, -6181};-static const struct _convrule_ rule109={GENCAT_LL, NUMCAT_LL, 1, -54, 0, -54};-static const struct _convrule_ rule160={GENCAT_LU, NUMCAT_LU, 1, 0, -126, 0};-static const struct _convrule_ rule106={GENCAT_LL, NUMCAT_LL, 1, -57, 0, -57};-static const struct _convrule_ rule21={GENCAT_LL, NUMCAT_LL, 1, 121, 0, 121};-static const struct _convrule_ rule170={GENCAT_SO, NUMCAT_SO, 1, 0, 26, 0};-static const struct _convrule_ rule86={GENCAT_LL, NUMCAT_LL, 1, -217, 0, -217};-static const struct _convrule_ rule16={GENCAT_CF, NUMCAT_CF, 0, 0, 0, 0};-static const struct _convrule_ rule114={GENCAT_LL, NUMCAT_LL, 1, -116, 0, -116};-static const struct _convrule_ rule38={GENCAT_LU, NUMCAT_LU, 1, 0, 209, 0};-static const struct _convrule_ rule10={GENCAT_SK, NUMCAT_SK, 0, 0, 0, 0};-static const struct _convrule_ rule181={GENCAT_LU, NUMCAT_LU, 1, 0, -10815, 0};-static const struct _convrule_ rule5={GENCAT_PE, NUMCAT_PE, 0, 0, 0, 0};-static const struct _convrule_ rule178={GENCAT_LU, NUMCAT_LU, 1, 0, -10749, 0};-static const struct _convrule_ rule119={GENCAT_ME, NUMCAT_ME, 0, 0, 0, 0};-static const struct _convrule_ rule108={GENCAT_LL, NUMCAT_LL, 1, -47, 0, -47};-static const struct _convrule_ rule174={GENCAT_LU, NUMCAT_LU, 1, 0, -10727, 0};-static const struct _convrule_ rule9={GENCAT_LU, NUMCAT_LU, 1, 0, 32, 0};-static const struct _charblock_ allchars[]={- {0, 32, &rule0},- {32, 1, &rule1},- {33, 3, &rule2},- {36, 1, &rule3},- {37, 3, &rule2},- {40, 1, &rule4},- {41, 1, &rule5},- {42, 1, &rule2},- {43, 1, &rule6},- {44, 1, &rule2},- {45, 1, &rule7},- {46, 2, &rule2},- {48, 10, &rule8},- {58, 2, &rule2},- {60, 3, &rule6},- {63, 2, &rule2},- {65, 26, &rule9},- {91, 1, &rule4},- {92, 1, &rule2},- {93, 1, &rule5},- {94, 1, &rule10},- {95, 1, &rule11},- {96, 1, &rule10},- {97, 26, &rule12},- {123, 1, &rule4},- {124, 1, &rule6},- {125, 1, &rule5},- {126, 1, &rule6},- {127, 33, &rule0},- {160, 1, &rule1},- {161, 1, &rule2},- {162, 4, &rule3},- {166, 1, &rule13},- {167, 1, &rule2},- {168, 1, &rule10},- {169, 1, &rule13},- {170, 1, &rule14},- {171, 1, &rule15},- {172, 1, &rule6},- {173, 1, &rule16},- {174, 1, &rule13},- {175, 1, &rule10},- {176, 1, &rule13},- {177, 1, &rule6},- {178, 2, &rule17},- {180, 1, &rule10},- {181, 1, &rule18},- {182, 2, &rule2},- {184, 1, &rule10},- {185, 1, &rule17},- {186, 1, &rule14},- {187, 1, &rule19},- {188, 3, &rule17},- {191, 1, &rule2},- {192, 23, &rule9},- {215, 1, &rule6},- {216, 7, &rule9},- {223, 1, &rule20},- {224, 23, &rule12},- {247, 1, &rule6},- {248, 7, &rule12},- {255, 1, &rule21},- {256, 1, &rule22},- {257, 1, &rule23},- {258, 1, &rule22},- {259, 1, &rule23},- {260, 1, &rule22},- {261, 1, &rule23},- {262, 1, &rule22},- {263, 1, &rule23},- {264, 1, &rule22},- {265, 1, &rule23},- {266, 1, &rule22},- {267, 1, &rule23},- {268, 1, &rule22},- {269, 1, &rule23},- {270, 1, &rule22},- {271, 1, &rule23},- {272, 1, &rule22},- {273, 1, &rule23},- {274, 1, &rule22},- {275, 1, &rule23},- {276, 1, &rule22},- {277, 1, &rule23},- {278, 1, &rule22},- {279, 1, &rule23},- {280, 1, &rule22},- {281, 1, &rule23},- {282, 1, &rule22},- {283, 1, &rule23},- {284, 1, &rule22},- {285, 1, &rule23},- {286, 1, &rule22},- {287, 1, &rule23},- {288, 1, &rule22},- {289, 1, &rule23},- {290, 1, &rule22},- {291, 1, &rule23},- {292, 1, &rule22},- {293, 1, &rule23},- {294, 1, &rule22},- {295, 1, &rule23},- {296, 1, &rule22},- {297, 1, &rule23},- {298, 1, &rule22},- {299, 1, &rule23},- {300, 1, &rule22},- {301, 1, &rule23},- {302, 1, &rule22},- {303, 1, &rule23},- {304, 1, &rule24},- {305, 1, &rule25},- {306, 1, &rule22},- {307, 1, &rule23},- {308, 1, &rule22},- {309, 1, &rule23},- {310, 1, &rule22},- {311, 1, &rule23},- {312, 1, &rule20},- {313, 1, &rule22},- {314, 1, &rule23},- {315, 1, &rule22},- {316, 1, &rule23},- {317, 1, &rule22},- {318, 1, &rule23},- {319, 1, &rule22},- {320, 1, &rule23},- {321, 1, &rule22},- {322, 1, &rule23},- {323, 1, &rule22},- {324, 1, &rule23},- {325, 1, &rule22},- {326, 1, &rule23},- {327, 1, &rule22},- {328, 1, &rule23},- {329, 1, &rule20},- {330, 1, &rule22},- {331, 1, &rule23},- {332, 1, &rule22},- {333, 1, &rule23},- {334, 1, &rule22},- {335, 1, &rule23},- {336, 1, &rule22},- {337, 1, &rule23},- {338, 1, &rule22},- {339, 1, &rule23},- {340, 1, &rule22},- {341, 1, &rule23},- {342, 1, &rule22},- {343, 1, &rule23},- {344, 1, &rule22},- {345, 1, &rule23},- {346, 1, &rule22},- {347, 1, &rule23},- {348, 1, &rule22},- {349, 1, &rule23},- {350, 1, &rule22},- {351, 1, &rule23},- {352, 1, &rule22},- {353, 1, &rule23},- {354, 1, &rule22},- {355, 1, &rule23},- {356, 1, &rule22},- {357, 1, &rule23},- {358, 1, &rule22},- {359, 1, &rule23},- {360, 1, &rule22},- {361, 1, &rule23},- {362, 1, &rule22},- {363, 1, &rule23},- {364, 1, &rule22},- {365, 1, &rule23},- {366, 1, &rule22},- {367, 1, &rule23},- {368, 1, &rule22},- {369, 1, &rule23},- {370, 1, &rule22},- {371, 1, &rule23},- {372, 1, &rule22},- {373, 1, &rule23},- {374, 1, &rule22},- {375, 1, &rule23},- {376, 1, &rule26},- {377, 1, &rule22},- {378, 1, &rule23},- {379, 1, &rule22},- {380, 1, &rule23},- {381, 1, &rule22},- {382, 1, &rule23},- {383, 1, &rule27},- {384, 1, &rule28},- {385, 1, &rule29},- {386, 1, &rule22},- {387, 1, &rule23},- {388, 1, &rule22},- {389, 1, &rule23},- {390, 1, &rule30},- {391, 1, &rule22},- {392, 1, &rule23},- {393, 2, &rule31},- {395, 1, &rule22},- {396, 1, &rule23},- {397, 1, &rule20},- {398, 1, &rule32},- {399, 1, &rule33},- {400, 1, &rule34},- {401, 1, &rule22},- {402, 1, &rule23},- {403, 1, &rule31},- {404, 1, &rule35},- {405, 1, &rule36},- {406, 1, &rule37},- {407, 1, &rule38},- {408, 1, &rule22},- {409, 1, &rule23},- {410, 1, &rule39},- {411, 1, &rule20},- {412, 1, &rule37},- {413, 1, &rule40},- {414, 1, &rule41},- {415, 1, &rule42},- {416, 1, &rule22},- {417, 1, &rule23},- {418, 1, &rule22},- {419, 1, &rule23},- {420, 1, &rule22},- {421, 1, &rule23},- {422, 1, &rule43},- {423, 1, &rule22},- {424, 1, &rule23},- {425, 1, &rule43},- {426, 2, &rule20},- {428, 1, &rule22},- {429, 1, &rule23},- {430, 1, &rule43},- {431, 1, &rule22},- {432, 1, &rule23},- {433, 2, &rule44},- {435, 1, &rule22},- {436, 1, &rule23},- {437, 1, &rule22},- {438, 1, &rule23},- {439, 1, &rule45},- {440, 1, &rule22},- {441, 1, &rule23},- {442, 1, &rule20},- {443, 1, &rule14},- {444, 1, &rule22},- {445, 1, &rule23},- {446, 1, &rule20},- {447, 1, &rule46},- {448, 4, &rule14},- {452, 1, &rule47},- {453, 1, &rule48},- {454, 1, &rule49},- {455, 1, &rule47},- {456, 1, &rule48},- {457, 1, &rule49},- {458, 1, &rule47},- {459, 1, &rule48},- {460, 1, &rule49},- {461, 1, &rule22},- {462, 1, &rule23},- {463, 1, &rule22},- {464, 1, &rule23},- {465, 1, &rule22},- {466, 1, &rule23},- {467, 1, &rule22},- {468, 1, &rule23},- {469, 1, &rule22},- {470, 1, &rule23},- {471, 1, &rule22},- {472, 1, &rule23},- {473, 1, &rule22},- {474, 1, &rule23},- {475, 1, &rule22},- {476, 1, &rule23},- {477, 1, &rule50},- {478, 1, &rule22},- {479, 1, &rule23},- {480, 1, &rule22},- {481, 1, &rule23},- {482, 1, &rule22},- {483, 1, &rule23},- {484, 1, &rule22},- {485, 1, &rule23},- {486, 1, &rule22},- {487, 1, &rule23},- {488, 1, &rule22},- {489, 1, &rule23},- {490, 1, &rule22},- {491, 1, &rule23},- {492, 1, &rule22},- {493, 1, &rule23},- {494, 1, &rule22},- {495, 1, &rule23},- {496, 1, &rule20},- {497, 1, &rule47},- {498, 1, &rule48},- {499, 1, &rule49},- {500, 1, &rule22},- {501, 1, &rule23},- {502, 1, &rule51},- {503, 1, &rule52},- {504, 1, &rule22},- {505, 1, &rule23},- {506, 1, &rule22},- {507, 1, &rule23},- {508, 1, &rule22},- {509, 1, &rule23},- {510, 1, &rule22},- {511, 1, &rule23},- {512, 1, &rule22},- {513, 1, &rule23},- {514, 1, &rule22},- {515, 1, &rule23},- {516, 1, &rule22},- {517, 1, &rule23},- {518, 1, &rule22},- {519, 1, &rule23},- {520, 1, &rule22},- {521, 1, &rule23},- {522, 1, &rule22},- {523, 1, &rule23},- {524, 1, &rule22},- {525, 1, &rule23},- {526, 1, &rule22},- {527, 1, &rule23},- {528, 1, &rule22},- {529, 1, &rule23},- {530, 1, &rule22},- {531, 1, &rule23},- {532, 1, &rule22},- {533, 1, &rule23},- {534, 1, &rule22},- {535, 1, &rule23},- {536, 1, &rule22},- {537, 1, &rule23},- {538, 1, &rule22},- {539, 1, &rule23},- {540, 1, &rule22},- {541, 1, &rule23},- {542, 1, &rule22},- {543, 1, &rule23},- {544, 1, &rule53},- {545, 1, &rule20},- {546, 1, &rule22},- {547, 1, &rule23},- {548, 1, &rule22},- {549, 1, &rule23},- {550, 1, &rule22},- {551, 1, &rule23},- {552, 1, &rule22},- {553, 1, &rule23},- {554, 1, &rule22},- {555, 1, &rule23},- {556, 1, &rule22},- {557, 1, &rule23},- {558, 1, &rule22},- {559, 1, &rule23},- {560, 1, &rule22},- {561, 1, &rule23},- {562, 1, &rule22},- {563, 1, &rule23},- {564, 6, &rule20},- {570, 1, &rule54},- {571, 1, &rule22},- {572, 1, &rule23},- {573, 1, &rule55},- {574, 1, &rule56},- {575, 2, &rule57},- {577, 1, &rule22},- {578, 1, &rule23},- {579, 1, &rule58},- {580, 1, &rule59},- {581, 1, &rule60},- {582, 1, &rule22},- {583, 1, &rule23},- {584, 1, &rule22},- {585, 1, &rule23},- {586, 1, &rule22},- {587, 1, &rule23},- {588, 1, &rule22},- {589, 1, &rule23},- {590, 1, &rule22},- {591, 1, &rule23},- {592, 1, &rule61},- {593, 1, &rule62},- {594, 1, &rule63},- {595, 1, &rule64},- {596, 1, &rule65},- {597, 1, &rule20},- {598, 2, &rule66},- {600, 1, &rule20},- {601, 1, &rule67},- {602, 1, &rule20},- {603, 1, &rule68},- {604, 1, &rule69},- {605, 3, &rule20},- {608, 1, &rule66},- {609, 1, &rule70},- {610, 1, &rule20},- {611, 1, &rule71},- {612, 1, &rule20},- {613, 1, &rule72},- {614, 1, &rule73},- {615, 1, &rule20},- {616, 1, &rule74},- {617, 1, &rule75},- {618, 1, &rule73},- {619, 1, &rule76},- {620, 1, &rule77},- {621, 2, &rule20},- {623, 1, &rule75},- {624, 1, &rule20},- {625, 1, &rule78},- {626, 1, &rule79},- {627, 2, &rule20},- {629, 1, &rule80},- {630, 7, &rule20},- {637, 1, &rule81},- {638, 2, &rule20},- {640, 1, &rule82},- {641, 1, &rule20},- {642, 1, &rule83},- {643, 1, &rule82},- {644, 3, &rule20},- {647, 1, &rule84},- {648, 1, &rule82},- {649, 1, &rule85},- {650, 2, &rule86},- {652, 1, &rule87},- {653, 5, &rule20},- {658, 1, &rule88},- {659, 1, &rule20},- {660, 1, &rule14},- {661, 8, &rule20},- {669, 1, &rule89},- {670, 1, &rule90},- {671, 17, &rule20},- {688, 18, &rule91},- {706, 4, &rule10},- {710, 12, &rule91},- {722, 14, &rule10},- {736, 5, &rule91},- {741, 7, &rule10},- {748, 1, &rule91},- {749, 1, &rule10},- {750, 1, &rule91},- {751, 17, &rule10},- {768, 69, &rule92},- {837, 1, &rule93},- {838, 42, &rule92},- {880, 1, &rule22},- {881, 1, &rule23},- {882, 1, &rule22},- {883, 1, &rule23},- {884, 1, &rule91},- {885, 1, &rule10},- {886, 1, &rule22},- {887, 1, &rule23},- {890, 1, &rule91},- {891, 3, &rule41},- {894, 1, &rule2},- {895, 1, &rule94},- {900, 2, &rule10},- {902, 1, &rule95},- {903, 1, &rule2},- {904, 3, &rule96},- {908, 1, &rule97},- {910, 2, &rule98},- {912, 1, &rule20},- {913, 17, &rule9},- {931, 9, &rule9},- {940, 1, &rule99},- {941, 3, &rule100},- {944, 1, &rule20},- {945, 17, &rule12},- {962, 1, &rule101},- {963, 9, &rule12},- {972, 1, &rule102},- {973, 2, &rule103},- {975, 1, &rule104},- {976, 1, &rule105},- {977, 1, &rule106},- {978, 3, &rule107},- {981, 1, &rule108},- {982, 1, &rule109},- {983, 1, &rule110},- {984, 1, &rule22},- {985, 1, &rule23},- {986, 1, &rule22},- {987, 1, &rule23},- {988, 1, &rule22},- {989, 1, &rule23},- {990, 1, &rule22},- {991, 1, &rule23},- {992, 1, &rule22},- {993, 1, &rule23},- {994, 1, &rule22},- {995, 1, &rule23},- {996, 1, &rule22},- {997, 1, &rule23},- {998, 1, &rule22},- {999, 1, &rule23},- {1000, 1, &rule22},- {1001, 1, &rule23},- {1002, 1, &rule22},- {1003, 1, &rule23},- {1004, 1, &rule22},- {1005, 1, &rule23},- {1006, 1, &rule22},- {1007, 1, &rule23},- {1008, 1, &rule111},- {1009, 1, &rule112},- {1010, 1, &rule113},- {1011, 1, &rule114},- {1012, 1, &rule115},- {1013, 1, &rule116},- {1014, 1, &rule6},- {1015, 1, &rule22},- {1016, 1, &rule23},- {1017, 1, &rule117},- {1018, 1, &rule22},- {1019, 1, &rule23},- {1020, 1, &rule20},- {1021, 3, &rule53},- {1024, 16, &rule118},- {1040, 32, &rule9},- {1072, 32, &rule12},- {1104, 16, &rule112},- {1120, 1, &rule22},- {1121, 1, &rule23},- {1122, 1, &rule22},- {1123, 1, &rule23},- {1124, 1, &rule22},- {1125, 1, &rule23},- {1126, 1, &rule22},- {1127, 1, &rule23},- {1128, 1, &rule22},- {1129, 1, &rule23},- {1130, 1, &rule22},- {1131, 1, &rule23},- {1132, 1, &rule22},- {1133, 1, &rule23},- {1134, 1, &rule22},- {1135, 1, &rule23},- {1136, 1, &rule22},- {1137, 1, &rule23},- {1138, 1, &rule22},- {1139, 1, &rule23},- {1140, 1, &rule22},- {1141, 1, &rule23},- {1142, 1, &rule22},- {1143, 1, &rule23},- {1144, 1, &rule22},- {1145, 1, &rule23},- {1146, 1, &rule22},- {1147, 1, &rule23},- {1148, 1, &rule22},- {1149, 1, &rule23},- {1150, 1, &rule22},- {1151, 1, &rule23},- {1152, 1, &rule22},- {1153, 1, &rule23},- {1154, 1, &rule13},- {1155, 5, &rule92},- {1160, 2, &rule119},- {1162, 1, &rule22},- {1163, 1, &rule23},- {1164, 1, &rule22},- {1165, 1, &rule23},- {1166, 1, &rule22},- {1167, 1, &rule23},- {1168, 1, &rule22},- {1169, 1, &rule23},- {1170, 1, &rule22},- {1171, 1, &rule23},- {1172, 1, &rule22},- {1173, 1, &rule23},- {1174, 1, &rule22},- {1175, 1, &rule23},- {1176, 1, &rule22},- {1177, 1, &rule23},- {1178, 1, &rule22},- {1179, 1, &rule23},- {1180, 1, &rule22},- {1181, 1, &rule23},- {1182, 1, &rule22},- {1183, 1, &rule23},- {1184, 1, &rule22},- {1185, 1, &rule23},- {1186, 1, &rule22},- {1187, 1, &rule23},- {1188, 1, &rule22},- {1189, 1, &rule23},- {1190, 1, &rule22},- {1191, 1, &rule23},- {1192, 1, &rule22},- {1193, 1, &rule23},- {1194, 1, &rule22},- {1195, 1, &rule23},- {1196, 1, &rule22},- {1197, 1, &rule23},- {1198, 1, &rule22},- {1199, 1, &rule23},- {1200, 1, &rule22},- {1201, 1, &rule23},- {1202, 1, &rule22},- {1203, 1, &rule23},- {1204, 1, &rule22},- {1205, 1, &rule23},- {1206, 1, &rule22},- {1207, 1, &rule23},- {1208, 1, &rule22},- {1209, 1, &rule23},- {1210, 1, &rule22},- {1211, 1, &rule23},- {1212, 1, &rule22},- {1213, 1, &rule23},- {1214, 1, &rule22},- {1215, 1, &rule23},- {1216, 1, &rule120},- {1217, 1, &rule22},- {1218, 1, &rule23},- {1219, 1, &rule22},- {1220, 1, &rule23},- {1221, 1, &rule22},- {1222, 1, &rule23},- {1223, 1, &rule22},- {1224, 1, &rule23},- {1225, 1, &rule22},- {1226, 1, &rule23},- {1227, 1, &rule22},- {1228, 1, &rule23},- {1229, 1, &rule22},- {1230, 1, &rule23},- {1231, 1, &rule121},- {1232, 1, &rule22},- {1233, 1, &rule23},- {1234, 1, &rule22},- {1235, 1, &rule23},- {1236, 1, &rule22},- {1237, 1, &rule23},- {1238, 1, &rule22},- {1239, 1, &rule23},- {1240, 1, &rule22},- {1241, 1, &rule23},- {1242, 1, &rule22},- {1243, 1, &rule23},- {1244, 1, &rule22},- {1245, 1, &rule23},- {1246, 1, &rule22},- {1247, 1, &rule23},- {1248, 1, &rule22},- {1249, 1, &rule23},- {1250, 1, &rule22},- {1251, 1, &rule23},- {1252, 1, &rule22},- {1253, 1, &rule23},- {1254, 1, &rule22},- {1255, 1, &rule23},- {1256, 1, &rule22},- {1257, 1, &rule23},- {1258, 1, &rule22},- {1259, 1, &rule23},- {1260, 1, &rule22},- {1261, 1, &rule23},- {1262, 1, &rule22},- {1263, 1, &rule23},- {1264, 1, &rule22},- {1265, 1, &rule23},- {1266, 1, &rule22},- {1267, 1, &rule23},- {1268, 1, &rule22},- {1269, 1, &rule23},- {1270, 1, &rule22},- {1271, 1, &rule23},- {1272, 1, &rule22},- {1273, 1, &rule23},- {1274, 1, &rule22},- {1275, 1, &rule23},- {1276, 1, &rule22},- {1277, 1, &rule23},- {1278, 1, &rule22},- {1279, 1, &rule23},- {1280, 1, &rule22},- {1281, 1, &rule23},- {1282, 1, &rule22},- {1283, 1, &rule23},- {1284, 1, &rule22},- {1285, 1, &rule23},- {1286, 1, &rule22},- {1287, 1, &rule23},- {1288, 1, &rule22},- {1289, 1, &rule23},- {1290, 1, &rule22},- {1291, 1, &rule23},- {1292, 1, &rule22},- {1293, 1, &rule23},- {1294, 1, &rule22},- {1295, 1, &rule23},- {1296, 1, &rule22},- {1297, 1, &rule23},- {1298, 1, &rule22},- {1299, 1, &rule23},- {1300, 1, &rule22},- {1301, 1, &rule23},- {1302, 1, &rule22},- {1303, 1, &rule23},- {1304, 1, &rule22},- {1305, 1, &rule23},- {1306, 1, &rule22},- {1307, 1, &rule23},- {1308, 1, &rule22},- {1309, 1, &rule23},- {1310, 1, &rule22},- {1311, 1, &rule23},- {1312, 1, &rule22},- {1313, 1, &rule23},- {1314, 1, &rule22},- {1315, 1, &rule23},- {1316, 1, &rule22},- {1317, 1, &rule23},- {1318, 1, &rule22},- {1319, 1, &rule23},- {1320, 1, &rule22},- {1321, 1, &rule23},- {1322, 1, &rule22},- {1323, 1, &rule23},- {1324, 1, &rule22},- {1325, 1, &rule23},- {1326, 1, &rule22},- {1327, 1, &rule23},- {1329, 38, &rule122},- {1369, 1, &rule91},- {1370, 6, &rule2},- {1376, 1, &rule20},- {1377, 38, &rule123},- {1415, 2, &rule20},- {1417, 1, &rule2},- {1418, 1, &rule7},- {1421, 2, &rule13},- {1423, 1, &rule3},- {1425, 45, &rule92},- {1470, 1, &rule7},- {1471, 1, &rule92},- {1472, 1, &rule2},- {1473, 2, &rule92},- {1475, 1, &rule2},- {1476, 2, &rule92},- {1478, 1, &rule2},- {1479, 1, &rule92},- {1488, 27, &rule14},- {1519, 4, &rule14},- {1523, 2, &rule2},- {1536, 6, &rule16},- {1542, 3, &rule6},- {1545, 2, &rule2},- {1547, 1, &rule3},- {1548, 2, &rule2},- {1550, 2, &rule13},- {1552, 11, &rule92},- {1563, 1, &rule2},- {1564, 1, &rule16},- {1565, 3, &rule2},- {1568, 32, &rule14},- {1600, 1, &rule91},- {1601, 10, &rule14},- {1611, 21, &rule92},- {1632, 10, &rule8},- {1642, 4, &rule2},- {1646, 2, &rule14},- {1648, 1, &rule92},- {1649, 99, &rule14},- {1748, 1, &rule2},- {1749, 1, &rule14},- {1750, 7, &rule92},- {1757, 1, &rule16},- {1758, 1, &rule13},- {1759, 6, &rule92},- {1765, 2, &rule91},- {1767, 2, &rule92},- {1769, 1, &rule13},- {1770, 4, &rule92},- {1774, 2, &rule14},- {1776, 10, &rule8},- {1786, 3, &rule14},- {1789, 2, &rule13},- {1791, 1, &rule14},- {1792, 14, &rule2},- {1807, 1, &rule16},- {1808, 1, &rule14},- {1809, 1, &rule92},- {1810, 30, &rule14},- {1840, 27, &rule92},- {1869, 89, &rule14},- {1958, 11, &rule92},- {1969, 1, &rule14},- {1984, 10, &rule8},- {1994, 33, &rule14},- {2027, 9, &rule92},- {2036, 2, &rule91},- {2038, 1, &rule13},- {2039, 3, &rule2},- {2042, 1, &rule91},- {2045, 1, &rule92},- {2046, 2, &rule3},- {2048, 22, &rule14},- {2070, 4, &rule92},- {2074, 1, &rule91},- {2075, 9, &rule92},- {2084, 1, &rule91},- {2085, 3, &rule92},- {2088, 1, &rule91},- {2089, 5, &rule92},- {2096, 15, &rule2},- {2112, 25, &rule14},- {2137, 3, &rule92},- {2142, 1, &rule2},- {2144, 11, &rule14},- {2160, 24, &rule14},- {2184, 1, &rule10},- {2185, 6, &rule14},- {2192, 2, &rule16},- {2200, 8, &rule92},- {2208, 41, &rule14},- {2249, 1, &rule91},- {2250, 24, &rule92},- {2274, 1, &rule16},- {2275, 32, &rule92},- {2307, 1, &rule124},- {2308, 54, &rule14},- {2362, 1, &rule92},- {2363, 1, &rule124},- {2364, 1, &rule92},- {2365, 1, &rule14},- {2366, 3, &rule124},- {2369, 8, &rule92},- {2377, 4, &rule124},- {2381, 1, &rule92},- {2382, 2, &rule124},- {2384, 1, &rule14},- {2385, 7, &rule92},- {2392, 10, &rule14},- {2402, 2, &rule92},- {2404, 2, &rule2},- {2406, 10, &rule8},- {2416, 1, &rule2},- {2417, 1, &rule91},- {2418, 15, &rule14},- {2433, 1, &rule92},- {2434, 2, &rule124},- {2437, 8, &rule14},- {2447, 2, &rule14},- {2451, 22, &rule14},- {2474, 7, &rule14},- {2482, 1, &rule14},- {2486, 4, &rule14},- {2492, 1, &rule92},- {2493, 1, &rule14},- {2494, 3, &rule124},- {2497, 4, &rule92},- {2503, 2, &rule124},- {2507, 2, &rule124},- {2509, 1, &rule92},- {2510, 1, &rule14},- {2519, 1, &rule124},- {2524, 2, &rule14},- {2527, 3, &rule14},- {2530, 2, &rule92},- {2534, 10, &rule8},- {2544, 2, &rule14},- {2546, 2, &rule3},- {2548, 6, &rule17},- {2554, 1, &rule13},- {2555, 1, &rule3},- {2556, 1, &rule14},- {2557, 1, &rule2},- {2558, 1, &rule92},- {2561, 2, &rule92},- {2563, 1, &rule124},- {2565, 6, &rule14},- {2575, 2, &rule14},- {2579, 22, &rule14},- {2602, 7, &rule14},- {2610, 2, &rule14},- {2613, 2, &rule14},- {2616, 2, &rule14},- {2620, 1, &rule92},- {2622, 3, &rule124},- {2625, 2, &rule92},- {2631, 2, &rule92},- {2635, 3, &rule92},- {2641, 1, &rule92},- {2649, 4, &rule14},- {2654, 1, &rule14},- {2662, 10, &rule8},- {2672, 2, &rule92},- {2674, 3, &rule14},- {2677, 1, &rule92},- {2678, 1, &rule2},- {2689, 2, &rule92},- {2691, 1, &rule124},- {2693, 9, &rule14},- {2703, 3, &rule14},- {2707, 22, &rule14},- {2730, 7, &rule14},- {2738, 2, &rule14},- {2741, 5, &rule14},- {2748, 1, &rule92},- {2749, 1, &rule14},- {2750, 3, &rule124},- {2753, 5, &rule92},- {2759, 2, &rule92},- {2761, 1, &rule124},- {2763, 2, &rule124},- {2765, 1, &rule92},- {2768, 1, &rule14},- {2784, 2, &rule14},- {2786, 2, &rule92},- {2790, 10, &rule8},- {2800, 1, &rule2},- {2801, 1, &rule3},- {2809, 1, &rule14},- {2810, 6, &rule92},- {2817, 1, &rule92},- {2818, 2, &rule124},- {2821, 8, &rule14},- {2831, 2, &rule14},- {2835, 22, &rule14},- {2858, 7, &rule14},- {2866, 2, &rule14},- {2869, 5, &rule14},- {2876, 1, &rule92},- {2877, 1, &rule14},- {2878, 1, &rule124},- {2879, 1, &rule92},- {2880, 1, &rule124},- {2881, 4, &rule92},- {2887, 2, &rule124},- {2891, 2, &rule124},- {2893, 1, &rule92},- {2901, 2, &rule92},- {2903, 1, &rule124},- {2908, 2, &rule14},- {2911, 3, &rule14},- {2914, 2, &rule92},- {2918, 10, &rule8},- {2928, 1, &rule13},- {2929, 1, &rule14},- {2930, 6, &rule17},- {2946, 1, &rule92},- {2947, 1, &rule14},- {2949, 6, &rule14},- {2958, 3, &rule14},- {2962, 4, &rule14},- {2969, 2, &rule14},- {2972, 1, &rule14},- {2974, 2, &rule14},- {2979, 2, &rule14},- {2984, 3, &rule14},- {2990, 12, &rule14},- {3006, 2, &rule124},- {3008, 1, &rule92},- {3009, 2, &rule124},- {3014, 3, &rule124},- {3018, 3, &rule124},- {3021, 1, &rule92},- {3024, 1, &rule14},- {3031, 1, &rule124},- {3046, 10, &rule8},- {3056, 3, &rule17},- {3059, 6, &rule13},- {3065, 1, &rule3},- {3066, 1, &rule13},- {3072, 1, &rule92},- {3073, 3, &rule124},- {3076, 1, &rule92},- {3077, 8, &rule14},- {3086, 3, &rule14},- {3090, 23, &rule14},- {3114, 16, &rule14},- {3132, 1, &rule92},- {3133, 1, &rule14},- {3134, 3, &rule92},- {3137, 4, &rule124},- {3142, 3, &rule92},- {3146, 4, &rule92},- {3157, 2, &rule92},- {3160, 3, &rule14},- {3165, 1, &rule14},- {3168, 2, &rule14},- {3170, 2, &rule92},- {3174, 10, &rule8},- {3191, 1, &rule2},- {3192, 7, &rule17},- {3199, 1, &rule13},- {3200, 1, &rule14},- {3201, 1, &rule92},- {3202, 2, &rule124},- {3204, 1, &rule2},- {3205, 8, &rule14},- {3214, 3, &rule14},- {3218, 23, &rule14},- {3242, 10, &rule14},- {3253, 5, &rule14},- {3260, 1, &rule92},- {3261, 1, &rule14},- {3262, 1, &rule124},- {3263, 1, &rule92},- {3264, 5, &rule124},- {3270, 1, &rule92},- {3271, 2, &rule124},- {3274, 2, &rule124},- {3276, 2, &rule92},- {3285, 2, &rule124},- {3293, 2, &rule14},- {3296, 2, &rule14},- {3298, 2, &rule92},- {3302, 10, &rule8},- {3313, 2, &rule14},- {3328, 2, &rule92},- {3330, 2, &rule124},- {3332, 9, &rule14},- {3342, 3, &rule14},- {3346, 41, &rule14},- {3387, 2, &rule92},- {3389, 1, &rule14},- {3390, 3, &rule124},- {3393, 4, &rule92},- {3398, 3, &rule124},- {3402, 3, &rule124},- {3405, 1, &rule92},- {3406, 1, &rule14},- {3407, 1, &rule13},- {3412, 3, &rule14},- {3415, 1, &rule124},- {3416, 7, &rule17},- {3423, 3, &rule14},- {3426, 2, &rule92},- {3430, 10, &rule8},- {3440, 9, &rule17},- {3449, 1, &rule13},- {3450, 6, &rule14},- {3457, 1, &rule92},- {3458, 2, &rule124},- {3461, 18, &rule14},- {3482, 24, &rule14},- {3507, 9, &rule14},- {3517, 1, &rule14},- {3520, 7, &rule14},- {3530, 1, &rule92},- {3535, 3, &rule124},- {3538, 3, &rule92},- {3542, 1, &rule92},- {3544, 8, &rule124},- {3558, 10, &rule8},- {3570, 2, &rule124},- {3572, 1, &rule2},- {3585, 48, &rule14},- {3633, 1, &rule92},- {3634, 2, &rule14},- {3636, 7, &rule92},- {3647, 1, &rule3},- {3648, 6, &rule14},- {3654, 1, &rule91},- {3655, 8, &rule92},- {3663, 1, &rule2},- {3664, 10, &rule8},- {3674, 2, &rule2},- {3713, 2, &rule14},- {3716, 1, &rule14},- {3718, 5, &rule14},- {3724, 24, &rule14},- {3749, 1, &rule14},- {3751, 10, &rule14},- {3761, 1, &rule92},- {3762, 2, &rule14},- {3764, 9, &rule92},- {3773, 1, &rule14},- {3776, 5, &rule14},- {3782, 1, &rule91},- {3784, 6, &rule92},- {3792, 10, &rule8},- {3804, 4, &rule14},- {3840, 1, &rule14},- {3841, 3, &rule13},- {3844, 15, &rule2},- {3859, 1, &rule13},- {3860, 1, &rule2},- {3861, 3, &rule13},- {3864, 2, &rule92},- {3866, 6, &rule13},- {3872, 10, &rule8},- {3882, 10, &rule17},- {3892, 1, &rule13},- {3893, 1, &rule92},- {3894, 1, &rule13},- {3895, 1, &rule92},- {3896, 1, &rule13},- {3897, 1, &rule92},- {3898, 1, &rule4},- {3899, 1, &rule5},- {3900, 1, &rule4},- {3901, 1, &rule5},- {3902, 2, &rule124},- {3904, 8, &rule14},- {3913, 36, &rule14},- {3953, 14, &rule92},- {3967, 1, &rule124},- {3968, 5, &rule92},- {3973, 1, &rule2},- {3974, 2, &rule92},- {3976, 5, &rule14},- {3981, 11, &rule92},- {3993, 36, &rule92},- {4030, 8, &rule13},- {4038, 1, &rule92},- {4039, 6, &rule13},- {4046, 2, &rule13},- {4048, 5, &rule2},- {4053, 4, &rule13},- {4057, 2, &rule2},- {4096, 43, &rule14},- {4139, 2, &rule124},- {4141, 4, &rule92},- {4145, 1, &rule124},- {4146, 6, &rule92},- {4152, 1, &rule124},- {4153, 2, &rule92},- {4155, 2, &rule124},- {4157, 2, &rule92},- {4159, 1, &rule14},- {4160, 10, &rule8},- {4170, 6, &rule2},- {4176, 6, &rule14},- {4182, 2, &rule124},- {4184, 2, &rule92},- {4186, 4, &rule14},- {4190, 3, &rule92},- {4193, 1, &rule14},- {4194, 3, &rule124},- {4197, 2, &rule14},- {4199, 7, &rule124},- {4206, 3, &rule14},- {4209, 4, &rule92},- {4213, 13, &rule14},- {4226, 1, &rule92},- {4227, 2, &rule124},- {4229, 2, &rule92},- {4231, 6, &rule124},- {4237, 1, &rule92},- {4238, 1, &rule14},- {4239, 1, &rule124},- {4240, 10, &rule8},- {4250, 3, &rule124},- {4253, 1, &rule92},- {4254, 2, &rule13},- {4256, 38, &rule125},- {4295, 1, &rule125},- {4301, 1, &rule125},- {4304, 43, &rule126},- {4347, 1, &rule2},- {4348, 1, &rule91},- {4349, 3, &rule126},- {4352, 329, &rule14},- {4682, 4, &rule14},- {4688, 7, &rule14},- {4696, 1, &rule14},- {4698, 4, &rule14},- {4704, 41, &rule14},- {4746, 4, &rule14},- {4752, 33, &rule14},- {4786, 4, &rule14},- {4792, 7, &rule14},- {4800, 1, &rule14},- {4802, 4, &rule14},- {4808, 15, &rule14},- {4824, 57, &rule14},- {4882, 4, &rule14},- {4888, 67, &rule14},- {4957, 3, &rule92},- {4960, 9, &rule2},- {4969, 20, &rule17},- {4992, 16, &rule14},- {5008, 10, &rule13},- {5024, 80, &rule127},- {5104, 6, &rule104},- {5112, 6, &rule110},- {5120, 1, &rule7},- {5121, 620, &rule14},- {5741, 1, &rule13},- {5742, 1, &rule2},- {5743, 17, &rule14},- {5760, 1, &rule1},- {5761, 26, &rule14},- {5787, 1, &rule4},- {5788, 1, &rule5},- {5792, 75, &rule14},- {5867, 3, &rule2},- {5870, 3, &rule128},- {5873, 8, &rule14},- {5888, 18, &rule14},- {5906, 3, &rule92},- {5909, 1, &rule124},- {5919, 19, &rule14},- {5938, 2, &rule92},- {5940, 1, &rule124},- {5941, 2, &rule2},- {5952, 18, &rule14},- {5970, 2, &rule92},- {5984, 13, &rule14},- {5998, 3, &rule14},- {6002, 2, &rule92},- {6016, 52, &rule14},- {6068, 2, &rule92},- {6070, 1, &rule124},- {6071, 7, &rule92},- {6078, 8, &rule124},- {6086, 1, &rule92},- {6087, 2, &rule124},- {6089, 11, &rule92},- {6100, 3, &rule2},- {6103, 1, &rule91},- {6104, 3, &rule2},- {6107, 1, &rule3},- {6108, 1, &rule14},- {6109, 1, &rule92},- {6112, 10, &rule8},- {6128, 10, &rule17},- {6144, 6, &rule2},- {6150, 1, &rule7},- {6151, 4, &rule2},- {6155, 3, &rule92},- {6158, 1, &rule16},- {6159, 1, &rule92},- {6160, 10, &rule8},- {6176, 35, &rule14},- {6211, 1, &rule91},- {6212, 53, &rule14},- {6272, 5, &rule14},- {6277, 2, &rule92},- {6279, 34, &rule14},- {6313, 1, &rule92},- {6314, 1, &rule14},- {6320, 70, &rule14},- {6400, 31, &rule14},- {6432, 3, &rule92},- {6435, 4, &rule124},- {6439, 2, &rule92},- {6441, 3, &rule124},- {6448, 2, &rule124},- {6450, 1, &rule92},- {6451, 6, &rule124},- {6457, 3, &rule92},- {6464, 1, &rule13},- {6468, 2, &rule2},- {6470, 10, &rule8},- {6480, 30, &rule14},- {6512, 5, &rule14},- {6528, 44, &rule14},- {6576, 26, &rule14},- {6608, 10, &rule8},- {6618, 1, &rule17},- {6622, 34, &rule13},- {6656, 23, &rule14},- {6679, 2, &rule92},- {6681, 2, &rule124},- {6683, 1, &rule92},- {6686, 2, &rule2},- {6688, 53, &rule14},- {6741, 1, &rule124},- {6742, 1, &rule92},- {6743, 1, &rule124},- {6744, 7, &rule92},- {6752, 1, &rule92},- {6753, 1, &rule124},- {6754, 1, &rule92},- {6755, 2, &rule124},- {6757, 8, &rule92},- {6765, 6, &rule124},- {6771, 10, &rule92},- {6783, 1, &rule92},- {6784, 10, &rule8},- {6800, 10, &rule8},- {6816, 7, &rule2},- {6823, 1, &rule91},- {6824, 6, &rule2},- {6832, 14, &rule92},- {6846, 1, &rule119},- {6847, 16, &rule92},- {6912, 4, &rule92},- {6916, 1, &rule124},- {6917, 47, &rule14},- {6964, 1, &rule92},- {6965, 1, &rule124},- {6966, 5, &rule92},- {6971, 1, &rule124},- {6972, 1, &rule92},- {6973, 5, &rule124},- {6978, 1, &rule92},- {6979, 2, &rule124},- {6981, 8, &rule14},- {6992, 10, &rule8},- {7002, 7, &rule2},- {7009, 10, &rule13},- {7019, 9, &rule92},- {7028, 9, &rule13},- {7037, 2, &rule2},- {7040, 2, &rule92},- {7042, 1, &rule124},- {7043, 30, &rule14},- {7073, 1, &rule124},- {7074, 4, &rule92},- {7078, 2, &rule124},- {7080, 2, &rule92},- {7082, 1, &rule124},- {7083, 3, &rule92},- {7086, 2, &rule14},- {7088, 10, &rule8},- {7098, 44, &rule14},- {7142, 1, &rule92},- {7143, 1, &rule124},- {7144, 2, &rule92},- {7146, 3, &rule124},- {7149, 1, &rule92},- {7150, 1, &rule124},- {7151, 3, &rule92},- {7154, 2, &rule124},- {7164, 4, &rule2},- {7168, 36, &rule14},- {7204, 8, &rule124},- {7212, 8, &rule92},- {7220, 2, &rule124},- {7222, 2, &rule92},- {7227, 5, &rule2},- {7232, 10, &rule8},- {7245, 3, &rule14},- {7248, 10, &rule8},- {7258, 30, &rule14},- {7288, 6, &rule91},- {7294, 2, &rule2},- {7296, 1, &rule129},- {7297, 1, &rule130},- {7298, 1, &rule131},- {7299, 2, &rule132},- {7301, 1, &rule133},- {7302, 1, &rule134},- {7303, 1, &rule135},- {7304, 1, &rule136},- {7312, 43, &rule137},- {7357, 3, &rule137},- {7360, 8, &rule2},- {7376, 3, &rule92},- {7379, 1, &rule2},- {7380, 13, &rule92},- {7393, 1, &rule124},- {7394, 7, &rule92},- {7401, 4, &rule14},- {7405, 1, &rule92},- {7406, 6, &rule14},- {7412, 1, &rule92},- {7413, 2, &rule14},- {7415, 1, &rule124},- {7416, 2, &rule92},- {7418, 1, &rule14},- {7424, 44, &rule20},- {7468, 63, &rule91},- {7531, 13, &rule20},- {7544, 1, &rule91},- {7545, 1, &rule138},- {7546, 3, &rule20},- {7549, 1, &rule139},- {7550, 16, &rule20},- {7566, 1, &rule140},- {7567, 12, &rule20},- {7579, 37, &rule91},- {7616, 64, &rule92},- {7680, 1, &rule22},- {7681, 1, &rule23},- {7682, 1, &rule22},- {7683, 1, &rule23},- {7684, 1, &rule22},- {7685, 1, &rule23},- {7686, 1, &rule22},- {7687, 1, &rule23},- {7688, 1, &rule22},- {7689, 1, &rule23},- {7690, 1, &rule22},- {7691, 1, &rule23},- {7692, 1, &rule22},- {7693, 1, &rule23},- {7694, 1, &rule22},- {7695, 1, &rule23},- {7696, 1, &rule22},- {7697, 1, &rule23},- {7698, 1, &rule22},- {7699, 1, &rule23},- {7700, 1, &rule22},- {7701, 1, &rule23},- {7702, 1, &rule22},- {7703, 1, &rule23},- {7704, 1, &rule22},- {7705, 1, &rule23},- {7706, 1, &rule22},- {7707, 1, &rule23},- {7708, 1, &rule22},- {7709, 1, &rule23},- {7710, 1, &rule22},- {7711, 1, &rule23},- {7712, 1, &rule22},- {7713, 1, &rule23},- {7714, 1, &rule22},- {7715, 1, &rule23},- {7716, 1, &rule22},- {7717, 1, &rule23},- {7718, 1, &rule22},- {7719, 1, &rule23},- {7720, 1, &rule22},- {7721, 1, &rule23},- {7722, 1, &rule22},- {7723, 1, &rule23},- {7724, 1, &rule22},- {7725, 1, &rule23},- {7726, 1, &rule22},- {7727, 1, &rule23},- {7728, 1, &rule22},- {7729, 1, &rule23},- {7730, 1, &rule22},- {7731, 1, &rule23},- {7732, 1, &rule22},- {7733, 1, &rule23},- {7734, 1, &rule22},- {7735, 1, &rule23},- {7736, 1, &rule22},- {7737, 1, &rule23},- {7738, 1, &rule22},- {7739, 1, &rule23},- {7740, 1, &rule22},- {7741, 1, &rule23},- {7742, 1, &rule22},- {7743, 1, &rule23},- {7744, 1, &rule22},- {7745, 1, &rule23},- {7746, 1, &rule22},- {7747, 1, &rule23},- {7748, 1, &rule22},- {7749, 1, &rule23},- {7750, 1, &rule22},- {7751, 1, &rule23},- {7752, 1, &rule22},- {7753, 1, &rule23},- {7754, 1, &rule22},- {7755, 1, &rule23},- {7756, 1, &rule22},- {7757, 1, &rule23},- {7758, 1, &rule22},- {7759, 1, &rule23},- {7760, 1, &rule22},- {7761, 1, &rule23},- {7762, 1, &rule22},- {7763, 1, &rule23},- {7764, 1, &rule22},- {7765, 1, &rule23},- {7766, 1, &rule22},- {7767, 1, &rule23},- {7768, 1, &rule22},- {7769, 1, &rule23},- {7770, 1, &rule22},- {7771, 1, &rule23},- {7772, 1, &rule22},- {7773, 1, &rule23},- {7774, 1, &rule22},- {7775, 1, &rule23},- {7776, 1, &rule22},- {7777, 1, &rule23},- {7778, 1, &rule22},- {7779, 1, &rule23},- {7780, 1, &rule22},- {7781, 1, &rule23},- {7782, 1, &rule22},- {7783, 1, &rule23},- {7784, 1, &rule22},- {7785, 1, &rule23},- {7786, 1, &rule22},- {7787, 1, &rule23},- {7788, 1, &rule22},- {7789, 1, &rule23},- {7790, 1, &rule22},- {7791, 1, &rule23},- {7792, 1, &rule22},- {7793, 1, &rule23},- {7794, 1, &rule22},- {7795, 1, &rule23},- {7796, 1, &rule22},- {7797, 1, &rule23},- {7798, 1, &rule22},- {7799, 1, &rule23},- {7800, 1, &rule22},- {7801, 1, &rule23},- {7802, 1, &rule22},- {7803, 1, &rule23},- {7804, 1, &rule22},- {7805, 1, &rule23},- {7806, 1, &rule22},- {7807, 1, &rule23},- {7808, 1, &rule22},- {7809, 1, &rule23},- {7810, 1, &rule22},- {7811, 1, &rule23},- {7812, 1, &rule22},- {7813, 1, &rule23},- {7814, 1, &rule22},- {7815, 1, &rule23},- {7816, 1, &rule22},- {7817, 1, &rule23},- {7818, 1, &rule22},- {7819, 1, &rule23},- {7820, 1, &rule22},- {7821, 1, &rule23},- {7822, 1, &rule22},- {7823, 1, &rule23},- {7824, 1, &rule22},- {7825, 1, &rule23},- {7826, 1, &rule22},- {7827, 1, &rule23},- {7828, 1, &rule22},- {7829, 1, &rule23},- {7830, 5, &rule20},- {7835, 1, &rule141},- {7836, 2, &rule20},- {7838, 1, &rule142},- {7839, 1, &rule20},- {7840, 1, &rule22},- {7841, 1, &rule23},- {7842, 1, &rule22},- {7843, 1, &rule23},- {7844, 1, &rule22},- {7845, 1, &rule23},- {7846, 1, &rule22},- {7847, 1, &rule23},- {7848, 1, &rule22},- {7849, 1, &rule23},- {7850, 1, &rule22},- {7851, 1, &rule23},- {7852, 1, &rule22},- {7853, 1, &rule23},- {7854, 1, &rule22},- {7855, 1, &rule23},- {7856, 1, &rule22},- {7857, 1, &rule23},- {7858, 1, &rule22},- {7859, 1, &rule23},- {7860, 1, &rule22},- {7861, 1, &rule23},- {7862, 1, &rule22},- {7863, 1, &rule23},- {7864, 1, &rule22},- {7865, 1, &rule23},- {7866, 1, &rule22},- {7867, 1, &rule23},- {7868, 1, &rule22},- {7869, 1, &rule23},- {7870, 1, &rule22},- {7871, 1, &rule23},- {7872, 1, &rule22},- {7873, 1, &rule23},- {7874, 1, &rule22},- {7875, 1, &rule23},- {7876, 1, &rule22},- {7877, 1, &rule23},- {7878, 1, &rule22},- {7879, 1, &rule23},- {7880, 1, &rule22},- {7881, 1, &rule23},- {7882, 1, &rule22},- {7883, 1, &rule23},- {7884, 1, &rule22},- {7885, 1, &rule23},- {7886, 1, &rule22},- {7887, 1, &rule23},- {7888, 1, &rule22},- {7889, 1, &rule23},- {7890, 1, &rule22},- {7891, 1, &rule23},- {7892, 1, &rule22},- {7893, 1, &rule23},- {7894, 1, &rule22},- {7895, 1, &rule23},- {7896, 1, &rule22},- {7897, 1, &rule23},- {7898, 1, &rule22},- {7899, 1, &rule23},- {7900, 1, &rule22},- {7901, 1, &rule23},- {7902, 1, &rule22},- {7903, 1, &rule23},- {7904, 1, &rule22},- {7905, 1, &rule23},- {7906, 1, &rule22},- {7907, 1, &rule23},- {7908, 1, &rule22},- {7909, 1, &rule23},- {7910, 1, &rule22},- {7911, 1, &rule23},- {7912, 1, &rule22},- {7913, 1, &rule23},- {7914, 1, &rule22},- {7915, 1, &rule23},- {7916, 1, &rule22},- {7917, 1, &rule23},- {7918, 1, &rule22},- {7919, 1, &rule23},- {7920, 1, &rule22},- {7921, 1, &rule23},- {7922, 1, &rule22},- {7923, 1, &rule23},- {7924, 1, &rule22},- {7925, 1, &rule23},- {7926, 1, &rule22},- {7927, 1, &rule23},- {7928, 1, &rule22},- {7929, 1, &rule23},- {7930, 1, &rule22},- {7931, 1, &rule23},- {7932, 1, &rule22},- {7933, 1, &rule23},- {7934, 1, &rule22},- {7935, 1, &rule23},- {7936, 8, &rule143},- {7944, 8, &rule144},- {7952, 6, &rule143},- {7960, 6, &rule144},- {7968, 8, &rule143},- {7976, 8, &rule144},- {7984, 8, &rule143},- {7992, 8, &rule144},- {8000, 6, &rule143},- {8008, 6, &rule144},- {8016, 1, &rule20},- {8017, 1, &rule143},- {8018, 1, &rule20},- {8019, 1, &rule143},- {8020, 1, &rule20},- {8021, 1, &rule143},- {8022, 1, &rule20},- {8023, 1, &rule143},- {8025, 1, &rule144},- {8027, 1, &rule144},- {8029, 1, &rule144},- {8031, 1, &rule144},- {8032, 8, &rule143},- {8040, 8, &rule144},- {8048, 2, &rule145},- {8050, 4, &rule146},- {8054, 2, &rule147},- {8056, 2, &rule148},- {8058, 2, &rule149},- {8060, 2, &rule150},- {8064, 8, &rule143},- {8072, 8, &rule151},- {8080, 8, &rule143},- {8088, 8, &rule151},- {8096, 8, &rule143},- {8104, 8, &rule151},- {8112, 2, &rule143},- {8114, 1, &rule20},- {8115, 1, &rule152},- {8116, 1, &rule20},- {8118, 2, &rule20},- {8120, 2, &rule144},- {8122, 2, &rule153},- {8124, 1, &rule154},- {8125, 1, &rule10},- {8126, 1, &rule155},- {8127, 3, &rule10},- {8130, 1, &rule20},- {8131, 1, &rule152},- {8132, 1, &rule20},- {8134, 2, &rule20},- {8136, 4, &rule156},- {8140, 1, &rule154},- {8141, 3, &rule10},- {8144, 2, &rule143},- {8146, 2, &rule20},- {8150, 2, &rule20},- {8152, 2, &rule144},- {8154, 2, &rule157},- {8157, 3, &rule10},- {8160, 2, &rule143},- {8162, 3, &rule20},- {8165, 1, &rule113},- {8166, 2, &rule20},- {8168, 2, &rule144},- {8170, 2, &rule158},- {8172, 1, &rule117},- {8173, 3, &rule10},- {8178, 1, &rule20},- {8179, 1, &rule152},- {8180, 1, &rule20},- {8182, 2, &rule20},- {8184, 2, &rule159},- {8186, 2, &rule160},- {8188, 1, &rule154},- {8189, 2, &rule10},- {8192, 11, &rule1},- {8203, 5, &rule16},- {8208, 6, &rule7},- {8214, 2, &rule2},- {8216, 1, &rule15},- {8217, 1, &rule19},- {8218, 1, &rule4},- {8219, 2, &rule15},- {8221, 1, &rule19},- {8222, 1, &rule4},- {8223, 1, &rule15},- {8224, 8, &rule2},- {8232, 1, &rule161},- {8233, 1, &rule162},- {8234, 5, &rule16},- {8239, 1, &rule1},- {8240, 9, &rule2},- {8249, 1, &rule15},- {8250, 1, &rule19},- {8251, 4, &rule2},- {8255, 2, &rule11},- {8257, 3, &rule2},- {8260, 1, &rule6},- {8261, 1, &rule4},- {8262, 1, &rule5},- {8263, 11, &rule2},- {8274, 1, &rule6},- {8275, 1, &rule2},- {8276, 1, &rule11},- {8277, 10, &rule2},- {8287, 1, &rule1},- {8288, 5, &rule16},- {8294, 10, &rule16},- {8304, 1, &rule17},- {8305, 1, &rule91},- {8308, 6, &rule17},- {8314, 3, &rule6},- {8317, 1, &rule4},- {8318, 1, &rule5},- {8319, 1, &rule91},- {8320, 10, &rule17},- {8330, 3, &rule6},- {8333, 1, &rule4},- {8334, 1, &rule5},- {8336, 13, &rule91},- {8352, 33, &rule3},- {8400, 13, &rule92},- {8413, 4, &rule119},- {8417, 1, &rule92},- {8418, 3, &rule119},- {8421, 12, &rule92},- {8448, 2, &rule13},- {8450, 1, &rule107},- {8451, 4, &rule13},- {8455, 1, &rule107},- {8456, 2, &rule13},- {8458, 1, &rule20},- {8459, 3, &rule107},- {8462, 2, &rule20},- {8464, 3, &rule107},- {8467, 1, &rule20},- {8468, 1, &rule13},- {8469, 1, &rule107},- {8470, 2, &rule13},- {8472, 1, &rule6},- {8473, 5, &rule107},- {8478, 6, &rule13},- {8484, 1, &rule107},- {8485, 1, &rule13},- {8486, 1, &rule163},- {8487, 1, &rule13},- {8488, 1, &rule107},- {8489, 1, &rule13},- {8490, 1, &rule164},- {8491, 1, &rule165},- {8492, 2, &rule107},- {8494, 1, &rule13},- {8495, 1, &rule20},- {8496, 2, &rule107},- {8498, 1, &rule166},- {8499, 1, &rule107},- {8500, 1, &rule20},- {8501, 4, &rule14},- {8505, 1, &rule20},- {8506, 2, &rule13},- {8508, 2, &rule20},- {8510, 2, &rule107},- {8512, 5, &rule6},- {8517, 1, &rule107},- {8518, 4, &rule20},- {8522, 1, &rule13},- {8523, 1, &rule6},- {8524, 2, &rule13},- {8526, 1, &rule167},- {8527, 1, &rule13},- {8528, 16, &rule17},- {8544, 16, &rule168},- {8560, 16, &rule169},- {8576, 3, &rule128},- {8579, 1, &rule22},- {8580, 1, &rule23},- {8581, 4, &rule128},- {8585, 1, &rule17},- {8586, 2, &rule13},- {8592, 5, &rule6},- {8597, 5, &rule13},- {8602, 2, &rule6},- {8604, 4, &rule13},- {8608, 1, &rule6},- {8609, 2, &rule13},- {8611, 1, &rule6},- {8612, 2, &rule13},- {8614, 1, &rule6},- {8615, 7, &rule13},- {8622, 1, &rule6},- {8623, 31, &rule13},- {8654, 2, &rule6},- {8656, 2, &rule13},- {8658, 1, &rule6},- {8659, 1, &rule13},- {8660, 1, &rule6},- {8661, 31, &rule13},- {8692, 268, &rule6},- {8960, 8, &rule13},- {8968, 1, &rule4},- {8969, 1, &rule5},- {8970, 1, &rule4},- {8971, 1, &rule5},- {8972, 20, &rule13},- {8992, 2, &rule6},- {8994, 7, &rule13},- {9001, 1, &rule4},- {9002, 1, &rule5},- {9003, 81, &rule13},- {9084, 1, &rule6},- {9085, 30, &rule13},- {9115, 25, &rule6},- {9140, 40, &rule13},- {9180, 6, &rule6},- {9186, 69, &rule13},- {9280, 11, &rule13},- {9312, 60, &rule17},- {9372, 26, &rule13},- {9398, 26, &rule170},- {9424, 26, &rule171},- {9450, 22, &rule17},- {9472, 183, &rule13},- {9655, 1, &rule6},- {9656, 9, &rule13},- {9665, 1, &rule6},- {9666, 54, &rule13},- {9720, 8, &rule6},- {9728, 111, &rule13},- {9839, 1, &rule6},- {9840, 248, &rule13},- {10088, 1, &rule4},- {10089, 1, &rule5},- {10090, 1, &rule4},- {10091, 1, &rule5},- {10092, 1, &rule4},- {10093, 1, &rule5},- {10094, 1, &rule4},- {10095, 1, &rule5},- {10096, 1, &rule4},- {10097, 1, &rule5},- {10098, 1, &rule4},- {10099, 1, &rule5},- {10100, 1, &rule4},- {10101, 1, &rule5},- {10102, 30, &rule17},- {10132, 44, &rule13},- {10176, 5, &rule6},- {10181, 1, &rule4},- {10182, 1, &rule5},- {10183, 31, &rule6},- {10214, 1, &rule4},- {10215, 1, &rule5},- {10216, 1, &rule4},- {10217, 1, &rule5},- {10218, 1, &rule4},- {10219, 1, &rule5},- {10220, 1, &rule4},- {10221, 1, &rule5},- {10222, 1, &rule4},- {10223, 1, &rule5},- {10224, 16, &rule6},- {10240, 256, &rule13},- {10496, 131, &rule6},- {10627, 1, &rule4},- {10628, 1, &rule5},- {10629, 1, &rule4},- {10630, 1, &rule5},- {10631, 1, &rule4},- {10632, 1, &rule5},- {10633, 1, &rule4},- {10634, 1, &rule5},- {10635, 1, &rule4},- {10636, 1, &rule5},- {10637, 1, &rule4},- {10638, 1, &rule5},- {10639, 1, &rule4},- {10640, 1, &rule5},- {10641, 1, &rule4},- {10642, 1, &rule5},- {10643, 1, &rule4},- {10644, 1, &rule5},- {10645, 1, &rule4},- {10646, 1, &rule5},- {10647, 1, &rule4},- {10648, 1, &rule5},- {10649, 63, &rule6},- {10712, 1, &rule4},- {10713, 1, &rule5},- {10714, 1, &rule4},- {10715, 1, &rule5},- {10716, 32, &rule6},- {10748, 1, &rule4},- {10749, 1, &rule5},- {10750, 258, &rule6},- {11008, 48, &rule13},- {11056, 21, &rule6},- {11077, 2, &rule13},- {11079, 6, &rule6},- {11085, 39, &rule13},- {11126, 32, &rule13},- {11159, 105, &rule13},- {11264, 48, &rule122},- {11312, 48, &rule123},- {11360, 1, &rule22},- {11361, 1, &rule23},- {11362, 1, &rule172},- {11363, 1, &rule173},- {11364, 1, &rule174},- {11365, 1, &rule175},- {11366, 1, &rule176},- {11367, 1, &rule22},- {11368, 1, &rule23},- {11369, 1, &rule22},- {11370, 1, &rule23},- {11371, 1, &rule22},- {11372, 1, &rule23},- {11373, 1, &rule177},- {11374, 1, &rule178},- {11375, 1, &rule179},- {11376, 1, &rule180},- {11377, 1, &rule20},- {11378, 1, &rule22},- {11379, 1, &rule23},- {11380, 1, &rule20},- {11381, 1, &rule22},- {11382, 1, &rule23},- {11383, 5, &rule20},- {11388, 2, &rule91},- {11390, 2, &rule181},- {11392, 1, &rule22},- {11393, 1, &rule23},- {11394, 1, &rule22},- {11395, 1, &rule23},- {11396, 1, &rule22},- {11397, 1, &rule23},- {11398, 1, &rule22},- {11399, 1, &rule23},- {11400, 1, &rule22},- {11401, 1, &rule23},- {11402, 1, &rule22},- {11403, 1, &rule23},- {11404, 1, &rule22},- {11405, 1, &rule23},- {11406, 1, &rule22},- {11407, 1, &rule23},- {11408, 1, &rule22},- {11409, 1, &rule23},- {11410, 1, &rule22},- {11411, 1, &rule23},- {11412, 1, &rule22},- {11413, 1, &rule23},- {11414, 1, &rule22},- {11415, 1, &rule23},- {11416, 1, &rule22},- {11417, 1, &rule23},- {11418, 1, &rule22},- {11419, 1, &rule23},- {11420, 1, &rule22},- {11421, 1, &rule23},- {11422, 1, &rule22},- {11423, 1, &rule23},- {11424, 1, &rule22},- {11425, 1, &rule23},- {11426, 1, &rule22},- {11427, 1, &rule23},- {11428, 1, &rule22},- {11429, 1, &rule23},- {11430, 1, &rule22},- {11431, 1, &rule23},- {11432, 1, &rule22},- {11433, 1, &rule23},- {11434, 1, &rule22},- {11435, 1, &rule23},- {11436, 1, &rule22},- {11437, 1, &rule23},- {11438, 1, &rule22},- {11439, 1, &rule23},- {11440, 1, &rule22},- {11441, 1, &rule23},- {11442, 1, &rule22},- {11443, 1, &rule23},- {11444, 1, &rule22},- {11445, 1, &rule23},- {11446, 1, &rule22},- {11447, 1, &rule23},- {11448, 1, &rule22},- {11449, 1, &rule23},- {11450, 1, &rule22},- {11451, 1, &rule23},- {11452, 1, &rule22},- {11453, 1, &rule23},- {11454, 1, &rule22},- {11455, 1, &rule23},- {11456, 1, &rule22},- {11457, 1, &rule23},- {11458, 1, &rule22},- {11459, 1, &rule23},- {11460, 1, &rule22},- {11461, 1, &rule23},- {11462, 1, &rule22},- {11463, 1, &rule23},- {11464, 1, &rule22},- {11465, 1, &rule23},- {11466, 1, &rule22},- {11467, 1, &rule23},- {11468, 1, &rule22},- {11469, 1, &rule23},- {11470, 1, &rule22},- {11471, 1, &rule23},- {11472, 1, &rule22},- {11473, 1, &rule23},- {11474, 1, &rule22},- {11475, 1, &rule23},- {11476, 1, &rule22},- {11477, 1, &rule23},- {11478, 1, &rule22},- {11479, 1, &rule23},- {11480, 1, &rule22},- {11481, 1, &rule23},- {11482, 1, &rule22},- {11483, 1, &rule23},- {11484, 1, &rule22},- {11485, 1, &rule23},- {11486, 1, &rule22},- {11487, 1, &rule23},- {11488, 1, &rule22},- {11489, 1, &rule23},- {11490, 1, &rule22},- {11491, 1, &rule23},- {11492, 1, &rule20},- {11493, 6, &rule13},- {11499, 1, &rule22},- {11500, 1, &rule23},- {11501, 1, &rule22},- {11502, 1, &rule23},- {11503, 3, &rule92},- {11506, 1, &rule22},- {11507, 1, &rule23},- {11513, 4, &rule2},- {11517, 1, &rule17},- {11518, 2, &rule2},- {11520, 38, &rule182},- {11559, 1, &rule182},- {11565, 1, &rule182},- {11568, 56, &rule14},- {11631, 1, &rule91},- {11632, 1, &rule2},- {11647, 1, &rule92},- {11648, 23, &rule14},- {11680, 7, &rule14},- {11688, 7, &rule14},- {11696, 7, &rule14},- {11704, 7, &rule14},- {11712, 7, &rule14},- {11720, 7, &rule14},- {11728, 7, &rule14},- {11736, 7, &rule14},- {11744, 32, &rule92},- {11776, 2, &rule2},- {11778, 1, &rule15},- {11779, 1, &rule19},- {11780, 1, &rule15},- {11781, 1, &rule19},- {11782, 3, &rule2},- {11785, 1, &rule15},- {11786, 1, &rule19},- {11787, 1, &rule2},- {11788, 1, &rule15},- {11789, 1, &rule19},- {11790, 9, &rule2},- {11799, 1, &rule7},- {11800, 2, &rule2},- {11802, 1, &rule7},- {11803, 1, &rule2},- {11804, 1, &rule15},- {11805, 1, &rule19},- {11806, 2, &rule2},- {11808, 1, &rule15},- {11809, 1, &rule19},- {11810, 1, &rule4},- {11811, 1, &rule5},- {11812, 1, &rule4},- {11813, 1, &rule5},- {11814, 1, &rule4},- {11815, 1, &rule5},- {11816, 1, &rule4},- {11817, 1, &rule5},- {11818, 5, &rule2},- {11823, 1, &rule91},- {11824, 10, &rule2},- {11834, 2, &rule7},- {11836, 4, &rule2},- {11840, 1, &rule7},- {11841, 1, &rule2},- {11842, 1, &rule4},- {11843, 13, &rule2},- {11856, 2, &rule13},- {11858, 3, &rule2},- {11861, 1, &rule4},- {11862, 1, &rule5},- {11863, 1, &rule4},- {11864, 1, &rule5},- {11865, 1, &rule4},- {11866, 1, &rule5},- {11867, 1, &rule4},- {11868, 1, &rule5},- {11869, 1, &rule7},- {11904, 26, &rule13},- {11931, 89, &rule13},- {12032, 214, &rule13},- {12272, 12, &rule13},- {12288, 1, &rule1},- {12289, 3, &rule2},- {12292, 1, &rule13},- {12293, 1, &rule91},- {12294, 1, &rule14},- {12295, 1, &rule128},- {12296, 1, &rule4},- {12297, 1, &rule5},- {12298, 1, &rule4},- {12299, 1, &rule5},- {12300, 1, &rule4},- {12301, 1, &rule5},- {12302, 1, &rule4},- {12303, 1, &rule5},- {12304, 1, &rule4},- {12305, 1, &rule5},- {12306, 2, &rule13},- {12308, 1, &rule4},- {12309, 1, &rule5},- {12310, 1, &rule4},- {12311, 1, &rule5},- {12312, 1, &rule4},- {12313, 1, &rule5},- {12314, 1, &rule4},- {12315, 1, &rule5},- {12316, 1, &rule7},- {12317, 1, &rule4},- {12318, 2, &rule5},- {12320, 1, &rule13},- {12321, 9, &rule128},- {12330, 4, &rule92},- {12334, 2, &rule124},- {12336, 1, &rule7},- {12337, 5, &rule91},- {12342, 2, &rule13},- {12344, 3, &rule128},- {12347, 1, &rule91},- {12348, 1, &rule14},- {12349, 1, &rule2},- {12350, 2, &rule13},- {12353, 86, &rule14},- {12441, 2, &rule92},- {12443, 2, &rule10},- {12445, 2, &rule91},- {12447, 1, &rule14},- {12448, 1, &rule7},- {12449, 90, &rule14},- {12539, 1, &rule2},- {12540, 3, &rule91},- {12543, 1, &rule14},- {12549, 43, &rule14},- {12593, 94, &rule14},- {12688, 2, &rule13},- {12690, 4, &rule17},- {12694, 10, &rule13},- {12704, 32, &rule14},- {12736, 36, &rule13},- {12784, 16, &rule14},- {12800, 31, &rule13},- {12832, 10, &rule17},- {12842, 30, &rule13},- {12872, 8, &rule17},- {12880, 1, &rule13},- {12881, 15, &rule17},- {12896, 32, &rule13},- {12928, 10, &rule17},- {12938, 39, &rule13},- {12977, 15, &rule17},- {12992, 320, &rule13},- {13312, 6592, &rule14},- {19904, 64, &rule13},- {19968, 21013, &rule14},- {40981, 1, &rule91},- {40982, 1143, &rule14},- {42128, 55, &rule13},- {42192, 40, &rule14},- {42232, 6, &rule91},- {42238, 2, &rule2},- {42240, 268, &rule14},- {42508, 1, &rule91},- {42509, 3, &rule2},- {42512, 16, &rule14},- {42528, 10, &rule8},- {42538, 2, &rule14},- {42560, 1, &rule22},- {42561, 1, &rule23},- {42562, 1, &rule22},- {42563, 1, &rule23},- {42564, 1, &rule22},- {42565, 1, &rule23},- {42566, 1, &rule22},- {42567, 1, &rule23},- {42568, 1, &rule22},- {42569, 1, &rule23},- {42570, 1, &rule22},- {42571, 1, &rule23},- {42572, 1, &rule22},- {42573, 1, &rule23},- {42574, 1, &rule22},- {42575, 1, &rule23},- {42576, 1, &rule22},- {42577, 1, &rule23},- {42578, 1, &rule22},- {42579, 1, &rule23},- {42580, 1, &rule22},- {42581, 1, &rule23},- {42582, 1, &rule22},- {42583, 1, &rule23},- {42584, 1, &rule22},- {42585, 1, &rule23},- {42586, 1, &rule22},- {42587, 1, &rule23},- {42588, 1, &rule22},- {42589, 1, &rule23},- {42590, 1, &rule22},- {42591, 1, &rule23},- {42592, 1, &rule22},- {42593, 1, &rule23},- {42594, 1, &rule22},- {42595, 1, &rule23},- {42596, 1, &rule22},- {42597, 1, &rule23},- {42598, 1, &rule22},- {42599, 1, &rule23},- {42600, 1, &rule22},- {42601, 1, &rule23},- {42602, 1, &rule22},- {42603, 1, &rule23},- {42604, 1, &rule22},- {42605, 1, &rule23},- {42606, 1, &rule14},- {42607, 1, &rule92},- {42608, 3, &rule119},- {42611, 1, &rule2},- {42612, 10, &rule92},- {42622, 1, &rule2},- {42623, 1, &rule91},- {42624, 1, &rule22},- {42625, 1, &rule23},- {42626, 1, &rule22},- {42627, 1, &rule23},- {42628, 1, &rule22},- {42629, 1, &rule23},- {42630, 1, &rule22},- {42631, 1, &rule23},- {42632, 1, &rule22},- {42633, 1, &rule23},- {42634, 1, &rule22},- {42635, 1, &rule23},- {42636, 1, &rule22},- {42637, 1, &rule23},- {42638, 1, &rule22},- {42639, 1, &rule23},- {42640, 1, &rule22},- {42641, 1, &rule23},- {42642, 1, &rule22},- {42643, 1, &rule23},- {42644, 1, &rule22},- {42645, 1, &rule23},- {42646, 1, &rule22},- {42647, 1, &rule23},- {42648, 1, &rule22},- {42649, 1, &rule23},- {42650, 1, &rule22},- {42651, 1, &rule23},- {42652, 2, &rule91},- {42654, 2, &rule92},- {42656, 70, &rule14},- {42726, 10, &rule128},- {42736, 2, &rule92},- {42738, 6, &rule2},- {42752, 23, &rule10},- {42775, 9, &rule91},- {42784, 2, &rule10},- {42786, 1, &rule22},- {42787, 1, &rule23},- {42788, 1, &rule22},- {42789, 1, &rule23},- {42790, 1, &rule22},- {42791, 1, &rule23},- {42792, 1, &rule22},- {42793, 1, &rule23},- {42794, 1, &rule22},- {42795, 1, &rule23},- {42796, 1, &rule22},- {42797, 1, &rule23},- {42798, 1, &rule22},- {42799, 1, &rule23},- {42800, 2, &rule20},- {42802, 1, &rule22},- {42803, 1, &rule23},- {42804, 1, &rule22},- {42805, 1, &rule23},- {42806, 1, &rule22},- {42807, 1, &rule23},- {42808, 1, &rule22},- {42809, 1, &rule23},- {42810, 1, &rule22},- {42811, 1, &rule23},- {42812, 1, &rule22},- {42813, 1, &rule23},- {42814, 1, &rule22},- {42815, 1, &rule23},- {42816, 1, &rule22},- {42817, 1, &rule23},- {42818, 1, &rule22},- {42819, 1, &rule23},- {42820, 1, &rule22},- {42821, 1, &rule23},- {42822, 1, &rule22},- {42823, 1, &rule23},- {42824, 1, &rule22},- {42825, 1, &rule23},- {42826, 1, &rule22},- {42827, 1, &rule23},- {42828, 1, &rule22},- {42829, 1, &rule23},- {42830, 1, &rule22},- {42831, 1, &rule23},- {42832, 1, &rule22},- {42833, 1, &rule23},- {42834, 1, &rule22},- {42835, 1, &rule23},- {42836, 1, &rule22},- {42837, 1, &rule23},- {42838, 1, &rule22},- {42839, 1, &rule23},- {42840, 1, &rule22},- {42841, 1, &rule23},- {42842, 1, &rule22},- {42843, 1, &rule23},- {42844, 1, &rule22},- {42845, 1, &rule23},- {42846, 1, &rule22},- {42847, 1, &rule23},- {42848, 1, &rule22},- {42849, 1, &rule23},- {42850, 1, &rule22},- {42851, 1, &rule23},- {42852, 1, &rule22},- {42853, 1, &rule23},- {42854, 1, &rule22},- {42855, 1, &rule23},- {42856, 1, &rule22},- {42857, 1, &rule23},- {42858, 1, &rule22},- {42859, 1, &rule23},- {42860, 1, &rule22},- {42861, 1, &rule23},- {42862, 1, &rule22},- {42863, 1, &rule23},- {42864, 1, &rule91},- {42865, 8, &rule20},- {42873, 1, &rule22},- {42874, 1, &rule23},- {42875, 1, &rule22},- {42876, 1, &rule23},- {42877, 1, &rule183},- {42878, 1, &rule22},- {42879, 1, &rule23},- {42880, 1, &rule22},- {42881, 1, &rule23},- {42882, 1, &rule22},- {42883, 1, &rule23},- {42884, 1, &rule22},- {42885, 1, &rule23},- {42886, 1, &rule22},- {42887, 1, &rule23},- {42888, 1, &rule91},- {42889, 2, &rule10},- {42891, 1, &rule22},- {42892, 1, &rule23},- {42893, 1, &rule184},- {42894, 1, &rule20},- {42895, 1, &rule14},- {42896, 1, &rule22},- {42897, 1, &rule23},- {42898, 1, &rule22},- {42899, 1, &rule23},- {42900, 1, &rule185},- {42901, 1, &rule20},- {42902, 1, &rule22},- {42903, 1, &rule23},- {42904, 1, &rule22},- {42905, 1, &rule23},- {42906, 1, &rule22},- {42907, 1, &rule23},- {42908, 1, &rule22},- {42909, 1, &rule23},- {42910, 1, &rule22},- {42911, 1, &rule23},- {42912, 1, &rule22},- {42913, 1, &rule23},- {42914, 1, &rule22},- {42915, 1, &rule23},- {42916, 1, &rule22},- {42917, 1, &rule23},- {42918, 1, &rule22},- {42919, 1, &rule23},- {42920, 1, &rule22},- {42921, 1, &rule23},- {42922, 1, &rule186},- {42923, 1, &rule187},- {42924, 1, &rule188},- {42925, 1, &rule189},- {42926, 1, &rule186},- {42927, 1, &rule20},- {42928, 1, &rule190},- {42929, 1, &rule191},- {42930, 1, &rule192},- {42931, 1, &rule193},- {42932, 1, &rule22},- {42933, 1, &rule23},- {42934, 1, &rule22},- {42935, 1, &rule23},- {42936, 1, &rule22},- {42937, 1, &rule23},- {42938, 1, &rule22},- {42939, 1, &rule23},- {42940, 1, &rule22},- {42941, 1, &rule23},- {42942, 1, &rule22},- {42943, 1, &rule23},- {42944, 1, &rule22},- {42945, 1, &rule23},- {42946, 1, &rule22},- {42947, 1, &rule23},- {42948, 1, &rule194},- {42949, 1, &rule195},- {42950, 1, &rule196},- {42951, 1, &rule22},- {42952, 1, &rule23},- {42953, 1, &rule22},- {42954, 1, &rule23},- {42960, 1, &rule22},- {42961, 1, &rule23},- {42963, 1, &rule20},- {42965, 1, &rule20},- {42966, 1, &rule22},- {42967, 1, &rule23},- {42968, 1, &rule22},- {42969, 1, &rule23},- {42994, 3, &rule91},- {42997, 1, &rule22},- {42998, 1, &rule23},- {42999, 1, &rule14},- {43000, 2, &rule91},- {43002, 1, &rule20},- {43003, 7, &rule14},- {43010, 1, &rule92},- {43011, 3, &rule14},- {43014, 1, &rule92},- {43015, 4, &rule14},- {43019, 1, &rule92},- {43020, 23, &rule14},- {43043, 2, &rule124},- {43045, 2, &rule92},- {43047, 1, &rule124},- {43048, 4, &rule13},- {43052, 1, &rule92},- {43056, 6, &rule17},- {43062, 2, &rule13},- {43064, 1, &rule3},- {43065, 1, &rule13},- {43072, 52, &rule14},- {43124, 4, &rule2},- {43136, 2, &rule124},- {43138, 50, &rule14},- {43188, 16, &rule124},- {43204, 2, &rule92},- {43214, 2, &rule2},- {43216, 10, &rule8},- {43232, 18, &rule92},- {43250, 6, &rule14},- {43256, 3, &rule2},- {43259, 1, &rule14},- {43260, 1, &rule2},- {43261, 2, &rule14},- {43263, 1, &rule92},- {43264, 10, &rule8},- {43274, 28, &rule14},- {43302, 8, &rule92},- {43310, 2, &rule2},- {43312, 23, &rule14},- {43335, 11, &rule92},- {43346, 2, &rule124},- {43359, 1, &rule2},- {43360, 29, &rule14},- {43392, 3, &rule92},- {43395, 1, &rule124},- {43396, 47, &rule14},- {43443, 1, &rule92},- {43444, 2, &rule124},- {43446, 4, &rule92},- {43450, 2, &rule124},- {43452, 2, &rule92},- {43454, 3, &rule124},- {43457, 13, &rule2},- {43471, 1, &rule91},- {43472, 10, &rule8},- {43486, 2, &rule2},- {43488, 5, &rule14},- {43493, 1, &rule92},- {43494, 1, &rule91},- {43495, 9, &rule14},- {43504, 10, &rule8},- {43514, 5, &rule14},- {43520, 41, &rule14},- {43561, 6, &rule92},- {43567, 2, &rule124},- {43569, 2, &rule92},- {43571, 2, &rule124},- {43573, 2, &rule92},- {43584, 3, &rule14},- {43587, 1, &rule92},- {43588, 8, &rule14},- {43596, 1, &rule92},- {43597, 1, &rule124},- {43600, 10, &rule8},- {43612, 4, &rule2},- {43616, 16, &rule14},- {43632, 1, &rule91},- {43633, 6, &rule14},- {43639, 3, &rule13},- {43642, 1, &rule14},- {43643, 1, &rule124},- {43644, 1, &rule92},- {43645, 1, &rule124},- {43646, 50, &rule14},- {43696, 1, &rule92},- {43697, 1, &rule14},- {43698, 3, &rule92},- {43701, 2, &rule14},- {43703, 2, &rule92},- {43705, 5, &rule14},- {43710, 2, &rule92},- {43712, 1, &rule14},- {43713, 1, &rule92},- {43714, 1, &rule14},- {43739, 2, &rule14},- {43741, 1, &rule91},- {43742, 2, &rule2},- {43744, 11, &rule14},- {43755, 1, &rule124},- {43756, 2, &rule92},- {43758, 2, &rule124},- {43760, 2, &rule2},- {43762, 1, &rule14},- {43763, 2, &rule91},- {43765, 1, &rule124},- {43766, 1, &rule92},- {43777, 6, &rule14},- {43785, 6, &rule14},- {43793, 6, &rule14},- {43808, 7, &rule14},- {43816, 7, &rule14},- {43824, 35, &rule20},- {43859, 1, &rule197},- {43860, 7, &rule20},- {43867, 1, &rule10},- {43868, 4, &rule91},- {43872, 9, &rule20},- {43881, 1, &rule91},- {43882, 2, &rule10},- {43888, 80, &rule198},- {43968, 35, &rule14},- {44003, 2, &rule124},- {44005, 1, &rule92},- {44006, 2, &rule124},- {44008, 1, &rule92},- {44009, 2, &rule124},- {44011, 1, &rule2},- {44012, 1, &rule124},- {44013, 1, &rule92},- {44016, 10, &rule8},- {44032, 11172, &rule14},- {55216, 23, &rule14},- {55243, 49, &rule14},- {55296, 896, &rule199},- {56192, 128, &rule199},- {56320, 1024, &rule199},- {57344, 6400, &rule200},- {63744, 366, &rule14},- {64112, 106, &rule14},- {64256, 7, &rule20},- {64275, 5, &rule20},- {64285, 1, &rule14},- {64286, 1, &rule92},- {64287, 10, &rule14},- {64297, 1, &rule6},- {64298, 13, &rule14},- {64312, 5, &rule14},- {64318, 1, &rule14},- {64320, 2, &rule14},- {64323, 2, &rule14},- {64326, 108, &rule14},- {64434, 17, &rule10},- {64467, 363, &rule14},- {64830, 1, &rule5},- {64831, 1, &rule4},- {64832, 16, &rule13},- {64848, 64, &rule14},- {64914, 54, &rule14},- {64975, 1, &rule13},- {65008, 12, &rule14},- {65020, 1, &rule3},- {65021, 3, &rule13},- {65024, 16, &rule92},- {65040, 7, &rule2},- {65047, 1, &rule4},- {65048, 1, &rule5},- {65049, 1, &rule2},- {65056, 16, &rule92},- {65072, 1, &rule2},- {65073, 2, &rule7},- {65075, 2, &rule11},- {65077, 1, &rule4},- {65078, 1, &rule5},- {65079, 1, &rule4},- {65080, 1, &rule5},- {65081, 1, &rule4},- {65082, 1, &rule5},- {65083, 1, &rule4},- {65084, 1, &rule5},- {65085, 1, &rule4},- {65086, 1, &rule5},- {65087, 1, &rule4},- {65088, 1, &rule5},- {65089, 1, &rule4},- {65090, 1, &rule5},- {65091, 1, &rule4},- {65092, 1, &rule5},- {65093, 2, &rule2},- {65095, 1, &rule4},- {65096, 1, &rule5},- {65097, 4, &rule2},- {65101, 3, &rule11},- {65104, 3, &rule2},- {65108, 4, &rule2},- {65112, 1, &rule7},- {65113, 1, &rule4},- {65114, 1, &rule5},- {65115, 1, &rule4},- {65116, 1, &rule5},- {65117, 1, &rule4},- {65118, 1, &rule5},- {65119, 3, &rule2},- {65122, 1, &rule6},- {65123, 1, &rule7},- {65124, 3, &rule6},- {65128, 1, &rule2},- {65129, 1, &rule3},- {65130, 2, &rule2},- {65136, 5, &rule14},- {65142, 135, &rule14},- {65279, 1, &rule16},- {65281, 3, &rule2},- {65284, 1, &rule3},- {65285, 3, &rule2},- {65288, 1, &rule4},- {65289, 1, &rule5},- {65290, 1, &rule2},- {65291, 1, &rule6},- {65292, 1, &rule2},- {65293, 1, &rule7},- {65294, 2, &rule2},- {65296, 10, &rule8},- {65306, 2, &rule2},- {65308, 3, &rule6},- {65311, 2, &rule2},- {65313, 26, &rule9},- {65339, 1, &rule4},- {65340, 1, &rule2},- {65341, 1, &rule5},- {65342, 1, &rule10},- {65343, 1, &rule11},- {65344, 1, &rule10},- {65345, 26, &rule12},- {65371, 1, &rule4},- {65372, 1, &rule6},- {65373, 1, &rule5},- {65374, 1, &rule6},- {65375, 1, &rule4},- {65376, 1, &rule5},- {65377, 1, &rule2},- {65378, 1, &rule4},- {65379, 1, &rule5},- {65380, 2, &rule2},- {65382, 10, &rule14},- {65392, 1, &rule91},- {65393, 45, &rule14},- {65438, 2, &rule91},- {65440, 31, &rule14},- {65474, 6, &rule14},- {65482, 6, &rule14},- {65490, 6, &rule14},- {65498, 3, &rule14},- {65504, 2, &rule3},- {65506, 1, &rule6},- {65507, 1, &rule10},- {65508, 1, &rule13},- {65509, 2, &rule3},- {65512, 1, &rule13},- {65513, 4, &rule6},- {65517, 2, &rule13},- {65529, 3, &rule16},- {65532, 2, &rule13},- {65536, 12, &rule14},- {65549, 26, &rule14},- {65576, 19, &rule14},- {65596, 2, &rule14},- {65599, 15, &rule14},- {65616, 14, &rule14},- {65664, 123, &rule14},- {65792, 3, &rule2},- {65799, 45, &rule17},- {65847, 9, &rule13},- {65856, 53, &rule128},- {65909, 4, &rule17},- {65913, 17, &rule13},- {65930, 2, &rule17},- {65932, 3, &rule13},- {65936, 13, &rule13},- {65952, 1, &rule13},- {66000, 45, &rule13},- {66045, 1, &rule92},- {66176, 29, &rule14},- {66208, 49, &rule14},- {66272, 1, &rule92},- {66273, 27, &rule17},- {66304, 32, &rule14},- {66336, 4, &rule17},- {66349, 20, &rule14},- {66369, 1, &rule128},- {66370, 8, &rule14},- {66378, 1, &rule128},- {66384, 38, &rule14},- {66422, 5, &rule92},- {66432, 30, &rule14},- {66463, 1, &rule2},- {66464, 36, &rule14},- {66504, 8, &rule14},- {66512, 1, &rule2},- {66513, 5, &rule128},- {66560, 40, &rule201},- {66600, 40, &rule202},- {66640, 78, &rule14},- {66720, 10, &rule8},- {66736, 36, &rule201},- {66776, 36, &rule202},- {66816, 40, &rule14},- {66864, 52, &rule14},- {66927, 1, &rule2},- {66928, 11, &rule203},- {66940, 15, &rule203},- {66956, 7, &rule203},- {66964, 2, &rule203},- {66967, 11, &rule204},- {66979, 15, &rule204},- {66995, 7, &rule204},- {67003, 2, &rule204},- {67072, 311, &rule14},- {67392, 22, &rule14},- {67424, 8, &rule14},- {67456, 6, &rule91},- {67463, 42, &rule91},- {67506, 9, &rule91},- {67584, 6, &rule14},- {67592, 1, &rule14},- {67594, 44, &rule14},- {67639, 2, &rule14},- {67644, 1, &rule14},- {67647, 23, &rule14},- {67671, 1, &rule2},- {67672, 8, &rule17},- {67680, 23, &rule14},- {67703, 2, &rule13},- {67705, 7, &rule17},- {67712, 31, &rule14},- {67751, 9, &rule17},- {67808, 19, &rule14},- {67828, 2, &rule14},- {67835, 5, &rule17},- {67840, 22, &rule14},- {67862, 6, &rule17},- {67871, 1, &rule2},- {67872, 26, &rule14},- {67903, 1, &rule2},- {67968, 56, &rule14},- {68028, 2, &rule17},- {68030, 2, &rule14},- {68032, 16, &rule17},- {68050, 46, &rule17},- {68096, 1, &rule14},- {68097, 3, &rule92},- {68101, 2, &rule92},- {68108, 4, &rule92},- {68112, 4, &rule14},- {68117, 3, &rule14},- {68121, 29, &rule14},- {68152, 3, &rule92},- {68159, 1, &rule92},- {68160, 9, &rule17},- {68176, 9, &rule2},- {68192, 29, &rule14},- {68221, 2, &rule17},- {68223, 1, &rule2},- {68224, 29, &rule14},- {68253, 3, &rule17},- {68288, 8, &rule14},- {68296, 1, &rule13},- {68297, 28, &rule14},- {68325, 2, &rule92},- {68331, 5, &rule17},- {68336, 7, &rule2},- {68352, 54, &rule14},- {68409, 7, &rule2},- {68416, 22, &rule14},- {68440, 8, &rule17},- {68448, 19, &rule14},- {68472, 8, &rule17},- {68480, 18, &rule14},- {68505, 4, &rule2},- {68521, 7, &rule17},- {68608, 73, &rule14},- {68736, 51, &rule97},- {68800, 51, &rule102},- {68858, 6, &rule17},- {68864, 36, &rule14},- {68900, 4, &rule92},- {68912, 10, &rule8},- {69216, 31, &rule17},- {69248, 42, &rule14},- {69291, 2, &rule92},- {69293, 1, &rule7},- {69296, 2, &rule14},- {69376, 29, &rule14},- {69405, 10, &rule17},- {69415, 1, &rule14},- {69424, 22, &rule14},- {69446, 11, &rule92},- {69457, 4, &rule17},- {69461, 5, &rule2},- {69488, 18, &rule14},- {69506, 4, &rule92},- {69510, 4, &rule2},- {69552, 21, &rule14},- {69573, 7, &rule17},- {69600, 23, &rule14},- {69632, 1, &rule124},- {69633, 1, &rule92},- {69634, 1, &rule124},- {69635, 53, &rule14},- {69688, 15, &rule92},- {69703, 7, &rule2},- {69714, 20, &rule17},- {69734, 10, &rule8},- {69744, 1, &rule92},- {69745, 2, &rule14},- {69747, 2, &rule92},- {69749, 1, &rule14},- {69759, 3, &rule92},- {69762, 1, &rule124},- {69763, 45, &rule14},- {69808, 3, &rule124},- {69811, 4, &rule92},- {69815, 2, &rule124},- {69817, 2, &rule92},- {69819, 2, &rule2},- {69821, 1, &rule16},- {69822, 4, &rule2},- {69826, 1, &rule92},- {69837, 1, &rule16},- {69840, 25, &rule14},- {69872, 10, &rule8},- {69888, 3, &rule92},- {69891, 36, &rule14},- {69927, 5, &rule92},- {69932, 1, &rule124},- {69933, 8, &rule92},- {69942, 10, &rule8},- {69952, 4, &rule2},- {69956, 1, &rule14},- {69957, 2, &rule124},- {69959, 1, &rule14},- {69968, 35, &rule14},- {70003, 1, &rule92},- {70004, 2, &rule2},- {70006, 1, &rule14},- {70016, 2, &rule92},- {70018, 1, &rule124},- {70019, 48, &rule14},- {70067, 3, &rule124},- {70070, 9, &rule92},- {70079, 2, &rule124},- {70081, 4, &rule14},- {70085, 4, &rule2},- {70089, 4, &rule92},- {70093, 1, &rule2},- {70094, 1, &rule124},- {70095, 1, &rule92},- {70096, 10, &rule8},- {70106, 1, &rule14},- {70107, 1, &rule2},- {70108, 1, &rule14},- {70109, 3, &rule2},- {70113, 20, &rule17},- {70144, 18, &rule14},- {70163, 25, &rule14},- {70188, 3, &rule124},- {70191, 3, &rule92},- {70194, 2, &rule124},- {70196, 1, &rule92},- {70197, 1, &rule124},- {70198, 2, &rule92},- {70200, 6, &rule2},- {70206, 1, &rule92},- {70272, 7, &rule14},- {70280, 1, &rule14},- {70282, 4, &rule14},- {70287, 15, &rule14},- {70303, 10, &rule14},- {70313, 1, &rule2},- {70320, 47, &rule14},- {70367, 1, &rule92},- {70368, 3, &rule124},- {70371, 8, &rule92},- {70384, 10, &rule8},- {70400, 2, &rule92},- {70402, 2, &rule124},- {70405, 8, &rule14},- {70415, 2, &rule14},- {70419, 22, &rule14},- {70442, 7, &rule14},- {70450, 2, &rule14},- {70453, 5, &rule14},- {70459, 2, &rule92},- {70461, 1, &rule14},- {70462, 2, &rule124},- {70464, 1, &rule92},- {70465, 4, &rule124},- {70471, 2, &rule124},- {70475, 3, &rule124},- {70480, 1, &rule14},- {70487, 1, &rule124},- {70493, 5, &rule14},- {70498, 2, &rule124},- {70502, 7, &rule92},- {70512, 5, &rule92},- {70656, 53, &rule14},- {70709, 3, &rule124},- {70712, 8, &rule92},- {70720, 2, &rule124},- {70722, 3, &rule92},- {70725, 1, &rule124},- {70726, 1, &rule92},- {70727, 4, &rule14},- {70731, 5, &rule2},- {70736, 10, &rule8},- {70746, 2, &rule2},- {70749, 1, &rule2},- {70750, 1, &rule92},- {70751, 3, &rule14},- {70784, 48, &rule14},- {70832, 3, &rule124},- {70835, 6, &rule92},- {70841, 1, &rule124},- {70842, 1, &rule92},- {70843, 4, &rule124},- {70847, 2, &rule92},- {70849, 1, &rule124},- {70850, 2, &rule92},- {70852, 2, &rule14},- {70854, 1, &rule2},- {70855, 1, &rule14},- {70864, 10, &rule8},- {71040, 47, &rule14},- {71087, 3, &rule124},- {71090, 4, &rule92},- {71096, 4, &rule124},- {71100, 2, &rule92},- {71102, 1, &rule124},- {71103, 2, &rule92},- {71105, 23, &rule2},- {71128, 4, &rule14},- {71132, 2, &rule92},- {71168, 48, &rule14},- {71216, 3, &rule124},- {71219, 8, &rule92},- {71227, 2, &rule124},- {71229, 1, &rule92},- {71230, 1, &rule124},- {71231, 2, &rule92},- {71233, 3, &rule2},- {71236, 1, &rule14},- {71248, 10, &rule8},- {71264, 13, &rule2},- {71296, 43, &rule14},- {71339, 1, &rule92},- {71340, 1, &rule124},- {71341, 1, &rule92},- {71342, 2, &rule124},- {71344, 6, &rule92},- {71350, 1, &rule124},- {71351, 1, &rule92},- {71352, 1, &rule14},- {71353, 1, &rule2},- {71360, 10, &rule8},- {71424, 27, &rule14},- {71453, 3, &rule92},- {71456, 2, &rule124},- {71458, 4, &rule92},- {71462, 1, &rule124},- {71463, 5, &rule92},- {71472, 10, &rule8},- {71482, 2, &rule17},- {71484, 3, &rule2},- {71487, 1, &rule13},- {71488, 7, &rule14},- {71680, 44, &rule14},- {71724, 3, &rule124},- {71727, 9, &rule92},- {71736, 1, &rule124},- {71737, 2, &rule92},- {71739, 1, &rule2},- {71840, 32, &rule9},- {71872, 32, &rule12},- {71904, 10, &rule8},- {71914, 9, &rule17},- {71935, 8, &rule14},- {71945, 1, &rule14},- {71948, 8, &rule14},- {71957, 2, &rule14},- {71960, 24, &rule14},- {71984, 6, &rule124},- {71991, 2, &rule124},- {71995, 2, &rule92},- {71997, 1, &rule124},- {71998, 1, &rule92},- {71999, 1, &rule14},- {72000, 1, &rule124},- {72001, 1, &rule14},- {72002, 1, &rule124},- {72003, 1, &rule92},- {72004, 3, &rule2},- {72016, 10, &rule8},- {72096, 8, &rule14},- {72106, 39, &rule14},- {72145, 3, &rule124},- {72148, 4, &rule92},- {72154, 2, &rule92},- {72156, 4, &rule124},- {72160, 1, &rule92},- {72161, 1, &rule14},- {72162, 1, &rule2},- {72163, 1, &rule14},- {72164, 1, &rule124},- {72192, 1, &rule14},- {72193, 10, &rule92},- {72203, 40, &rule14},- {72243, 6, &rule92},- {72249, 1, &rule124},- {72250, 1, &rule14},- {72251, 4, &rule92},- {72255, 8, &rule2},- {72263, 1, &rule92},- {72272, 1, &rule14},- {72273, 6, &rule92},- {72279, 2, &rule124},- {72281, 3, &rule92},- {72284, 46, &rule14},- {72330, 13, &rule92},- {72343, 1, &rule124},- {72344, 2, &rule92},- {72346, 3, &rule2},- {72349, 1, &rule14},- {72350, 5, &rule2},- {72368, 73, &rule14},- {72704, 9, &rule14},- {72714, 37, &rule14},- {72751, 1, &rule124},- {72752, 7, &rule92},- {72760, 6, &rule92},- {72766, 1, &rule124},- {72767, 1, &rule92},- {72768, 1, &rule14},- {72769, 5, &rule2},- {72784, 10, &rule8},- {72794, 19, &rule17},- {72816, 2, &rule2},- {72818, 30, &rule14},- {72850, 22, &rule92},- {72873, 1, &rule124},- {72874, 7, &rule92},- {72881, 1, &rule124},- {72882, 2, &rule92},- {72884, 1, &rule124},- {72885, 2, &rule92},- {72960, 7, &rule14},- {72968, 2, &rule14},- {72971, 38, &rule14},- {73009, 6, &rule92},- {73018, 1, &rule92},- {73020, 2, &rule92},- {73023, 7, &rule92},- {73030, 1, &rule14},- {73031, 1, &rule92},- {73040, 10, &rule8},- {73056, 6, &rule14},- {73063, 2, &rule14},- {73066, 32, &rule14},- {73098, 5, &rule124},- {73104, 2, &rule92},- {73107, 2, &rule124},- {73109, 1, &rule92},- {73110, 1, &rule124},- {73111, 1, &rule92},- {73112, 1, &rule14},- {73120, 10, &rule8},- {73440, 19, &rule14},- {73459, 2, &rule92},- {73461, 2, &rule124},- {73463, 2, &rule2},- {73648, 1, &rule14},- {73664, 21, &rule17},- {73685, 8, &rule13},- {73693, 4, &rule3},- {73697, 17, &rule13},- {73727, 1, &rule2},- {73728, 922, &rule14},- {74752, 111, &rule128},- {74864, 5, &rule2},- {74880, 196, &rule14},- {77712, 97, &rule14},- {77809, 2, &rule2},- {77824, 1071, &rule14},- {78896, 9, &rule16},- {82944, 583, &rule14},- {92160, 569, &rule14},- {92736, 31, &rule14},- {92768, 10, &rule8},- {92782, 2, &rule2},- {92784, 79, &rule14},- {92864, 10, &rule8},- {92880, 30, &rule14},- {92912, 5, &rule92},- {92917, 1, &rule2},- {92928, 48, &rule14},- {92976, 7, &rule92},- {92983, 5, &rule2},- {92988, 4, &rule13},- {92992, 4, &rule91},- {92996, 1, &rule2},- {92997, 1, &rule13},- {93008, 10, &rule8},- {93019, 7, &rule17},- {93027, 21, &rule14},- {93053, 19, &rule14},- {93760, 32, &rule9},- {93792, 32, &rule12},- {93824, 23, &rule17},- {93847, 4, &rule2},- {93952, 75, &rule14},- {94031, 1, &rule92},- {94032, 1, &rule14},- {94033, 55, &rule124},- {94095, 4, &rule92},- {94099, 13, &rule91},- {94176, 2, &rule91},- {94178, 1, &rule2},- {94179, 1, &rule91},- {94180, 1, &rule92},- {94192, 2, &rule124},- {94208, 6136, &rule14},- {100352, 1238, &rule14},- {101632, 9, &rule14},- {110576, 4, &rule91},- {110581, 7, &rule91},- {110589, 2, &rule91},- {110592, 291, &rule14},- {110928, 3, &rule14},- {110948, 4, &rule14},- {110960, 396, &rule14},- {113664, 107, &rule14},- {113776, 13, &rule14},- {113792, 9, &rule14},- {113808, 10, &rule14},- {113820, 1, &rule13},- {113821, 2, &rule92},- {113823, 1, &rule2},- {113824, 4, &rule16},- {118528, 46, &rule92},- {118576, 23, &rule92},- {118608, 116, &rule13},- {118784, 246, &rule13},- {119040, 39, &rule13},- {119081, 60, &rule13},- {119141, 2, &rule124},- {119143, 3, &rule92},- {119146, 3, &rule13},- {119149, 6, &rule124},- {119155, 8, &rule16},- {119163, 8, &rule92},- {119171, 2, &rule13},- {119173, 7, &rule92},- {119180, 30, &rule13},- {119210, 4, &rule92},- {119214, 61, &rule13},- {119296, 66, &rule13},- {119362, 3, &rule92},- {119365, 1, &rule13},- {119520, 20, &rule17},- {119552, 87, &rule13},- {119648, 25, &rule17},- {119808, 26, &rule107},- {119834, 26, &rule20},- {119860, 26, &rule107},- {119886, 7, &rule20},- {119894, 18, &rule20},- {119912, 26, &rule107},- {119938, 26, &rule20},- {119964, 1, &rule107},- {119966, 2, &rule107},- {119970, 1, &rule107},- {119973, 2, &rule107},- {119977, 4, &rule107},- {119982, 8, &rule107},- {119990, 4, &rule20},- {119995, 1, &rule20},- {119997, 7, &rule20},- {120005, 11, &rule20},- {120016, 26, &rule107},- {120042, 26, &rule20},- {120068, 2, &rule107},- {120071, 4, &rule107},- {120077, 8, &rule107},- {120086, 7, &rule107},- {120094, 26, &rule20},- {120120, 2, &rule107},- {120123, 4, &rule107},- {120128, 5, &rule107},- {120134, 1, &rule107},- {120138, 7, &rule107},- {120146, 26, &rule20},- {120172, 26, &rule107},- {120198, 26, &rule20},- {120224, 26, &rule107},- {120250, 26, &rule20},- {120276, 26, &rule107},- {120302, 26, &rule20},- {120328, 26, &rule107},- {120354, 26, &rule20},- {120380, 26, &rule107},- {120406, 26, &rule20},- {120432, 26, &rule107},- {120458, 28, &rule20},- {120488, 25, &rule107},- {120513, 1, &rule6},- {120514, 25, &rule20},- {120539, 1, &rule6},- {120540, 6, &rule20},- {120546, 25, &rule107},- {120571, 1, &rule6},- {120572, 25, &rule20},- {120597, 1, &rule6},- {120598, 6, &rule20},- {120604, 25, &rule107},- {120629, 1, &rule6},- {120630, 25, &rule20},- {120655, 1, &rule6},- {120656, 6, &rule20},- {120662, 25, &rule107},- {120687, 1, &rule6},- {120688, 25, &rule20},- {120713, 1, &rule6},- {120714, 6, &rule20},- {120720, 25, &rule107},- {120745, 1, &rule6},- {120746, 25, &rule20},- {120771, 1, &rule6},- {120772, 6, &rule20},- {120778, 1, &rule107},- {120779, 1, &rule20},- {120782, 50, &rule8},- {120832, 512, &rule13},- {121344, 55, &rule92},- {121399, 4, &rule13},- {121403, 50, &rule92},- {121453, 8, &rule13},- {121461, 1, &rule92},- {121462, 14, &rule13},- {121476, 1, &rule92},- {121477, 2, &rule13},- {121479, 5, &rule2},- {121499, 5, &rule92},- {121505, 15, &rule92},- {122624, 10, &rule20},- {122634, 1, &rule14},- {122635, 20, &rule20},- {122880, 7, &rule92},- {122888, 17, &rule92},- {122907, 7, &rule92},- {122915, 2, &rule92},- {122918, 5, &rule92},- {123136, 45, &rule14},- {123184, 7, &rule92},- {123191, 7, &rule91},- {123200, 10, &rule8},- {123214, 1, &rule14},- {123215, 1, &rule13},- {123536, 30, &rule14},- {123566, 1, &rule92},- {123584, 44, &rule14},- {123628, 4, &rule92},- {123632, 10, &rule8},- {123647, 1, &rule3},- {124896, 7, &rule14},- {124904, 4, &rule14},- {124909, 2, &rule14},- {124912, 15, &rule14},- {124928, 197, &rule14},- {125127, 9, &rule17},- {125136, 7, &rule92},- {125184, 34, &rule205},- {125218, 34, &rule206},- {125252, 7, &rule92},- {125259, 1, &rule91},- {125264, 10, &rule8},- {125278, 2, &rule2},- {126065, 59, &rule17},- {126124, 1, &rule13},- {126125, 3, &rule17},- {126128, 1, &rule3},- {126129, 4, &rule17},- {126209, 45, &rule17},- {126254, 1, &rule13},- {126255, 15, &rule17},- {126464, 4, &rule14},- {126469, 27, &rule14},- {126497, 2, &rule14},- {126500, 1, &rule14},- {126503, 1, &rule14},- {126505, 10, &rule14},- {126516, 4, &rule14},- {126521, 1, &rule14},- {126523, 1, &rule14},- {126530, 1, &rule14},- {126535, 1, &rule14},- {126537, 1, &rule14},- {126539, 1, &rule14},- {126541, 3, &rule14},- {126545, 2, &rule14},- {126548, 1, &rule14},- {126551, 1, &rule14},- {126553, 1, &rule14},- {126555, 1, &rule14},- {126557, 1, &rule14},- {126559, 1, &rule14},- {126561, 2, &rule14},- {126564, 1, &rule14},- {126567, 4, &rule14},- {126572, 7, &rule14},- {126580, 4, &rule14},- {126585, 4, &rule14},- {126590, 1, &rule14},- {126592, 10, &rule14},- {126603, 17, &rule14},- {126625, 3, &rule14},- {126629, 5, &rule14},- {126635, 17, &rule14},- {126704, 2, &rule6},- {126976, 44, &rule13},- {127024, 100, &rule13},- {127136, 15, &rule13},- {127153, 15, &rule13},- {127169, 15, &rule13},- {127185, 37, &rule13},- {127232, 13, &rule17},- {127245, 161, &rule13},- {127462, 29, &rule13},- {127504, 44, &rule13},- {127552, 9, &rule13},- {127568, 2, &rule13},- {127584, 6, &rule13},- {127744, 251, &rule13},- {127995, 5, &rule10},- {128000, 728, &rule13},- {128733, 16, &rule13},- {128752, 13, &rule13},- {128768, 116, &rule13},- {128896, 89, &rule13},- {128992, 12, &rule13},- {129008, 1, &rule13},- {129024, 12, &rule13},- {129040, 56, &rule13},- {129104, 10, &rule13},- {129120, 40, &rule13},- {129168, 30, &rule13},- {129200, 2, &rule13},- {129280, 340, &rule13},- {129632, 14, &rule13},- {129648, 5, &rule13},- {129656, 5, &rule13},- {129664, 7, &rule13},- {129680, 29, &rule13},- {129712, 11, &rule13},- {129728, 6, &rule13},- {129744, 10, &rule13},- {129760, 8, &rule13},- {129776, 7, &rule13},- {129792, 147, &rule13},- {129940, 55, &rule13},- {130032, 10, &rule8},- {131072, 42720, &rule14},- {173824, 4153, &rule14},- {177984, 222, &rule14},- {178208, 5762, &rule14},- {183984, 7473, &rule14},- {194560, 542, &rule14},- {196608, 4939, &rule14},- {917505, 1, &rule16},- {917536, 96, &rule16},- {917760, 240, &rule92},- {983040, 65534, &rule200},- {1048576, 65534, &rule200}-};-static const struct _charblock_ convchars[]={- {65, 26, &rule9},- {97, 26, &rule12},- {181, 1, &rule18},- {192, 23, &rule9},- {216, 7, &rule9},- {224, 23, &rule12},- {248, 7, &rule12},- {255, 1, &rule21},- {256, 1, &rule22},- {257, 1, &rule23},- {258, 1, &rule22},- {259, 1, &rule23},- {260, 1, &rule22},- {261, 1, &rule23},- {262, 1, &rule22},- {263, 1, &rule23},- {264, 1, &rule22},- {265, 1, &rule23},- {266, 1, &rule22},- {267, 1, &rule23},- {268, 1, &rule22},- {269, 1, &rule23},- {270, 1, &rule22},- {271, 1, &rule23},- {272, 1, &rule22},- {273, 1, &rule23},- {274, 1, &rule22},- {275, 1, &rule23},- {276, 1, &rule22},- {277, 1, &rule23},- {278, 1, &rule22},- {279, 1, &rule23},- {280, 1, &rule22},- {281, 1, &rule23},- {282, 1, &rule22},- {283, 1, &rule23},- {284, 1, &rule22},- {285, 1, &rule23},- {286, 1, &rule22},- {287, 1, &rule23},- {288, 1, &rule22},- {289, 1, &rule23},- {290, 1, &rule22},- {291, 1, &rule23},- {292, 1, &rule22},- {293, 1, &rule23},- {294, 1, &rule22},- {295, 1, &rule23},- {296, 1, &rule22},- {297, 1, &rule23},- {298, 1, &rule22},- {299, 1, &rule23},- {300, 1, &rule22},- {301, 1, &rule23},- {302, 1, &rule22},- {303, 1, &rule23},- {304, 1, &rule24},- {305, 1, &rule25},- {306, 1, &rule22},- {307, 1, &rule23},- {308, 1, &rule22},- {309, 1, &rule23},- {310, 1, &rule22},- {311, 1, &rule23},- {313, 1, &rule22},- {314, 1, &rule23},- {315, 1, &rule22},- {316, 1, &rule23},- {317, 1, &rule22},- {318, 1, &rule23},- {319, 1, &rule22},- {320, 1, &rule23},- {321, 1, &rule22},- {322, 1, &rule23},- {323, 1, &rule22},- {324, 1, &rule23},- {325, 1, &rule22},- {326, 1, &rule23},- {327, 1, &rule22},- {328, 1, &rule23},- {330, 1, &rule22},- {331, 1, &rule23},- {332, 1, &rule22},- {333, 1, &rule23},- {334, 1, &rule22},- {335, 1, &rule23},- {336, 1, &rule22},- {337, 1, &rule23},- {338, 1, &rule22},- {339, 1, &rule23},- {340, 1, &rule22},- {341, 1, &rule23},- {342, 1, &rule22},- {343, 1, &rule23},- {344, 1, &rule22},- {345, 1, &rule23},- {346, 1, &rule22},- {347, 1, &rule23},- {348, 1, &rule22},- {349, 1, &rule23},- {350, 1, &rule22},- {351, 1, &rule23},- {352, 1, &rule22},- {353, 1, &rule23},- {354, 1, &rule22},- {355, 1, &rule23},- {356, 1, &rule22},- {357, 1, &rule23},- {358, 1, &rule22},- {359, 1, &rule23},- {360, 1, &rule22},- {361, 1, &rule23},- {362, 1, &rule22},- {363, 1, &rule23},- {364, 1, &rule22},- {365, 1, &rule23},- {366, 1, &rule22},- {367, 1, &rule23},- {368, 1, &rule22},- {369, 1, &rule23},- {370, 1, &rule22},- {371, 1, &rule23},- {372, 1, &rule22},- {373, 1, &rule23},- {374, 1, &rule22},- {375, 1, &rule23},- {376, 1, &rule26},- {377, 1, &rule22},- {378, 1, &rule23},- {379, 1, &rule22},- {380, 1, &rule23},- {381, 1, &rule22},- {382, 1, &rule23},- {383, 1, &rule27},- {384, 1, &rule28},- {385, 1, &rule29},- {386, 1, &rule22},- {387, 1, &rule23},- {388, 1, &rule22},- {389, 1, &rule23},- {390, 1, &rule30},- {391, 1, &rule22},- {392, 1, &rule23},- {393, 2, &rule31},- {395, 1, &rule22},- {396, 1, &rule23},- {398, 1, &rule32},- {399, 1, &rule33},- {400, 1, &rule34},- {401, 1, &rule22},- {402, 1, &rule23},- {403, 1, &rule31},- {404, 1, &rule35},- {405, 1, &rule36},- {406, 1, &rule37},- {407, 1, &rule38},- {408, 1, &rule22},- {409, 1, &rule23},- {410, 1, &rule39},- {412, 1, &rule37},- {413, 1, &rule40},- {414, 1, &rule41},- {415, 1, &rule42},- {416, 1, &rule22},- {417, 1, &rule23},- {418, 1, &rule22},- {419, 1, &rule23},- {420, 1, &rule22},- {421, 1, &rule23},- {422, 1, &rule43},- {423, 1, &rule22},- {424, 1, &rule23},- {425, 1, &rule43},- {428, 1, &rule22},- {429, 1, &rule23},- {430, 1, &rule43},- {431, 1, &rule22},- {432, 1, &rule23},- {433, 2, &rule44},- {435, 1, &rule22},- {436, 1, &rule23},- {437, 1, &rule22},- {438, 1, &rule23},- {439, 1, &rule45},- {440, 1, &rule22},- {441, 1, &rule23},- {444, 1, &rule22},- {445, 1, &rule23},- {447, 1, &rule46},- {452, 1, &rule47},- {453, 1, &rule48},- {454, 1, &rule49},- {455, 1, &rule47},- {456, 1, &rule48},- {457, 1, &rule49},- {458, 1, &rule47},- {459, 1, &rule48},- {460, 1, &rule49},- {461, 1, &rule22},- {462, 1, &rule23},- {463, 1, &rule22},- {464, 1, &rule23},- {465, 1, &rule22},- {466, 1, &rule23},- {467, 1, &rule22},- {468, 1, &rule23},- {469, 1, &rule22},- {470, 1, &rule23},- {471, 1, &rule22},- {472, 1, &rule23},- {473, 1, &rule22},- {474, 1, &rule23},- {475, 1, &rule22},- {476, 1, &rule23},- {477, 1, &rule50},- {478, 1, &rule22},- {479, 1, &rule23},- {480, 1, &rule22},- {481, 1, &rule23},- {482, 1, &rule22},- {483, 1, &rule23},- {484, 1, &rule22},- {485, 1, &rule23},- {486, 1, &rule22},- {487, 1, &rule23},- {488, 1, &rule22},- {489, 1, &rule23},- {490, 1, &rule22},- {491, 1, &rule23},- {492, 1, &rule22},- {493, 1, &rule23},- {494, 1, &rule22},- {495, 1, &rule23},- {497, 1, &rule47},- {498, 1, &rule48},- {499, 1, &rule49},- {500, 1, &rule22},- {501, 1, &rule23},- {502, 1, &rule51},- {503, 1, &rule52},- {504, 1, &rule22},- {505, 1, &rule23},- {506, 1, &rule22},- {507, 1, &rule23},- {508, 1, &rule22},- {509, 1, &rule23},- {510, 1, &rule22},- {511, 1, &rule23},- {512, 1, &rule22},- {513, 1, &rule23},- {514, 1, &rule22},- {515, 1, &rule23},- {516, 1, &rule22},- {517, 1, &rule23},- {518, 1, &rule22},- {519, 1, &rule23},- {520, 1, &rule22},- {521, 1, &rule23},- {522, 1, &rule22},- {523, 1, &rule23},- {524, 1, &rule22},- {525, 1, &rule23},- {526, 1, &rule22},- {527, 1, &rule23},- {528, 1, &rule22},- {529, 1, &rule23},- {530, 1, &rule22},- {531, 1, &rule23},- {532, 1, &rule22},- {533, 1, &rule23},- {534, 1, &rule22},- {535, 1, &rule23},- {536, 1, &rule22},- {537, 1, &rule23},- {538, 1, &rule22},- {539, 1, &rule23},- {540, 1, &rule22},- {541, 1, &rule23},- {542, 1, &rule22},- {543, 1, &rule23},- {544, 1, &rule53},- {546, 1, &rule22},- {547, 1, &rule23},- {548, 1, &rule22},- {549, 1, &rule23},- {550, 1, &rule22},- {551, 1, &rule23},- {552, 1, &rule22},- {553, 1, &rule23},- {554, 1, &rule22},- {555, 1, &rule23},- {556, 1, &rule22},- {557, 1, &rule23},- {558, 1, &rule22},- {559, 1, &rule23},- {560, 1, &rule22},- {561, 1, &rule23},- {562, 1, &rule22},- {563, 1, &rule23},- {570, 1, &rule54},- {571, 1, &rule22},- {572, 1, &rule23},- {573, 1, &rule55},- {574, 1, &rule56},- {575, 2, &rule57},- {577, 1, &rule22},- {578, 1, &rule23},- {579, 1, &rule58},- {580, 1, &rule59},- {581, 1, &rule60},- {582, 1, &rule22},- {583, 1, &rule23},- {584, 1, &rule22},- {585, 1, &rule23},- {586, 1, &rule22},- {587, 1, &rule23},- {588, 1, &rule22},- {589, 1, &rule23},- {590, 1, &rule22},- {591, 1, &rule23},- {592, 1, &rule61},- {593, 1, &rule62},- {594, 1, &rule63},- {595, 1, &rule64},- {596, 1, &rule65},- {598, 2, &rule66},- {601, 1, &rule67},- {603, 1, &rule68},- {604, 1, &rule69},- {608, 1, &rule66},- {609, 1, &rule70},- {611, 1, &rule71},- {613, 1, &rule72},- {614, 1, &rule73},- {616, 1, &rule74},- {617, 1, &rule75},- {618, 1, &rule73},- {619, 1, &rule76},- {620, 1, &rule77},- {623, 1, &rule75},- {625, 1, &rule78},- {626, 1, &rule79},- {629, 1, &rule80},- {637, 1, &rule81},- {640, 1, &rule82},- {642, 1, &rule83},- {643, 1, &rule82},- {647, 1, &rule84},- {648, 1, &rule82},- {649, 1, &rule85},- {650, 2, &rule86},- {652, 1, &rule87},- {658, 1, &rule88},- {669, 1, &rule89},- {670, 1, &rule90},- {837, 1, &rule93},- {880, 1, &rule22},- {881, 1, &rule23},- {882, 1, &rule22},- {883, 1, &rule23},- {886, 1, &rule22},- {887, 1, &rule23},- {891, 3, &rule41},- {895, 1, &rule94},- {902, 1, &rule95},- {904, 3, &rule96},- {908, 1, &rule97},- {910, 2, &rule98},- {913, 17, &rule9},- {931, 9, &rule9},- {940, 1, &rule99},- {941, 3, &rule100},- {945, 17, &rule12},- {962, 1, &rule101},- {963, 9, &rule12},- {972, 1, &rule102},- {973, 2, &rule103},- {975, 1, &rule104},- {976, 1, &rule105},- {977, 1, &rule106},- {981, 1, &rule108},- {982, 1, &rule109},- {983, 1, &rule110},- {984, 1, &rule22},- {985, 1, &rule23},- {986, 1, &rule22},- {987, 1, &rule23},- {988, 1, &rule22},- {989, 1, &rule23},- {990, 1, &rule22},- {991, 1, &rule23},- {992, 1, &rule22},- {993, 1, &rule23},- {994, 1, &rule22},- {995, 1, &rule23},- {996, 1, &rule22},- {997, 1, &rule23},- {998, 1, &rule22},- {999, 1, &rule23},- {1000, 1, &rule22},- {1001, 1, &rule23},- {1002, 1, &rule22},- {1003, 1, &rule23},- {1004, 1, &rule22},- {1005, 1, &rule23},- {1006, 1, &rule22},- {1007, 1, &rule23},- {1008, 1, &rule111},- {1009, 1, &rule112},- {1010, 1, &rule113},- {1011, 1, &rule114},- {1012, 1, &rule115},- {1013, 1, &rule116},- {1015, 1, &rule22},- {1016, 1, &rule23},- {1017, 1, &rule117},- {1018, 1, &rule22},- {1019, 1, &rule23},- {1021, 3, &rule53},- {1024, 16, &rule118},- {1040, 32, &rule9},- {1072, 32, &rule12},- {1104, 16, &rule112},- {1120, 1, &rule22},- {1121, 1, &rule23},- {1122, 1, &rule22},- {1123, 1, &rule23},- {1124, 1, &rule22},- {1125, 1, &rule23},- {1126, 1, &rule22},- {1127, 1, &rule23},- {1128, 1, &rule22},- {1129, 1, &rule23},- {1130, 1, &rule22},- {1131, 1, &rule23},- {1132, 1, &rule22},- {1133, 1, &rule23},- {1134, 1, &rule22},- {1135, 1, &rule23},- {1136, 1, &rule22},- {1137, 1, &rule23},- {1138, 1, &rule22},- {1139, 1, &rule23},- {1140, 1, &rule22},- {1141, 1, &rule23},- {1142, 1, &rule22},- {1143, 1, &rule23},- {1144, 1, &rule22},- {1145, 1, &rule23},- {1146, 1, &rule22},- {1147, 1, &rule23},- {1148, 1, &rule22},- {1149, 1, &rule23},- {1150, 1, &rule22},- {1151, 1, &rule23},- {1152, 1, &rule22},- {1153, 1, &rule23},- {1162, 1, &rule22},- {1163, 1, &rule23},- {1164, 1, &rule22},- {1165, 1, &rule23},- {1166, 1, &rule22},- {1167, 1, &rule23},- {1168, 1, &rule22},- {1169, 1, &rule23},- {1170, 1, &rule22},- {1171, 1, &rule23},- {1172, 1, &rule22},- {1173, 1, &rule23},- {1174, 1, &rule22},- {1175, 1, &rule23},- {1176, 1, &rule22},- {1177, 1, &rule23},- {1178, 1, &rule22},- {1179, 1, &rule23},- {1180, 1, &rule22},- {1181, 1, &rule23},- {1182, 1, &rule22},- {1183, 1, &rule23},- {1184, 1, &rule22},- {1185, 1, &rule23},- {1186, 1, &rule22},- {1187, 1, &rule23},- {1188, 1, &rule22},- {1189, 1, &rule23},- {1190, 1, &rule22},- {1191, 1, &rule23},- {1192, 1, &rule22},- {1193, 1, &rule23},- {1194, 1, &rule22},- {1195, 1, &rule23},- {1196, 1, &rule22},- {1197, 1, &rule23},- {1198, 1, &rule22},- {1199, 1, &rule23},- {1200, 1, &rule22},- {1201, 1, &rule23},- {1202, 1, &rule22},- {1203, 1, &rule23},- {1204, 1, &rule22},- {1205, 1, &rule23},- {1206, 1, &rule22},- {1207, 1, &rule23},- {1208, 1, &rule22},- {1209, 1, &rule23},- {1210, 1, &rule22},- {1211, 1, &rule23},- {1212, 1, &rule22},- {1213, 1, &rule23},- {1214, 1, &rule22},- {1215, 1, &rule23},- {1216, 1, &rule120},- {1217, 1, &rule22},- {1218, 1, &rule23},- {1219, 1, &rule22},- {1220, 1, &rule23},- {1221, 1, &rule22},- {1222, 1, &rule23},- {1223, 1, &rule22},- {1224, 1, &rule23},- {1225, 1, &rule22},- {1226, 1, &rule23},- {1227, 1, &rule22},- {1228, 1, &rule23},- {1229, 1, &rule22},- {1230, 1, &rule23},- {1231, 1, &rule121},- {1232, 1, &rule22},- {1233, 1, &rule23},- {1234, 1, &rule22},- {1235, 1, &rule23},- {1236, 1, &rule22},- {1237, 1, &rule23},- {1238, 1, &rule22},- {1239, 1, &rule23},- {1240, 1, &rule22},- {1241, 1, &rule23},- {1242, 1, &rule22},- {1243, 1, &rule23},- {1244, 1, &rule22},- {1245, 1, &rule23},- {1246, 1, &rule22},- {1247, 1, &rule23},- {1248, 1, &rule22},- {1249, 1, &rule23},- {1250, 1, &rule22},- {1251, 1, &rule23},- {1252, 1, &rule22},- {1253, 1, &rule23},- {1254, 1, &rule22},- {1255, 1, &rule23},- {1256, 1, &rule22},- {1257, 1, &rule23},- {1258, 1, &rule22},- {1259, 1, &rule23},- {1260, 1, &rule22},- {1261, 1, &rule23},- {1262, 1, &rule22},- {1263, 1, &rule23},- {1264, 1, &rule22},- {1265, 1, &rule23},- {1266, 1, &rule22},- {1267, 1, &rule23},- {1268, 1, &rule22},- {1269, 1, &rule23},- {1270, 1, &rule22},- {1271, 1, &rule23},- {1272, 1, &rule22},- {1273, 1, &rule23},- {1274, 1, &rule22},- {1275, 1, &rule23},- {1276, 1, &rule22},- {1277, 1, &rule23},- {1278, 1, &rule22},- {1279, 1, &rule23},- {1280, 1, &rule22},- {1281, 1, &rule23},- {1282, 1, &rule22},- {1283, 1, &rule23},- {1284, 1, &rule22},- {1285, 1, &rule23},- {1286, 1, &rule22},- {1287, 1, &rule23},- {1288, 1, &rule22},- {1289, 1, &rule23},- {1290, 1, &rule22},- {1291, 1, &rule23},- {1292, 1, &rule22},- {1293, 1, &rule23},- {1294, 1, &rule22},- {1295, 1, &rule23},- {1296, 1, &rule22},- {1297, 1, &rule23},- {1298, 1, &rule22},- {1299, 1, &rule23},- {1300, 1, &rule22},- {1301, 1, &rule23},- {1302, 1, &rule22},- {1303, 1, &rule23},- {1304, 1, &rule22},- {1305, 1, &rule23},- {1306, 1, &rule22},- {1307, 1, &rule23},- {1308, 1, &rule22},- {1309, 1, &rule23},- {1310, 1, &rule22},- {1311, 1, &rule23},- {1312, 1, &rule22},- {1313, 1, &rule23},- {1314, 1, &rule22},- {1315, 1, &rule23},- {1316, 1, &rule22},- {1317, 1, &rule23},- {1318, 1, &rule22},- {1319, 1, &rule23},- {1320, 1, &rule22},- {1321, 1, &rule23},- {1322, 1, &rule22},- {1323, 1, &rule23},- {1324, 1, &rule22},- {1325, 1, &rule23},- {1326, 1, &rule22},- {1327, 1, &rule23},- {1329, 38, &rule122},- {1377, 38, &rule123},- {4256, 38, &rule125},- {4295, 1, &rule125},- {4301, 1, &rule125},- {4304, 43, &rule126},- {4349, 3, &rule126},- {5024, 80, &rule127},- {5104, 6, &rule104},- {5112, 6, &rule110},- {7296, 1, &rule129},- {7297, 1, &rule130},- {7298, 1, &rule131},- {7299, 2, &rule132},- {7301, 1, &rule133},- {7302, 1, &rule134},- {7303, 1, &rule135},- {7304, 1, &rule136},- {7312, 43, &rule137},- {7357, 3, &rule137},- {7545, 1, &rule138},- {7549, 1, &rule139},- {7566, 1, &rule140},- {7680, 1, &rule22},- {7681, 1, &rule23},- {7682, 1, &rule22},- {7683, 1, &rule23},- {7684, 1, &rule22},- {7685, 1, &rule23},- {7686, 1, &rule22},- {7687, 1, &rule23},- {7688, 1, &rule22},- {7689, 1, &rule23},- {7690, 1, &rule22},- {7691, 1, &rule23},- {7692, 1, &rule22},- {7693, 1, &rule23},- {7694, 1, &rule22},- {7695, 1, &rule23},- {7696, 1, &rule22},- {7697, 1, &rule23},- {7698, 1, &rule22},- {7699, 1, &rule23},- {7700, 1, &rule22},- {7701, 1, &rule23},- {7702, 1, &rule22},- {7703, 1, &rule23},- {7704, 1, &rule22},- {7705, 1, &rule23},- {7706, 1, &rule22},- {7707, 1, &rule23},- {7708, 1, &rule22},- {7709, 1, &rule23},- {7710, 1, &rule22},- {7711, 1, &rule23},- {7712, 1, &rule22},- {7713, 1, &rule23},- {7714, 1, &rule22},- {7715, 1, &rule23},- {7716, 1, &rule22},- {7717, 1, &rule23},- {7718, 1, &rule22},- {7719, 1, &rule23},- {7720, 1, &rule22},- {7721, 1, &rule23},- {7722, 1, &rule22},- {7723, 1, &rule23},- {7724, 1, &rule22},- {7725, 1, &rule23},- {7726, 1, &rule22},- {7727, 1, &rule23},- {7728, 1, &rule22},- {7729, 1, &rule23},- {7730, 1, &rule22},- {7731, 1, &rule23},- {7732, 1, &rule22},- {7733, 1, &rule23},- {7734, 1, &rule22},- {7735, 1, &rule23},- {7736, 1, &rule22},- {7737, 1, &rule23},- {7738, 1, &rule22},- {7739, 1, &rule23},- {7740, 1, &rule22},- {7741, 1, &rule23},- {7742, 1, &rule22},- {7743, 1, &rule23},- {7744, 1, &rule22},- {7745, 1, &rule23},- {7746, 1, &rule22},- {7747, 1, &rule23},- {7748, 1, &rule22},- {7749, 1, &rule23},- {7750, 1, &rule22},- {7751, 1, &rule23},- {7752, 1, &rule22},- {7753, 1, &rule23},- {7754, 1, &rule22},- {7755, 1, &rule23},- {7756, 1, &rule22},- {7757, 1, &rule23},- {7758, 1, &rule22},- {7759, 1, &rule23},- {7760, 1, &rule22},- {7761, 1, &rule23},- {7762, 1, &rule22},- {7763, 1, &rule23},- {7764, 1, &rule22},- {7765, 1, &rule23},- {7766, 1, &rule22},- {7767, 1, &rule23},- {7768, 1, &rule22},- {7769, 1, &rule23},- {7770, 1, &rule22},- {7771, 1, &rule23},- {7772, 1, &rule22},- {7773, 1, &rule23},- {7774, 1, &rule22},- {7775, 1, &rule23},- {7776, 1, &rule22},- {7777, 1, &rule23},- {7778, 1, &rule22},- {7779, 1, &rule23},- {7780, 1, &rule22},- {7781, 1, &rule23},- {7782, 1, &rule22},- {7783, 1, &rule23},- {7784, 1, &rule22},- {7785, 1, &rule23},- {7786, 1, &rule22},- {7787, 1, &rule23},- {7788, 1, &rule22},- {7789, 1, &rule23},- {7790, 1, &rule22},- {7791, 1, &rule23},- {7792, 1, &rule22},- {7793, 1, &rule23},- {7794, 1, &rule22},- {7795, 1, &rule23},- {7796, 1, &rule22},- {7797, 1, &rule23},- {7798, 1, &rule22},- {7799, 1, &rule23},- {7800, 1, &rule22},- {7801, 1, &rule23},- {7802, 1, &rule22},- {7803, 1, &rule23},- {7804, 1, &rule22},- {7805, 1, &rule23},- {7806, 1, &rule22},- {7807, 1, &rule23},- {7808, 1, &rule22},- {7809, 1, &rule23},- {7810, 1, &rule22},- {7811, 1, &rule23},- {7812, 1, &rule22},- {7813, 1, &rule23},- {7814, 1, &rule22},- {7815, 1, &rule23},- {7816, 1, &rule22},- {7817, 1, &rule23},- {7818, 1, &rule22},- {7819, 1, &rule23},- {7820, 1, &rule22},- {7821, 1, &rule23},- {7822, 1, &rule22},- {7823, 1, &rule23},- {7824, 1, &rule22},- {7825, 1, &rule23},- {7826, 1, &rule22},- {7827, 1, &rule23},- {7828, 1, &rule22},- {7829, 1, &rule23},- {7835, 1, &rule141},- {7838, 1, &rule142},- {7840, 1, &rule22},- {7841, 1, &rule23},- {7842, 1, &rule22},- {7843, 1, &rule23},- {7844, 1, &rule22},- {7845, 1, &rule23},- {7846, 1, &rule22},- {7847, 1, &rule23},- {7848, 1, &rule22},- {7849, 1, &rule23},- {7850, 1, &rule22},- {7851, 1, &rule23},- {7852, 1, &rule22},- {7853, 1, &rule23},- {7854, 1, &rule22},- {7855, 1, &rule23},- {7856, 1, &rule22},- {7857, 1, &rule23},- {7858, 1, &rule22},- {7859, 1, &rule23},- {7860, 1, &rule22},- {7861, 1, &rule23},- {7862, 1, &rule22},- {7863, 1, &rule23},- {7864, 1, &rule22},- {7865, 1, &rule23},- {7866, 1, &rule22},- {7867, 1, &rule23},- {7868, 1, &rule22},- {7869, 1, &rule23},- {7870, 1, &rule22},- {7871, 1, &rule23},- {7872, 1, &rule22},- {7873, 1, &rule23},- {7874, 1, &rule22},- {7875, 1, &rule23},- {7876, 1, &rule22},- {7877, 1, &rule23},- {7878, 1, &rule22},- {7879, 1, &rule23},- {7880, 1, &rule22},- {7881, 1, &rule23},- {7882, 1, &rule22},- {7883, 1, &rule23},- {7884, 1, &rule22},- {7885, 1, &rule23},- {7886, 1, &rule22},- {7887, 1, &rule23},- {7888, 1, &rule22},- {7889, 1, &rule23},- {7890, 1, &rule22},- {7891, 1, &rule23},- {7892, 1, &rule22},- {7893, 1, &rule23},- {7894, 1, &rule22},- {7895, 1, &rule23},- {7896, 1, &rule22},- {7897, 1, &rule23},- {7898, 1, &rule22},- {7899, 1, &rule23},- {7900, 1, &rule22},- {7901, 1, &rule23},- {7902, 1, &rule22},- {7903, 1, &rule23},- {7904, 1, &rule22},- {7905, 1, &rule23},- {7906, 1, &rule22},- {7907, 1, &rule23},- {7908, 1, &rule22},- {7909, 1, &rule23},- {7910, 1, &rule22},- {7911, 1, &rule23},- {7912, 1, &rule22},- {7913, 1, &rule23},- {7914, 1, &rule22},- {7915, 1, &rule23},- {7916, 1, &rule22},- {7917, 1, &rule23},- {7918, 1, &rule22},- {7919, 1, &rule23},- {7920, 1, &rule22},- {7921, 1, &rule23},- {7922, 1, &rule22},- {7923, 1, &rule23},- {7924, 1, &rule22},- {7925, 1, &rule23},- {7926, 1, &rule22},- {7927, 1, &rule23},- {7928, 1, &rule22},- {7929, 1, &rule23},- {7930, 1, &rule22},- {7931, 1, &rule23},- {7932, 1, &rule22},- {7933, 1, &rule23},- {7934, 1, &rule22},- {7935, 1, &rule23},- {7936, 8, &rule143},- {7944, 8, &rule144},- {7952, 6, &rule143},- {7960, 6, &rule144},- {7968, 8, &rule143},- {7976, 8, &rule144},- {7984, 8, &rule143},- {7992, 8, &rule144},- {8000, 6, &rule143},- {8008, 6, &rule144},- {8017, 1, &rule143},- {8019, 1, &rule143},- {8021, 1, &rule143},- {8023, 1, &rule143},- {8025, 1, &rule144},- {8027, 1, &rule144},- {8029, 1, &rule144},- {8031, 1, &rule144},- {8032, 8, &rule143},- {8040, 8, &rule144},- {8048, 2, &rule145},- {8050, 4, &rule146},- {8054, 2, &rule147},- {8056, 2, &rule148},- {8058, 2, &rule149},- {8060, 2, &rule150},- {8064, 8, &rule143},- {8072, 8, &rule151},- {8080, 8, &rule143},- {8088, 8, &rule151},- {8096, 8, &rule143},- {8104, 8, &rule151},- {8112, 2, &rule143},- {8115, 1, &rule152},- {8120, 2, &rule144},- {8122, 2, &rule153},- {8124, 1, &rule154},- {8126, 1, &rule155},- {8131, 1, &rule152},- {8136, 4, &rule156},- {8140, 1, &rule154},- {8144, 2, &rule143},- {8152, 2, &rule144},- {8154, 2, &rule157},- {8160, 2, &rule143},- {8165, 1, &rule113},- {8168, 2, &rule144},- {8170, 2, &rule158},- {8172, 1, &rule117},- {8179, 1, &rule152},- {8184, 2, &rule159},- {8186, 2, &rule160},- {8188, 1, &rule154},- {8486, 1, &rule163},- {8490, 1, &rule164},- {8491, 1, &rule165},- {8498, 1, &rule166},- {8526, 1, &rule167},- {8544, 16, &rule168},- {8560, 16, &rule169},- {8579, 1, &rule22},- {8580, 1, &rule23},- {9398, 26, &rule170},- {9424, 26, &rule171},- {11264, 48, &rule122},- {11312, 48, &rule123},- {11360, 1, &rule22},- {11361, 1, &rule23},- {11362, 1, &rule172},- {11363, 1, &rule173},- {11364, 1, &rule174},- {11365, 1, &rule175},- {11366, 1, &rule176},- {11367, 1, &rule22},- {11368, 1, &rule23},- {11369, 1, &rule22},- {11370, 1, &rule23},- {11371, 1, &rule22},- {11372, 1, &rule23},- {11373, 1, &rule177},- {11374, 1, &rule178},- {11375, 1, &rule179},- {11376, 1, &rule180},- {11378, 1, &rule22},- {11379, 1, &rule23},- {11381, 1, &rule22},- {11382, 1, &rule23},- {11390, 2, &rule181},- {11392, 1, &rule22},- {11393, 1, &rule23},- {11394, 1, &rule22},- {11395, 1, &rule23},- {11396, 1, &rule22},- {11397, 1, &rule23},- {11398, 1, &rule22},- {11399, 1, &rule23},- {11400, 1, &rule22},- {11401, 1, &rule23},- {11402, 1, &rule22},- {11403, 1, &rule23},- {11404, 1, &rule22},- {11405, 1, &rule23},- {11406, 1, &rule22},- {11407, 1, &rule23},- {11408, 1, &rule22},- {11409, 1, &rule23},- {11410, 1, &rule22},- {11411, 1, &rule23},- {11412, 1, &rule22},- {11413, 1, &rule23},- {11414, 1, &rule22},- {11415, 1, &rule23},- {11416, 1, &rule22},- {11417, 1, &rule23},- {11418, 1, &rule22},- {11419, 1, &rule23},- {11420, 1, &rule22},- {11421, 1, &rule23},- {11422, 1, &rule22},- {11423, 1, &rule23},- {11424, 1, &rule22},- {11425, 1, &rule23},- {11426, 1, &rule22},- {11427, 1, &rule23},- {11428, 1, &rule22},- {11429, 1, &rule23},- {11430, 1, &rule22},- {11431, 1, &rule23},- {11432, 1, &rule22},- {11433, 1, &rule23},- {11434, 1, &rule22},- {11435, 1, &rule23},- {11436, 1, &rule22},- {11437, 1, &rule23},- {11438, 1, &rule22},- {11439, 1, &rule23},- {11440, 1, &rule22},- {11441, 1, &rule23},- {11442, 1, &rule22},- {11443, 1, &rule23},- {11444, 1, &rule22},- {11445, 1, &rule23},- {11446, 1, &rule22},- {11447, 1, &rule23},- {11448, 1, &rule22},- {11449, 1, &rule23},- {11450, 1, &rule22},- {11451, 1, &rule23},- {11452, 1, &rule22},- {11453, 1, &rule23},- {11454, 1, &rule22},- {11455, 1, &rule23},- {11456, 1, &rule22},- {11457, 1, &rule23},- {11458, 1, &rule22},- {11459, 1, &rule23},- {11460, 1, &rule22},- {11461, 1, &rule23},- {11462, 1, &rule22},- {11463, 1, &rule23},- {11464, 1, &rule22},- {11465, 1, &rule23},- {11466, 1, &rule22},- {11467, 1, &rule23},- {11468, 1, &rule22},- {11469, 1, &rule23},- {11470, 1, &rule22},- {11471, 1, &rule23},- {11472, 1, &rule22},- {11473, 1, &rule23},- {11474, 1, &rule22},- {11475, 1, &rule23},- {11476, 1, &rule22},- {11477, 1, &rule23},- {11478, 1, &rule22},- {11479, 1, &rule23},- {11480, 1, &rule22},- {11481, 1, &rule23},- {11482, 1, &rule22},- {11483, 1, &rule23},- {11484, 1, &rule22},- {11485, 1, &rule23},- {11486, 1, &rule22},- {11487, 1, &rule23},- {11488, 1, &rule22},- {11489, 1, &rule23},- {11490, 1, &rule22},- {11491, 1, &rule23},- {11499, 1, &rule22},- {11500, 1, &rule23},- {11501, 1, &rule22},- {11502, 1, &rule23},- {11506, 1, &rule22},- {11507, 1, &rule23},- {11520, 38, &rule182},- {11559, 1, &rule182},- {11565, 1, &rule182},- {42560, 1, &rule22},- {42561, 1, &rule23},- {42562, 1, &rule22},- {42563, 1, &rule23},- {42564, 1, &rule22},- {42565, 1, &rule23},- {42566, 1, &rule22},- {42567, 1, &rule23},- {42568, 1, &rule22},- {42569, 1, &rule23},- {42570, 1, &rule22},- {42571, 1, &rule23},- {42572, 1, &rule22},- {42573, 1, &rule23},- {42574, 1, &rule22},- {42575, 1, &rule23},- {42576, 1, &rule22},- {42577, 1, &rule23},- {42578, 1, &rule22},- {42579, 1, &rule23},- {42580, 1, &rule22},- {42581, 1, &rule23},- {42582, 1, &rule22},- {42583, 1, &rule23},- {42584, 1, &rule22},- {42585, 1, &rule23},- {42586, 1, &rule22},- {42587, 1, &rule23},- {42588, 1, &rule22},- {42589, 1, &rule23},- {42590, 1, &rule22},- {42591, 1, &rule23},- {42592, 1, &rule22},- {42593, 1, &rule23},- {42594, 1, &rule22},- {42595, 1, &rule23},- {42596, 1, &rule22},- {42597, 1, &rule23},- {42598, 1, &rule22},- {42599, 1, &rule23},- {42600, 1, &rule22},- {42601, 1, &rule23},- {42602, 1, &rule22},- {42603, 1, &rule23},- {42604, 1, &rule22},- {42605, 1, &rule23},- {42624, 1, &rule22},- {42625, 1, &rule23},- {42626, 1, &rule22},- {42627, 1, &rule23},- {42628, 1, &rule22},- {42629, 1, &rule23},- {42630, 1, &rule22},- {42631, 1, &rule23},- {42632, 1, &rule22},- {42633, 1, &rule23},- {42634, 1, &rule22},- {42635, 1, &rule23},- {42636, 1, &rule22},- {42637, 1, &rule23},- {42638, 1, &rule22},- {42639, 1, &rule23},- {42640, 1, &rule22},- {42641, 1, &rule23},- {42642, 1, &rule22},- {42643, 1, &rule23},- {42644, 1, &rule22},- {42645, 1, &rule23},- {42646, 1, &rule22},- {42647, 1, &rule23},- {42648, 1, &rule22},- {42649, 1, &rule23},- {42650, 1, &rule22},- {42651, 1, &rule23},- {42786, 1, &rule22},- {42787, 1, &rule23},- {42788, 1, &rule22},- {42789, 1, &rule23},- {42790, 1, &rule22},- {42791, 1, &rule23},- {42792, 1, &rule22},- {42793, 1, &rule23},- {42794, 1, &rule22},- {42795, 1, &rule23},- {42796, 1, &rule22},- {42797, 1, &rule23},- {42798, 1, &rule22},- {42799, 1, &rule23},- {42802, 1, &rule22},- {42803, 1, &rule23},- {42804, 1, &rule22},- {42805, 1, &rule23},- {42806, 1, &rule22},- {42807, 1, &rule23},- {42808, 1, &rule22},- {42809, 1, &rule23},- {42810, 1, &rule22},- {42811, 1, &rule23},- {42812, 1, &rule22},- {42813, 1, &rule23},- {42814, 1, &rule22},- {42815, 1, &rule23},- {42816, 1, &rule22},- {42817, 1, &rule23},- {42818, 1, &rule22},- {42819, 1, &rule23},- {42820, 1, &rule22},- {42821, 1, &rule23},- {42822, 1, &rule22},- {42823, 1, &rule23},- {42824, 1, &rule22},- {42825, 1, &rule23},- {42826, 1, &rule22},- {42827, 1, &rule23},- {42828, 1, &rule22},- {42829, 1, &rule23},- {42830, 1, &rule22},- {42831, 1, &rule23},- {42832, 1, &rule22},- {42833, 1, &rule23},- {42834, 1, &rule22},- {42835, 1, &rule23},- {42836, 1, &rule22},- {42837, 1, &rule23},- {42838, 1, &rule22},- {42839, 1, &rule23},- {42840, 1, &rule22},- {42841, 1, &rule23},- {42842, 1, &rule22},- {42843, 1, &rule23},- {42844, 1, &rule22},- {42845, 1, &rule23},- {42846, 1, &rule22},- {42847, 1, &rule23},- {42848, 1, &rule22},- {42849, 1, &rule23},- {42850, 1, &rule22},- {42851, 1, &rule23},- {42852, 1, &rule22},- {42853, 1, &rule23},- {42854, 1, &rule22},- {42855, 1, &rule23},- {42856, 1, &rule22},- {42857, 1, &rule23},- {42858, 1, &rule22},- {42859, 1, &rule23},- {42860, 1, &rule22},- {42861, 1, &rule23},- {42862, 1, &rule22},- {42863, 1, &rule23},- {42873, 1, &rule22},- {42874, 1, &rule23},- {42875, 1, &rule22},- {42876, 1, &rule23},- {42877, 1, &rule183},- {42878, 1, &rule22},- {42879, 1, &rule23},- {42880, 1, &rule22},- {42881, 1, &rule23},- {42882, 1, &rule22},- {42883, 1, &rule23},- {42884, 1, &rule22},- {42885, 1, &rule23},- {42886, 1, &rule22},- {42887, 1, &rule23},- {42891, 1, &rule22},- {42892, 1, &rule23},- {42893, 1, &rule184},- {42896, 1, &rule22},- {42897, 1, &rule23},- {42898, 1, &rule22},- {42899, 1, &rule23},- {42900, 1, &rule185},- {42902, 1, &rule22},- {42903, 1, &rule23},- {42904, 1, &rule22},- {42905, 1, &rule23},- {42906, 1, &rule22},- {42907, 1, &rule23},- {42908, 1, &rule22},- {42909, 1, &rule23},- {42910, 1, &rule22},- {42911, 1, &rule23},- {42912, 1, &rule22},- {42913, 1, &rule23},- {42914, 1, &rule22},- {42915, 1, &rule23},- {42916, 1, &rule22},- {42917, 1, &rule23},- {42918, 1, &rule22},- {42919, 1, &rule23},- {42920, 1, &rule22},- {42921, 1, &rule23},- {42922, 1, &rule186},- {42923, 1, &rule187},- {42924, 1, &rule188},- {42925, 1, &rule189},- {42926, 1, &rule186},- {42928, 1, &rule190},- {42929, 1, &rule191},- {42930, 1, &rule192},- {42931, 1, &rule193},- {42932, 1, &rule22},- {42933, 1, &rule23},- {42934, 1, &rule22},- {42935, 1, &rule23},- {42936, 1, &rule22},- {42937, 1, &rule23},- {42938, 1, &rule22},- {42939, 1, &rule23},- {42940, 1, &rule22},- {42941, 1, &rule23},- {42942, 1, &rule22},- {42943, 1, &rule23},- {42944, 1, &rule22},- {42945, 1, &rule23},- {42946, 1, &rule22},- {42947, 1, &rule23},- {42948, 1, &rule194},- {42949, 1, &rule195},- {42950, 1, &rule196},- {42951, 1, &rule22},- {42952, 1, &rule23},- {42953, 1, &rule22},- {42954, 1, &rule23},- {42960, 1, &rule22},- {42961, 1, &rule23},- {42966, 1, &rule22},- {42967, 1, &rule23},- {42968, 1, &rule22},- {42969, 1, &rule23},- {42997, 1, &rule22},- {42998, 1, &rule23},- {43859, 1, &rule197},- {43888, 80, &rule198},- {65313, 26, &rule9},- {65345, 26, &rule12},- {66560, 40, &rule201},- {66600, 40, &rule202},- {66736, 36, &rule201},- {66776, 36, &rule202},- {66928, 11, &rule203},- {66940, 15, &rule203},- {66956, 7, &rule203},- {66964, 2, &rule203},- {66967, 11, &rule204},- {66979, 15, &rule204},- {66995, 7, &rule204},- {67003, 2, &rule204},- {68736, 51, &rule97},- {68800, 51, &rule102},- {71840, 32, &rule9},- {71872, 32, &rule12},- {93760, 32, &rule9},- {93792, 32, &rule12},- {125184, 34, &rule205},- {125218, 34, &rule206}-};-static const struct _charblock_ spacechars[]={- {32, 1, &rule1},- {160, 1, &rule1},- {5760, 1, &rule1},- {8192, 11, &rule1},- {8239, 1, &rule1},- {8287, 1, &rule1},- {12288, 1, &rule1}-};--/*- Obtain the reference to character rule by doing- binary search over the specified array of blocks.- To make checkattr shorter, the address of- nullrule is returned if the search fails:- this rule defines no category and no conversion- distances. The compare function returns 0 when- key->start is within the block. Otherwise- result of comparison of key->start and start of the- current block is returned as usual.-*/--static const struct _convrule_ nullrule={0,NUMCAT_CN,0,0,0,0};--static int blkcmp(const void *vk,const void *vb)-{- const struct _charblock_ *key,*cur;- key=vk;- cur=vb;- if((key->start>=cur->start)&&(key->start<(cur->start+cur->length)))- {- return 0;- }- if(key->start>cur->start) return 1;- return -1;-}--static const struct _convrule_ *getrule(- const struct _charblock_ *blocks,- int numblocks,- int unichar)-{- struct _charblock_ key={unichar,1,(void *)0};- struct _charblock_ *cb=bsearch(&key,blocks,numblocks,sizeof(key),blkcmp);- if(cb==(void *)0) return &nullrule;- return cb->rule;-}- ---/*- Check whether a character (internal code) has certain attributes.- Attributes (category flags) may be ORed. The function ANDs- character category flags and the mask and returns the result.- If the character belongs to one of the categories requested,- the result will be nonzero.-*/--inline static int checkattr(int c,unsigned int catmask)-{- return (catmask & (getrule(allchars,(c<256)?NUM_LAT1BLOCKS:NUM_BLOCKS,c)->category));-}--inline static int checkattr_s(int c,unsigned int catmask)-{- return (catmask & (getrule(spacechars,NUM_SPACEBLOCKS,c)->category));-}--/*- Define predicate functions for some combinations of categories.-*/--#define unipred(p,m) \-HsInt p(HsInt c) \-{ \- return checkattr(c,m); \-}--#define unipred_s(p,m) \-HsInt p(HsInt c) \-{ \- return checkattr_s(c,m); \-}--/*- Make these rules as close to Hugs as possible.-*/--unipred(u_iswcntrl,GENCAT_CC)-unipred(u_iswprint, (GENCAT_MC | GENCAT_NO | GENCAT_SK | GENCAT_ME | GENCAT_ND | GENCAT_PO | GENCAT_LT | GENCAT_PC | GENCAT_SM | GENCAT_ZS | GENCAT_LU | GENCAT_PD | GENCAT_SO | GENCAT_PE | GENCAT_PF | GENCAT_PS | GENCAT_SC | GENCAT_LL | GENCAT_LM | GENCAT_PI | GENCAT_NL | GENCAT_MN | GENCAT_LO))-unipred_s(u_iswspace,GENCAT_ZS)-unipred(u_iswupper,(GENCAT_LU|GENCAT_LT))-unipred(u_iswlower,GENCAT_LL)-unipred(u_iswalpha,(GENCAT_LL|GENCAT_LU|GENCAT_LT|GENCAT_LM|GENCAT_LO))-unipred(u_iswdigit,GENCAT_ND)--unipred(u_iswalnum,(GENCAT_LT|GENCAT_LU|GENCAT_LL|GENCAT_LM|GENCAT_LO|- GENCAT_NO|GENCAT_ND|GENCAT_NL))--#define caseconv(p,to) \-HsInt p(HsInt c) \-{ \- const struct _convrule_ *rule=getrule(convchars,NUM_CONVBLOCKS,c);\- if(rule==&nullrule) return c;\- return c+rule->to;\-}--caseconv(u_towupper,updist)-caseconv(u_towlower,lowdist)-caseconv(u_towtitle,titledist)--HsInt u_gencat(HsInt c)-{- return getrule(allchars,NUM_BLOCKS,c)->catnumber;-}
cbits/sysconf.c view
@@ -6,9 +6,7 @@ #endif /* for CLK_TCK */-#if HAVE_TIME_H #include <time.h>-#endif long clk_tck(void) { #if defined(CLK_TCK)
changelog.md view
@@ -1,22 +1,79 @@ # Changelog for [`base` package](http://hackage.haskell.org/package/base) -## 4.17.2.1 *November 2023*-- * Add missing int64/word64-to-double/float rules ([CLC Proposal #203](https://github.com/haskell/core-libraries-committee/issues/203))-- * Improve String & IsString documentation.--## 4.17.2.0 *August 2023*-- * Restore `mingwex` dependency on Windows (#23309).-- * Fix an incorrect CPP guard on `darwin_HOST_OS`.--## 4.17.1.0 *April 2023*-- * Remove `mingwex` dependency on Windows (#22166).+## 4.18.0.0 *TBA* - * Fix inconsistency with decoding terminal input on Windows (#21488).+ * Add `INLINABLE` pragmas to `generic*` functions in Data.OldList ([CLC proposal #129](https://github.com/haskell/core-libraries-committee/issues/130))+ * `Foreign.C.ConstPtr.ConstrPtr` was added to encode `const`-qualified+ pointer types in foreign declarations when using `CApiFFI` extension. ([CLC proposal #117](https://github.com/haskell/core-libraries-committee/issues/117))+ * Add `forall a. Functor (p a)` superclass for `Bifunctor p` ([CLC proposal #91](https://github.com/haskell/core-libraries-committee/issues/91))+ * Add Functor instances for `(,,,,) a b c d`, `(,,,,,) a b c d e` and+ `(,,,,,) a b c d e f`.+ * Exceptions thrown by weak pointer finalizers can now be reported by setting+ a global exception handler, using `System.Mem.Weak.setFinalizerExceptionHandler`.+ The default behaviour is unchanged (exceptions are ignored and not reported).+ * `Numeric.Natural` re-exports `GHC.Natural.minusNaturalMaybe`+ ([CLC proposal #45](https://github.com/haskell/core-libraries-committee/issues/45))+ * Add `Data.Foldable1` and `Data.Bifoldable1`+ ([CLC proposal #9](https://github.com/haskell/core-libraries-committee/issues/9))+ * Add `applyWhen` to `Data.Function`+ ([CLC proposal #71](https://github.com/haskell/core-libraries-committee/issues/71))+ * Add functions `mapAccumM` and `forAccumM` to `Data.Traversable`+ ([CLC proposal #65](https://github.com/haskell/core-libraries-committee/issues/65))+ * Add default implementation of `(<>)` in terms of `sconcat` and `mempty` in+ terms of `mconcat` ([CLC proposal #61](https://github.com/haskell/core-libraries-committee/issues/61)).+ * `GHC.Conc.Sync.listThreads` was added, allowing the user to list the threads+ (both running and blocked) of the program.+ * `GHC.Conc.Sync.labelThreadByteArray#` was added, allowing the user to specify+ a thread label by way of a `ByteArray#` containing a UTF-8-encoded string.+ The old `GHC.Conc.Sync.labelThread` is now implemented in terms of this+ function.+ * `GHC.Conc.Sync.threadLabel` was added, allowing the user to query the label+ of a given `ThreadId`.+ * Add `inits1` and `tails1` to `Data.List.NonEmpty`+ ([CLC proposal #67](https://github.com/haskell/core-libraries-committee/issues/67))+ * Change default `Ord` implementation of `(>=)`, `(>)`, and `(<)` to use+ `(<=)` instead of `compare` ([CLC proposal #24](https://github.com/haskell/core-libraries-committee/issues/24)).+ * Export `liftA2` from `Prelude`. This means that the entirety of `Applicative`+ is now exported from `Prelude`+ ([CLC proposal #50](https://github.com/haskell/core-libraries-committee/issues/50),+ [the migration+ guide](https://github.com/haskell/core-libraries-committee/blob/main/guides/export-lifta2-prelude.md))+ * Update to [Unicode 15.0.0](https://www.unicode.org/versions/Unicode15.0.0/).+ * Add standard Unicode case predicates `isUpperCase` and `isLowerCase` to+ `GHC.Unicode` and `Data.Char`. These predicates use the standard Unicode+ case properties and are more intuitive than `isUpper` and `isLower`+ ([CLC proposal #90](https://github.com/haskell/core-libraries-committee/issues/90))+ * Add `Eq` and `Ord` instances for `Generically1`.+ * Relax instances for Functor combinators; put superclass on Class1 and Class2+ to make non-breaking ([CLC proposal #10](https://github.com/haskell/core-libraries-committee/issues/10),+ [migration guide](https://github.com/haskell/core-libraries-committee/blob/main/guides/functor-combinator-instances-and-class1s.md))+ * Add `gcdetails_block_fragmentation_bytes` to `GHC.Stats.GCDetails` to track heap fragmentation.+ * `GHC.TypeLits` and `GHC.TypeNats` now export the `natSing`, `symbolSing`,+ and `charSing` methods of `KnownNat`, `KnownSymbol`, and `KnownChar`,+ respectively. They also export the `SNat`, `SSymbol`, and `SChar` types+ that are used in these methods and provide an API to interact with these+ types, per+ [CLC proposal #85](https://github.com/haskell/core-libraries-committee/issues/85).+ * The `Enum` instance of `Down a` now enumerates values in the opposite+ order as the `Enum a` instance ([CLC proposal #51](https://github.com/haskell/core-libraries-committee/issues/51))+ * `Foreign.Marshal.Pool` now uses the RTS internal arena instead of libc+ `malloc` for allocation. It avoids the O(n) overhead of maintaining a list+ of individually allocated pointers as well as freeing each one of them when+ freeing a `Pool` (#14762, #18338)+ * `Type.Reflection.Unsafe` is now marked as unsafe.+ * Add `Data.Typeable.heqT`, a kind-heterogeneous version of+ `Data.Typeable.eqT`+ ([CLC proposal #99](https://github.com/haskell/core-libraries-committee/issues/99))+ * Various declarations GHC's new info-table provenance feature have been+ moved from `GHC.Stack.CCS` to a new `GHC.InfoProv` module:+ * The `InfoProv`, along its `ipName`, `ipDesc`, `ipTyDesc`, `ipLabel`,+ `ipMod`, and `ipLoc` fields, have been moved.+ * `InfoProv` now has additional `ipSrcFile` and `ipSrcSpan` fields. `ipLoc`+ is now a function computed from these fields.+ * The `whereFrom` function has been moved+ * Refactor `generalCategory` to stop very large literal string being inlined to call-sites.+ ([CLC proposal #130](https://github.com/haskell/core-libraries-committee/issues/130))+ * Add INLINABLE pragmas to `generic*` functions in Data.OldList ([CLC proposal #129](https://github.com/haskell/core-libraries-committee/issues/130)) ## 4.17.0.0 *August 2022*
configure view
@@ -1818,29535 +1818,28948 @@ } # ac_fn_c_check_func -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES-# ---------------------------------------------# Tries to find the compile-time value of EXPR in a program that includes-# INCLUDES, setting VAR accordingly. Returns whether the value could be-# computed-ac_fn_c_compute_int ()-{- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- if test "$cross_compiling" = yes; then- # Depending upon the size, compute the lo and hi bounds.-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-int-main ()-{-static int test_array [1 - 2 * !(($2) >= 0)];-test_array [0] = 0;-return test_array [0];-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_lo=0 ac_mid=0- while :; do- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-int-main ()-{-static int test_array [1 - 2 * !(($2) <= $ac_mid)];-test_array [0] = 0;-return test_array [0];-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_hi=$ac_mid; break-else- as_fn_arith $ac_mid + 1 && ac_lo=$as_val- if test $ac_lo -le $ac_mid; then- ac_lo= ac_hi=- break- fi- as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext- done-else- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-int-main ()-{-static int test_array [1 - 2 * !(($2) < 0)];-test_array [0] = 0;-return test_array [0];-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_hi=-1 ac_mid=-1- while :; do- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-int-main ()-{-static int test_array [1 - 2 * !(($2) >= $ac_mid)];-test_array [0] = 0;-return test_array [0];-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_lo=$ac_mid; break-else- as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val- if test $ac_mid -le $ac_hi; then- ac_lo= ac_hi=- break- fi- as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext- done-else- ac_lo= ac_hi=-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-# Binary search between lo and hi bounds.-while test "x$ac_lo" != "x$ac_hi"; do- as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-int-main ()-{-static int test_array [1 - 2 * !(($2) <= $ac_mid)];-test_array [0] = 0;-return test_array [0];-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_hi=$ac_mid-else- as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-done-case $ac_lo in #((-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;-'') ac_retval=1 ;;-esac- else- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-static long int longval () { return $2; }-static unsigned long int ulongval () { return $2; }-#include <stdio.h>-#include <stdlib.h>-int-main ()-{-- FILE *f = fopen ("conftest.val", "w");- if (! f)- return 1;- if (($2) < 0)- {- long int i = longval ();- if (i != ($2))- return 1;- fprintf (f, "%ld", i);- }- else- {- unsigned long int i = ulongval ();- if (i != ($2))- return 1;- fprintf (f, "%lu", i);- }- /* Do not output a trailing newline, as this causes \r\n confusion- on some platforms. */- return ferror (f) || fclose (f) != 0;-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_run "$LINENO"; then :- echo >>conftest.val; read $3 <conftest.val; ac_retval=0-else- ac_retval=1-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \- conftest.$ac_objext conftest.beam conftest.$ac_ext-rm -f conftest.val-- fi- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno- as_fn_set_status $ac_retval--} # ac_fn_c_compute_int--# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES-# ----------------------------------------------# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR-# accordingly.-ac_fn_c_check_decl ()-{- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- as_decl_name=`echo $2|sed 's/ *(.*//'`- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }-if eval \${$3+:} false; then :- $as_echo_n "(cached) " >&6-else- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-int-main ()-{-#ifndef $as_decl_name-#ifdef __cplusplus- (void) $as_decl_use;-#else- (void) $as_decl_name;-#endif-#endif-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- eval "$3=yes"-else- eval "$3=no"-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-eval ac_res=\$$3- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-$as_echo "$ac_res" >&6; }- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno--} # ac_fn_c_check_decl-cat >config.log <<_ACEOF-This file contains any messages produced by compilers while-running configure, to aid debugging if configure makes a mistake.--It was created by Haskell base package $as_me 1.0, which was-generated by GNU Autoconf 2.69. Invocation command line was-- $ $0 $@--_ACEOF-exec 5>>config.log-{-cat <<_ASUNAME-## --------- ##-## Platform. ##-## --------- ##--hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`-uname -m = `(uname -m) 2>/dev/null || echo unknown`-uname -r = `(uname -r) 2>/dev/null || echo unknown`-uname -s = `(uname -s) 2>/dev/null || echo unknown`-uname -v = `(uname -v) 2>/dev/null || echo unknown`--/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`--/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`--_ASUNAME--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- $as_echo "PATH: $as_dir"- done-IFS=$as_save_IFS--} >&5--cat >&5 <<_ACEOF---## ----------- ##-## Core tests. ##-## ----------- ##--_ACEOF---# Keep a trace of the command line.-# Strip out --no-create and --no-recursion so they do not pile up.-# Strip out --silent because we don't want to record it for future runs.-# Also quote any args containing shell meta-characters.-# Make two passes to allow for proper duplicate-argument suppression.-ac_configure_args=-ac_configure_args0=-ac_configure_args1=-ac_must_keep_next=false-for ac_pass in 1 2-do- for ac_arg- do- case $ac_arg in- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;- -q | -quiet | --quiet | --quie | --qui | --qu | --q \- | -silent | --silent | --silen | --sile | --sil)- continue ;;- *\'*)- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;- esac- case $ac_pass in- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;- 2)- as_fn_append ac_configure_args1 " '$ac_arg'"- if test $ac_must_keep_next = true; then- ac_must_keep_next=false # Got value, back to normal.- else- case $ac_arg in- *=* | --config-cache | -C | -disable-* | --disable-* \- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \- | -with-* | --with-* | -without-* | --without-* | --x)- case "$ac_configure_args0 " in- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;- esac- ;;- -* ) ac_must_keep_next=true ;;- esac- fi- as_fn_append ac_configure_args " '$ac_arg'"- ;;- esac- done-done-{ ac_configure_args0=; unset ac_configure_args0;}-{ ac_configure_args1=; unset ac_configure_args1;}--# When interrupted or exit'd, cleanup temporary files, and complete-# config.log. We remove comments because anyway the quotes in there-# would cause problems or look ugly.-# WARNING: Use '\'' to represent an apostrophe within the trap.-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.-trap 'exit_status=$?- # Save into config.log some information that might help in debugging.- {- echo-- $as_echo "## ---------------- ##-## Cache variables. ##-## ---------------- ##"- echo- # The following way of writing the cache mishandles newlines in values,-(- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do- eval ac_val=\$$ac_var- case $ac_val in #(- *${as_nl}*)- case $ac_var in #(- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;- esac- case $ac_var in #(- _ | IFS | as_nl) ;; #(- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(- *) { eval $ac_var=; unset $ac_var;} ;;- esac ;;- esac- done- (set) 2>&1 |- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(- *${as_nl}ac_space=\ *)- sed -n \- "s/'\''/'\''\\\\'\'''\''/g;- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"- ;; #(- *)- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"- ;;- esac |- sort-)- echo-- $as_echo "## ----------------- ##-## Output variables. ##-## ----------------- ##"- echo- for ac_var in $ac_subst_vars- do- eval ac_val=\$$ac_var- case $ac_val in- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;- esac- $as_echo "$ac_var='\''$ac_val'\''"- done | sort- echo-- if test -n "$ac_subst_files"; then- $as_echo "## ------------------- ##-## File substitutions. ##-## ------------------- ##"- echo- for ac_var in $ac_subst_files- do- eval ac_val=\$$ac_var- case $ac_val in- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;- esac- $as_echo "$ac_var='\''$ac_val'\''"- done | sort- echo- fi-- if test -s confdefs.h; then- $as_echo "## ----------- ##-## confdefs.h. ##-## ----------- ##"- echo- cat confdefs.h- echo- fi- test "$ac_signal" != 0 &&- $as_echo "$as_me: caught signal $ac_signal"- $as_echo "$as_me: exit $exit_status"- } >&5- rm -f core *.core core.conftest.* &&- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&- exit $exit_status-' 0-for ac_signal in 1 2 13 15; do- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal-done-ac_signal=0--# confdefs.h avoids OS command line length limits that DEFS can exceed.-rm -f -r conftest* confdefs.h--$as_echo "/* confdefs.h */" > confdefs.h--# Predefined preprocessor variables.--cat >>confdefs.h <<_ACEOF-#define PACKAGE_NAME "$PACKAGE_NAME"-_ACEOF--cat >>confdefs.h <<_ACEOF-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"-_ACEOF--cat >>confdefs.h <<_ACEOF-#define PACKAGE_VERSION "$PACKAGE_VERSION"-_ACEOF--cat >>confdefs.h <<_ACEOF-#define PACKAGE_STRING "$PACKAGE_STRING"-_ACEOF--cat >>confdefs.h <<_ACEOF-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"-_ACEOF--cat >>confdefs.h <<_ACEOF-#define PACKAGE_URL "$PACKAGE_URL"-_ACEOF---# Let the site file select an alternate cache file if it wants to.-# Prefer an explicitly selected file to automatically selected ones.-ac_site_file1=NONE-ac_site_file2=NONE-if test -n "$CONFIG_SITE"; then- # We do not want a PATH search for config.site.- case $CONFIG_SITE in #((- -*) ac_site_file1=./$CONFIG_SITE;;- */*) ac_site_file1=$CONFIG_SITE;;- *) ac_site_file1=./$CONFIG_SITE;;- esac-elif test "x$prefix" != xNONE; then- ac_site_file1=$prefix/share/config.site- ac_site_file2=$prefix/etc/config.site-else- ac_site_file1=$ac_default_prefix/share/config.site- ac_site_file2=$ac_default_prefix/etc/config.site-fi-for ac_site_file in "$ac_site_file1" "$ac_site_file2"-do- test "x$ac_site_file" = xNONE && continue- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5-$as_echo "$as_me: loading site script $ac_site_file" >&6;}- sed 's/^/| /' "$ac_site_file" >&5- . "$ac_site_file" \- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "failed to load site script $ac_site_file-See \`config.log' for more details" "$LINENO" 5; }- fi-done--if test -r "$cache_file"; then- # Some versions of bash will fail to source /dev/null (special files- # actually), so we avoid doing that. DJGPP emulates it as a regular file.- if test /dev/null != "$cache_file" && test -f "$cache_file"; then- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5-$as_echo "$as_me: loading cache $cache_file" >&6;}- case $cache_file in- [\\/]* | ?:[\\/]* ) . "$cache_file";;- *) . "./$cache_file";;- esac- fi-else- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5-$as_echo "$as_me: creating cache $cache_file" >&6;}- >$cache_file-fi--# Check that the precious variables saved in the cache have kept the same-# value.-ac_cache_corrupted=false-for ac_var in $ac_precious_vars; do- eval ac_old_set=\$ac_cv_env_${ac_var}_set- eval ac_new_set=\$ac_env_${ac_var}_set- eval ac_old_val=\$ac_cv_env_${ac_var}_value- eval ac_new_val=\$ac_env_${ac_var}_value- case $ac_old_set,$ac_new_set in- set,)- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}- ac_cache_corrupted=: ;;- ,set)- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}- ac_cache_corrupted=: ;;- ,);;- *)- if test "x$ac_old_val" != "x$ac_new_val"; then- # differences in whitespace do not lead to failure.- ac_old_val_w=`echo x $ac_old_val`- ac_new_val_w=`echo x $ac_new_val`- if test "$ac_old_val_w" != "$ac_new_val_w"; then- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}- ac_cache_corrupted=:- else- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}- eval $ac_var=\$ac_old_val- fi- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}- fi;;- esac- # Pass precious variables to config.status.- if test "$ac_new_set" = set; then- case $ac_new_val in- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;- *) ac_arg=$ac_var=$ac_new_val ;;- esac- case " $ac_configure_args " in- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.- *) as_fn_append ac_configure_args " '$ac_arg'" ;;- esac- fi-done-if $ac_cache_corrupted; then- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5-fi-## -------------------- ##-## Main body of script. ##-## -------------------- ##--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu----# Safety check: Ensure that we are in the correct source directory.---ac_config_headers="$ac_config_headers include/HsBaseConfig.h include/EventConfig.h"---ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.-set dummy ${ac_tool_prefix}gcc; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_CC+:} false; then :- $as_echo_n "(cached) " >&6-else- if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then- ac_cv_prog_CC="${ac_tool_prefix}gcc"- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-$as_echo "$CC" >&6; }-else- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_CC"; then- ac_ct_CC=$CC- # Extract the first word of "gcc", so it can be a program name with args.-set dummy gcc; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_ac_ct_CC+:} false; then :- $as_echo_n "(cached) " >&6-else- if test -n "$ac_ct_CC"; then- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_CC="gcc"- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi-fi-ac_ct_CC=$ac_cv_prog_ac_ct_CC-if test -n "$ac_ct_CC"; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5-$as_echo "$ac_ct_CC" >&6; }-else- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi-- if test "x$ac_ct_CC" = x; then- CC=""- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- CC=$ac_ct_CC- fi-else- CC="$ac_cv_prog_CC"-fi--if test -z "$CC"; then- if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.-set dummy ${ac_tool_prefix}cc; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_CC+:} false; then :- $as_echo_n "(cached) " >&6-else- if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then- ac_cv_prog_CC="${ac_tool_prefix}cc"- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-$as_echo "$CC" >&6; }-else- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi--- fi-fi-if test -z "$CC"; then- # Extract the first word of "cc", so it can be a program name with args.-set dummy cc; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_CC+:} false; then :- $as_echo_n "(cached) " >&6-else- if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else- ac_prog_rejected=no-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then- ac_prog_rejected=yes- continue- fi- ac_cv_prog_CC="cc"- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--if test $ac_prog_rejected = yes; then- # We found a bogon in the path, so make sure we never use it.- set dummy $ac_cv_prog_CC- shift- if test $# != 0; then- # We chose a different compiler from the bogus one.- # However, it has the same basename, so the bogon will be chosen- # first if we set CC to just the basename; use the full file name.- shift- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"- fi-fi-fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-$as_echo "$CC" >&6; }-else- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi---fi-if test -z "$CC"; then- if test -n "$ac_tool_prefix"; then- for ac_prog in cl.exe- do- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.-set dummy $ac_tool_prefix$ac_prog; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_CC+:} false; then :- $as_echo_n "(cached) " >&6-else- if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-$as_echo "$CC" >&6; }-else- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi--- test -n "$CC" && break- done-fi-if test -z "$CC"; then- ac_ct_CC=$CC- for ac_prog in cl.exe-do- # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-$as_echo_n "checking for $ac_word... " >&6; }-if ${ac_cv_prog_ac_ct_CC+:} false; then :- $as_echo_n "(cached) " >&6-else- if test -n "$ac_ct_CC"; then- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_CC="$ac_prog"- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi-fi-ac_ct_CC=$ac_cv_prog_ac_ct_CC-if test -n "$ac_ct_CC"; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5-$as_echo "$ac_ct_CC" >&6; }-else- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-fi--- test -n "$ac_ct_CC" && break-done-- if test "x$ac_ct_CC" = x; then- CC=""- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- CC=$ac_ct_CC- fi-fi--fi---test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "no acceptable C compiler found in \$PATH-See \`config.log' for more details" "$LINENO" 5; }--# Provide some information about the compiler.-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5-set X $ac_compile-ac_compiler=$2-for ac_option in --version -v -V -qversion; do- { { ac_try="$ac_compiler $ac_option >&5"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5- (eval "$ac_compiler $ac_option >&5") 2>conftest.err- ac_status=$?- if test -s conftest.err; then- sed '10a\-... rest of stderr output deleted ...- 10q' conftest.err >conftest.er1- cat conftest.er1 >&5- fi- rm -f conftest.er1 conftest.err- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }-done--cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main ()-{-- ;- return 0;-}-_ACEOF-ac_clean_files_save=$ac_clean_files-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"-# Try to create an executable without -o first, disregard a.out.-# It will help us diagnose broken compilers, and finding out an intuition-# of exeext.-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5-$as_echo_n "checking whether the C compiler works... " >&6; }-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`--# The possible output files:-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"--ac_rmfiles=-for ac_file in $ac_files-do- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;- * ) ac_rmfiles="$ac_rmfiles $ac_file";;- esac-done-rm -f $ac_rmfiles--if { { ac_try="$ac_link_default"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5- (eval "$ac_link_default") 2>&5- ac_status=$?- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; then :- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'-# in a Makefile. We should not override ac_cv_exeext if it was cached,-# so that the user can short-circuit this test for compilers unknown to-# Autoconf.-for ac_file in $ac_files ''-do- test -f "$ac_file" || continue- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )- ;;- [ab].out )- # We found the default executable, but exeext='' is most- # certainly right.- break;;- *.* )- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;- then :; else- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`- fi- # We set ac_cv_exeext here because the later test for it is not- # safe: cross compilers may not add the suffix if given an `-o'- # argument, so we may need to know it at that point already.- # Even if this section looks crufty: it has the advantage of- # actually working.- break;;- * )- break;;- esac-done-test "$ac_cv_exeext" = no && ac_cv_exeext=--else- ac_file=''-fi-if test -z "$ac_file"; then :- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5-$as_echo "no" >&6; }-$as_echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error 77 "C compiler cannot create executables-See \`config.log' for more details" "$LINENO" 5; }-else- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5-$as_echo "yes" >&6; }-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5-$as_echo_n "checking for C compiler default output file name... " >&6; }-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5-$as_echo "$ac_file" >&6; }-ac_exeext=$ac_cv_exeext--rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out-ac_clean_files=$ac_clean_files_save-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5-$as_echo_n "checking for suffix of executables... " >&6; }-if { { ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5- (eval "$ac_link") 2>&5- ac_status=$?- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; then :- # If both `conftest.exe' and `conftest' are `present' (well, observable)-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will-# work properly (i.e., refer to `conftest.exe'), while it won't with-# `rm'.-for ac_file in conftest.exe conftest conftest.*; do- test -f "$ac_file" || continue- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`- break;;- * ) break;;- esac-done-else- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "cannot compute suffix of executables: cannot compile and link-See \`config.log' for more details" "$LINENO" 5; }-fi-rm -f conftest conftest$ac_cv_exeext-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5-$as_echo "$ac_cv_exeext" >&6; }--rm -f conftest.$ac_ext-EXEEXT=$ac_cv_exeext-ac_exeext=$EXEEXT-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <stdio.h>-int-main ()-{-FILE *f = fopen ("conftest.out", "w");- return ferror (f) || fclose (f) != 0;-- ;- return 0;-}-_ACEOF-ac_clean_files="$ac_clean_files conftest.out"-# Check that the compiler produces executables we can run. If not, either-# the compiler is broken, or we cross compile.-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5-$as_echo_n "checking whether we are cross compiling... " >&6; }-if test "$cross_compiling" != yes; then- { { ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5- (eval "$ac_link") 2>&5- ac_status=$?- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }- if { ac_try='./conftest$ac_cv_exeext'- { { case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5- (eval "$ac_try") 2>&5- ac_status=$?- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; }; then- cross_compiling=no- else- if test "$cross_compiling" = maybe; then- cross_compiling=yes- else- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "cannot run C compiled programs.-If you meant to cross compile, use \`--host'.-See \`config.log' for more details" "$LINENO" 5; }- fi- fi-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5-$as_echo "$cross_compiling" >&6; }--rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out-ac_clean_files=$ac_clean_files_save-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5-$as_echo_n "checking for suffix of object files... " >&6; }-if ${ac_cv_objext+:} false; then :- $as_echo_n "(cached) " >&6-else- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main ()-{-- ;- return 0;-}-_ACEOF-rm -f conftest.o conftest.obj-if { { ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-$as_echo "$ac_try_echo"; } >&5- (eval "$ac_compile") 2>&5- ac_status=$?- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; then :- for ac_file in conftest.o conftest.obj conftest.*; do- test -f "$ac_file" || continue;- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`- break;;- esac-done-else- $as_echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "cannot compute suffix of object files: cannot compile-See \`config.log' for more details" "$LINENO" 5; }-fi-rm -f conftest.$ac_cv_objext conftest.$ac_ext-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5-$as_echo "$ac_cv_objext" >&6; }-OBJEXT=$ac_cv_objext-ac_objext=$OBJEXT-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }-if ${ac_cv_c_compiler_gnu+:} false; then :- $as_echo_n "(cached) " >&6-else- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main ()-{-#ifndef __GNUC__- choke me-#endif-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_compiler_gnu=yes-else- ac_compiler_gnu=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-ac_cv_c_compiler_gnu=$ac_compiler_gnu--fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5-$as_echo "$ac_cv_c_compiler_gnu" >&6; }-if test $ac_compiler_gnu = yes; then- GCC=yes-else- GCC=-fi-ac_test_CFLAGS=${CFLAGS+set}-ac_save_CFLAGS=$CFLAGS-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5-$as_echo_n "checking whether $CC accepts -g... " >&6; }-if ${ac_cv_prog_cc_g+:} false; then :- $as_echo_n "(cached) " >&6-else- ac_save_c_werror_flag=$ac_c_werror_flag- ac_c_werror_flag=yes- ac_cv_prog_cc_g=no- CFLAGS="-g"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main ()-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_cv_prog_cc_g=yes-else- CFLAGS=""- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main ()-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :--else- ac_c_werror_flag=$ac_save_c_werror_flag- CFLAGS="-g"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main ()-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_cv_prog_cc_g=yes-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext- ac_c_werror_flag=$ac_save_c_werror_flag-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5-$as_echo "$ac_cv_prog_cc_g" >&6; }-if test "$ac_test_CFLAGS" = set; then- CFLAGS=$ac_save_CFLAGS-elif test $ac_cv_prog_cc_g = yes; then- if test "$GCC" = yes; then- CFLAGS="-g -O2"- else- CFLAGS="-g"- fi-else- if test "$GCC" = yes; then- CFLAGS="-O2"- else- CFLAGS=- fi-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }-if ${ac_cv_prog_cc_c89+:} false; then :- $as_echo_n "(cached) " >&6-else- ac_cv_prog_cc_c89=no-ac_save_CC=$CC-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <stdarg.h>-#include <stdio.h>-struct stat;-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */-struct buf { int x; };-FILE * (*rcsopen) (struct buf *, struct stat *, int);-static char *e (p, i)- char **p;- int i;-{- return p[i];-}-static char *f (char * (*g) (char **, int), char **p, ...)-{- char *s;- va_list v;- va_start (v,p);- s = g (p, va_arg (v,int));- va_end (v);- return s;-}--/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has- function prototypes and stuff, but not '\xHH' hex character constants.- These don't provoke an error unfortunately, instead are silently treated- as 'x'. The following induces an error, until -std is added to get- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an- array size at least. It's necessary to write '\x00'==0 to get something- that's true only with -std. */-int osf4_cc_array ['\x00' == 0 ? 1 : -1];--/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters- inside strings and character constants. */-#define FOO(x) 'x'-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];--int test (int i, double x);-struct s1 {int (*f) (int a);};-struct s2 {int (*f) (double a);};-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);-int argc;-char **argv;-int-main ()-{-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];- ;- return 0;-}-_ACEOF-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"-do- CC="$ac_save_CC $ac_arg"- if ac_fn_c_try_compile "$LINENO"; then :- ac_cv_prog_cc_c89=$ac_arg-fi-rm -f core conftest.err conftest.$ac_objext- test "x$ac_cv_prog_cc_c89" != "xno" && break-done-rm -f conftest.$ac_ext-CC=$ac_save_CC--fi-# AC_CACHE_VAL-case "x$ac_cv_prog_cc_c89" in- x)- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5-$as_echo "none needed" >&6; } ;;- xno)- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5-$as_echo "unsupported" >&6; } ;;- *)- CC="$CC $ac_cv_prog_cc_c89"- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;-esac-if test "x$ac_cv_prog_cc_c89" != xno; then :--fi--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5-$as_echo_n "checking how to run the C preprocessor... " >&6; }-# On Suns, sometimes $CPP names a directory.-if test -n "$CPP" && test -d "$CPP"; then- CPP=-fi-if test -z "$CPP"; then- if ${ac_cv_prog_CPP+:} false; then :- $as_echo_n "(cached) " >&6-else- # Double quotes because CPP needs to be expanded- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"- do- ac_preproc_ok=false-for ac_c_preproc_warn_flag in '' yes-do- # Use a header file that comes with gcc, so configuring glibc- # with a fresh cross-compiler works.- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since- # <limits.h> exists even on freestanding compilers.- # On the NeXT, cc -E runs the code through the compiler's parser,- # not just through cpp. "Syntax error" is here to catch this case.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#ifdef __STDC__-# include <limits.h>-#else-# include <assert.h>-#endif- Syntax error-_ACEOF-if ac_fn_c_try_cpp "$LINENO"; then :--else- # Broken: fails on valid input.-continue-fi-rm -f conftest.err conftest.i conftest.$ac_ext-- # OK, works on sane cases. Now check whether nonexistent headers- # can be detected and how.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <ac_nonexistent.h>-_ACEOF-if ac_fn_c_try_cpp "$LINENO"; then :- # Broken: success on invalid input.-continue-else- # Passes both tests.-ac_preproc_ok=:-break-fi-rm -f conftest.err conftest.i conftest.$ac_ext--done-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.-rm -f conftest.i conftest.err conftest.$ac_ext-if $ac_preproc_ok; then :- break-fi-- done- ac_cv_prog_CPP=$CPP--fi- CPP=$ac_cv_prog_CPP-else- ac_cv_prog_CPP=$CPP-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5-$as_echo "$CPP" >&6; }-ac_preproc_ok=false-for ac_c_preproc_warn_flag in '' yes-do- # Use a header file that comes with gcc, so configuring glibc- # with a fresh cross-compiler works.- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since- # <limits.h> exists even on freestanding compilers.- # On the NeXT, cc -E runs the code through the compiler's parser,- # not just through cpp. "Syntax error" is here to catch this case.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#ifdef __STDC__-# include <limits.h>-#else-# include <assert.h>-#endif- Syntax error-_ACEOF-if ac_fn_c_try_cpp "$LINENO"; then :--else- # Broken: fails on valid input.-continue-fi-rm -f conftest.err conftest.i conftest.$ac_ext-- # OK, works on sane cases. Now check whether nonexistent headers- # can be detected and how.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <ac_nonexistent.h>-_ACEOF-if ac_fn_c_try_cpp "$LINENO"; then :- # Broken: success on invalid input.-continue-else- # Passes both tests.-ac_preproc_ok=:-break-fi-rm -f conftest.err conftest.i conftest.$ac_ext--done-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.-rm -f conftest.i conftest.err conftest.$ac_ext-if $ac_preproc_ok; then :--else- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check-See \`config.log' for more details" "$LINENO" 5; }-fi--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }-if ${ac_cv_path_GREP+:} false; then :- $as_echo_n "(cached) " >&6-else- if test -z "$GREP"; then- ac_path_GREP_found=false- # Loop through the user's path and test for each of PROGNAME-LIST- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_prog in grep ggrep; do- for ac_exec_ext in '' $ac_executable_extensions; do- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"- as_fn_executable_p "$ac_path_GREP" || continue-# Check for GNU ac_path_GREP and select it if it is found.- # Check for GNU $ac_path_GREP-case `"$ac_path_GREP" --version 2>&1` in-*GNU*)- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;-*)- ac_count=0- $as_echo_n 0123456789 >"conftest.in"- while :- do- cat "conftest.in" "conftest.in" >"conftest.tmp"- mv "conftest.tmp" "conftest.in"- cp "conftest.in" "conftest.nl"- $as_echo 'GREP' >> "conftest.nl"- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break- as_fn_arith $ac_count + 1 && ac_count=$as_val- if test $ac_count -gt ${ac_path_GREP_max-0}; then- # Best one so far, save it but keep looking for a better one- ac_cv_path_GREP="$ac_path_GREP"- ac_path_GREP_max=$ac_count- fi- # 10*(2^10) chars as input seems more than enough- test $ac_count -gt 10 && break- done- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac-- $ac_path_GREP_found && break 3- done- done- done-IFS=$as_save_IFS- if test -z "$ac_cv_path_GREP"; then- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5- fi-else- ac_cv_path_GREP=$GREP-fi--fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5-$as_echo "$ac_cv_path_GREP" >&6; }- GREP="$ac_cv_path_GREP"---{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5-$as_echo_n "checking for egrep... " >&6; }-if ${ac_cv_path_EGREP+:} false; then :- $as_echo_n "(cached) " >&6-else- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1- then ac_cv_path_EGREP="$GREP -E"- else- if test -z "$EGREP"; then- ac_path_EGREP_found=false- # Loop through the user's path and test for each of PROGNAME-LIST- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_prog in egrep; do- for ac_exec_ext in '' $ac_executable_extensions; do- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"- as_fn_executable_p "$ac_path_EGREP" || continue-# Check for GNU ac_path_EGREP and select it if it is found.- # Check for GNU $ac_path_EGREP-case `"$ac_path_EGREP" --version 2>&1` in-*GNU*)- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;-*)- ac_count=0- $as_echo_n 0123456789 >"conftest.in"- while :- do- cat "conftest.in" "conftest.in" >"conftest.tmp"- mv "conftest.tmp" "conftest.in"- cp "conftest.in" "conftest.nl"- $as_echo 'EGREP' >> "conftest.nl"- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break- as_fn_arith $ac_count + 1 && ac_count=$as_val- if test $ac_count -gt ${ac_path_EGREP_max-0}; then- # Best one so far, save it but keep looking for a better one- ac_cv_path_EGREP="$ac_path_EGREP"- ac_path_EGREP_max=$ac_count- fi- # 10*(2^10) chars as input seems more than enough- test $ac_count -gt 10 && break- done- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac-- $ac_path_EGREP_found && break 3- done- done- done-IFS=$as_save_IFS- if test -z "$ac_cv_path_EGREP"; then- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5- fi-else- ac_cv_path_EGREP=$EGREP-fi-- fi-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5-$as_echo "$ac_cv_path_EGREP" >&6; }- EGREP="$ac_cv_path_EGREP"---{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5-$as_echo_n "checking for ANSI C header files... " >&6; }-if ${ac_cv_header_stdc+:} false; then :- $as_echo_n "(cached) " >&6-else- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <stdlib.h>-#include <stdarg.h>-#include <string.h>-#include <float.h>--int-main ()-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_cv_header_stdc=yes-else- ac_cv_header_stdc=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext--if test $ac_cv_header_stdc = yes; then- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <string.h>--_ACEOF-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |- $EGREP "memchr" >/dev/null 2>&1; then :--else- ac_cv_header_stdc=no-fi-rm -f conftest*--fi--if test $ac_cv_header_stdc = yes; then- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <stdlib.h>--_ACEOF-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |- $EGREP "free" >/dev/null 2>&1; then :--else- ac_cv_header_stdc=no-fi-rm -f conftest*--fi--if test $ac_cv_header_stdc = yes; then- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.- if test "$cross_compiling" = yes; then :- :-else- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <ctype.h>-#include <stdlib.h>-#if ((' ' & 0x0FF) == 0x020)-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))-#else-# define ISLOWER(c) \- (('a' <= (c) && (c) <= 'i') \- || ('j' <= (c) && (c) <= 'r') \- || ('s' <= (c) && (c) <= 'z'))-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))-#endif--#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))-int-main ()-{- int i;- for (i = 0; i < 256; i++)- if (XOR (islower (i), ISLOWER (i))- || toupper (i) != TOUPPER (i))- return 2;- return 0;-}-_ACEOF-if ac_fn_c_try_run "$LINENO"; then :--else- ac_cv_header_stdc=no-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \- conftest.$ac_objext conftest.beam conftest.$ac_ext-fi--fi-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5-$as_echo "$ac_cv_header_stdc" >&6; }-if test $ac_cv_header_stdc = yes; then--$as_echo "#define STDC_HEADERS 1" >>confdefs.h--fi--# On IRIX 5.3, sys/types and inttypes.h are conflicting.-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \- inttypes.h stdint.h unistd.h-do :- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default-"-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :- cat >>confdefs.h <<_ACEOF-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1-_ACEOF--fi--done---- ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"-if test "x$ac_cv_header_minix_config_h" = xyes; then :- MINIX=yes-else- MINIX=-fi--- if test "$MINIX" = yes; then--$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h---$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h---$as_echo "#define _MINIX 1" >>confdefs.h-- fi--- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }-if ${ac_cv_safe_to_define___extensions__+:} false; then :- $as_echo_n "(cached) " >&6-else- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--# define __EXTENSIONS__ 1- $ac_includes_default-int-main ()-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_cv_safe_to_define___extensions__=yes-else- ac_cv_safe_to_define___extensions__=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }- test $ac_cv_safe_to_define___extensions__ = yes &&- $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h-- $as_echo "#define _ALL_SOURCE 1" >>confdefs.h-- $as_echo "#define _GNU_SOURCE 1" >>confdefs.h-- $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h-- $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h----{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WINDOWS platform" >&5-$as_echo_n "checking for WINDOWS platform... " >&6; }-case $host_alias in- *mingw32*|*mingw64*|*cygwin*|*msys*|*windows*)- WINDOWS=YES;;- *)- WINDOWS=NO;;-esac-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDOWS" >&5-$as_echo "$WINDOWS" >&6; }--# do we have long longs?-ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"-if test "x$ac_cv_type_long_long" = xyes; then :--cat >>confdefs.h <<_ACEOF-#define HAVE_LONG_LONG 1-_ACEOF---fi---# check for specific header (.h) files that we are interested in-for ac_header in ctype.h errno.h fcntl.h inttypes.h limits.h signal.h sys/file.h sys/resource.h sys/select.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/utsname.h sys/wait.h termios.h time.h unistd.h utime.h windows.h winsock.h langinfo.h poll.h sys/epoll.h sys/event.h sys/eventfd.h sys/socket.h-do :- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :- cat >>confdefs.h <<_ACEOF-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1-_ACEOF--fi--done---# Enable large file support. Do this before testing the types ino_t, off_t, and-# rlim_t, because it will affect the result of that test.-# Check whether --enable-largefile was given.-if test "${enable_largefile+set}" = set; then :- enableval=$enable_largefile;-fi--if test "$enable_largefile" != no; then-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5-$as_echo_n "checking for special C compiler options needed for large files... " >&6; }-if ${ac_cv_sys_largefile_CC+:} false; then :- $as_echo_n "(cached) " >&6-else- ac_cv_sys_largefile_CC=no- if test "$GCC" != yes; then- ac_save_CC=$CC- while :; do- # IRIX 6.2 and later do not support large files by default,- # so use the C compiler's -n32 option if that helps.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <sys/types.h>- /* Check that off_t can represent 2**63 - 1 correctly.- We can't simply define LARGE_OFF_T to be 9223372036854775807,- since some C++ compilers masquerading as C compilers- incorrectly reject 9223372036854775807. */-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721- && LARGE_OFF_T % 2147483647 == 1)- ? 1 : -1];-int-main ()-{-- ;- return 0;-}-_ACEOF- if ac_fn_c_try_compile "$LINENO"; then :- break-fi-rm -f core conftest.err conftest.$ac_objext- CC="$CC -n32"- if ac_fn_c_try_compile "$LINENO"; then :- ac_cv_sys_largefile_CC=' -n32'; break-fi-rm -f core conftest.err conftest.$ac_objext- break- done- CC=$ac_save_CC- rm -f conftest.$ac_ext- fi-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5-$as_echo "$ac_cv_sys_largefile_CC" >&6; }- if test "$ac_cv_sys_largefile_CC" != no; then- CC=$CC$ac_cv_sys_largefile_CC- fi-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5-$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }-if ${ac_cv_sys_file_offset_bits+:} false; then :- $as_echo_n "(cached) " >&6-else- while :; do- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <sys/types.h>- /* Check that off_t can represent 2**63 - 1 correctly.- We can't simply define LARGE_OFF_T to be 9223372036854775807,- since some C++ compilers masquerading as C compilers- incorrectly reject 9223372036854775807. */-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721- && LARGE_OFF_T % 2147483647 == 1)- ? 1 : -1];-int-main ()-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_cv_sys_file_offset_bits=no; break-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#define _FILE_OFFSET_BITS 64-#include <sys/types.h>- /* Check that off_t can represent 2**63 - 1 correctly.- We can't simply define LARGE_OFF_T to be 9223372036854775807,- since some C++ compilers masquerading as C compilers- incorrectly reject 9223372036854775807. */-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721- && LARGE_OFF_T % 2147483647 == 1)- ? 1 : -1];-int-main ()-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_cv_sys_file_offset_bits=64; break-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext- ac_cv_sys_file_offset_bits=unknown- break-done-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5-$as_echo "$ac_cv_sys_file_offset_bits" >&6; }-case $ac_cv_sys_file_offset_bits in #(- no | unknown) ;;- *)-cat >>confdefs.h <<_ACEOF-#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits-_ACEOF-;;-esac-rm -rf conftest*- if test $ac_cv_sys_file_offset_bits = unknown; then- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5-$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }-if ${ac_cv_sys_large_files+:} false; then :- $as_echo_n "(cached) " >&6-else- while :; do- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <sys/types.h>- /* Check that off_t can represent 2**63 - 1 correctly.- We can't simply define LARGE_OFF_T to be 9223372036854775807,- since some C++ compilers masquerading as C compilers- incorrectly reject 9223372036854775807. */-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721- && LARGE_OFF_T % 2147483647 == 1)- ? 1 : -1];-int-main ()-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_cv_sys_large_files=no; break-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#define _LARGE_FILES 1-#include <sys/types.h>- /* Check that off_t can represent 2**63 - 1 correctly.- We can't simply define LARGE_OFF_T to be 9223372036854775807,- since some C++ compilers masquerading as C compilers- incorrectly reject 9223372036854775807. */-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721- && LARGE_OFF_T % 2147483647 == 1)- ? 1 : -1];-int-main ()-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- ac_cv_sys_large_files=1; break-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext- ac_cv_sys_large_files=unknown- break-done-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5-$as_echo "$ac_cv_sys_large_files" >&6; }-case $ac_cv_sys_large_files in #(- no | unknown) ;;- *)-cat >>confdefs.h <<_ACEOF-#define _LARGE_FILES $ac_cv_sys_large_files-_ACEOF-;;-esac-rm -rf conftest*- fi---fi---for ac_header in wctype.h-do :- ac_fn_c_check_header_mongrel "$LINENO" "wctype.h" "ac_cv_header_wctype_h" "$ac_includes_default"-if test "x$ac_cv_header_wctype_h" = xyes; then :- cat >>confdefs.h <<_ACEOF-#define HAVE_WCTYPE_H 1-_ACEOF- for ac_func in iswspace-do :- ac_fn_c_check_func "$LINENO" "iswspace" "ac_cv_func_iswspace"-if test "x$ac_cv_func_iswspace" = xyes; then :- cat >>confdefs.h <<_ACEOF-#define HAVE_ISWSPACE 1-_ACEOF--fi-done--fi--done---for ac_func in lstat-do :- ac_fn_c_check_func "$LINENO" "lstat" "ac_cv_func_lstat"-if test "x$ac_cv_func_lstat" = xyes; then :- cat >>confdefs.h <<_ACEOF-#define HAVE_LSTAT 1-_ACEOF--fi-done--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5-$as_echo_n "checking for clock_gettime in -lrt... " >&6; }-if ${ac_cv_lib_rt_clock_gettime+:} false; then :- $as_echo_n "(cached) " >&6-else- ac_check_lib_save_LIBS=$LIBS-LIBS="-lrt $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--/* Override any GCC internal prototype to avoid an error.- Use char because int might match the return type of a GCC- builtin and then its argument prototype would still apply. */-#ifdef __cplusplus-extern "C"-#endif-char clock_gettime ();-int-main ()-{-return clock_gettime ();- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"; then :- ac_cv_lib_rt_clock_gettime=yes-else- ac_cv_lib_rt_clock_gettime=no-fi-rm -f core conftest.err conftest.$ac_objext \- conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS-fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5-$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; }-if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then :- cat >>confdefs.h <<_ACEOF-#define HAVE_LIBRT 1-_ACEOF-- LIBS="-lrt $LIBS"--fi--for ac_func in clock_gettime-do :- ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"-if test "x$ac_cv_func_clock_gettime" = xyes; then :- cat >>confdefs.h <<_ACEOF-#define HAVE_CLOCK_GETTIME 1-_ACEOF--fi-done--for ac_func in getclock getrusage times-do :- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :- cat >>confdefs.h <<_ACEOF-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1-_ACEOF--fi-done--for ac_func in _chsize_s ftruncate-do :- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :- cat >>confdefs.h <<_ACEOF-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1-_ACEOF--fi-done---# event-related fun-# The line below already defines HAVE_KQUEUE and HAVE_POLL, so technically some of the-# subsequent portions that redefine them could be skipped. However, we keep those portions-# to keep kqueue/poll in line with HAVE_EPOLL and possible other additions in the future. You-# should be aware of this peculiarity if you try to simulate not having kqueue or poll by-# moving away header files (see also https://gitlab.haskell.org/ghc/ghc/-/issues/9283)-for ac_func in epoll_ctl eventfd kevent kevent64 kqueue poll-do :- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :- cat >>confdefs.h <<_ACEOF-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1-_ACEOF--fi-done---if test "$ac_cv_header_sys_epoll_h" = yes && test "$ac_cv_func_epoll_ctl" = yes; then--$as_echo "#define HAVE_EPOLL 1" >>confdefs.h--fi--if test "$ac_cv_header_sys_event_h" = yes && test "$ac_cv_func_kqueue" = yes; then--$as_echo "#define HAVE_KQUEUE 1" >>confdefs.h--- # The cast to long int works around a bug in the HP C Compiler-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.-# This bug is HP SR number 8606223364.-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of kev.filter" >&5-$as_echo_n "checking size of kev.filter... " >&6; }-if ${ac_cv_sizeof_kev_filter+:} false; then :- $as_echo_n "(cached) " >&6-else- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (kev.filter))" "ac_cv_sizeof_kev_filter" "#include <sys/event.h>-struct kevent kev;-"; then :--else- if test "$ac_cv_type_kev_filter" = yes; then- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error 77 "cannot compute sizeof (kev.filter)-See \`config.log' for more details" "$LINENO" 5; }- else- ac_cv_sizeof_kev_filter=0- fi-fi--fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_kev_filter" >&5-$as_echo "$ac_cv_sizeof_kev_filter" >&6; }----cat >>confdefs.h <<_ACEOF-#define SIZEOF_KEV_FILTER $ac_cv_sizeof_kev_filter-_ACEOF---- # The cast to long int works around a bug in the HP C Compiler-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.-# This bug is HP SR number 8606223364.-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of kev.flags" >&5-$as_echo_n "checking size of kev.flags... " >&6; }-if ${ac_cv_sizeof_kev_flags+:} false; then :- $as_echo_n "(cached) " >&6-else- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (kev.flags))" "ac_cv_sizeof_kev_flags" "#include <sys/event.h>-struct kevent kev;-"; then :--else- if test "$ac_cv_type_kev_flags" = yes; then- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}-as_fn_error 77 "cannot compute sizeof (kev.flags)-See \`config.log' for more details" "$LINENO" 5; }- else- ac_cv_sizeof_kev_flags=0- fi-fi--fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_kev_flags" >&5-$as_echo "$ac_cv_sizeof_kev_flags" >&6; }----cat >>confdefs.h <<_ACEOF-#define SIZEOF_KEV_FLAGS $ac_cv_sizeof_kev_flags-_ACEOF---fi--if test "$ac_cv_header_poll_h" = yes && test "$ac_cv_func_poll" = yes; then--$as_echo "#define HAVE_POLL 1" >>confdefs.h--fi--# Linux open file descriptor locks-ac_fn_c_check_decl "$LINENO" "F_OFD_SETLK" "ac_cv_have_decl_F_OFD_SETLK" "- #include <unistd.h>- #include <fcntl.h>--"-if test "x$ac_cv_have_decl_F_OFD_SETLK" = xyes; then :---$as_echo "#define HAVE_OFD_LOCKING 1" >>confdefs.h---fi---# flock-for ac_func in flock-do :- ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock"-if test "x$ac_cv_func_flock" = xyes; then :- cat >>confdefs.h <<_ACEOF-#define HAVE_FLOCK 1-_ACEOF--fi-done--if test "$ac_cv_header_sys_file_h" = yes && test "$ac_cv_func_flock" = yes; then--$as_echo "#define HAVE_FLOCK 1" >>confdefs.h--fi--# unsetenv-for ac_func in unsetenv-do :- ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv"-if test "x$ac_cv_func_unsetenv" = xyes; then :- cat >>confdefs.h <<_ACEOF-#define HAVE_UNSETENV 1-_ACEOF--fi-done---### POSIX.1003.1 unsetenv returns 0 or -1 (EINVAL), but older implementations-### in common use return void.-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of unsetenv" >&5-$as_echo_n "checking return type of unsetenv... " >&6; }-if ${fptools_cv_func_unsetenv_return_type+:} false; then :- $as_echo_n "(cached) " >&6-else- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <stdlib.h>--_ACEOF-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |- $EGREP "void[ ]+unsetenv" >/dev/null 2>&1; then :- fptools_cv_func_unsetenv_return_type=void-else- fptools_cv_func_unsetenv_return_type=int-fi-rm -f conftest*--fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_func_unsetenv_return_type" >&5-$as_echo "$fptools_cv_func_unsetenv_return_type" >&6; }-case "$fptools_cv_func_unsetenv_return_type" in- "void" )--$as_echo "#define UNSETENV_RETURNS_VOID 1" >>confdefs.h-- ;;-esac----# Check whether --with-iconv-includes was given.-if test "${with_iconv_includes+set}" = set; then :- withval=$with_iconv_includes; ICONV_INCLUDE_DIRS=$withval; CPPFLAGS="-I$withval $CPPFLAGS"-else- ICONV_INCLUDE_DIRS=-fi----# Check whether --with-iconv-libraries was given.-if test "${with_iconv_libraries+set}" = set; then :- withval=$with_iconv_libraries; ICONV_LIB_DIRS=$withval; LDFLAGS="-L$withval $LDFLAGS"-else- ICONV_LIB_DIRS=-fi------# map standard C types and ISO types to Haskell types--------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for char" >&5-$as_echo_n "checking Haskell type for char... " >&6; }- if ${fptools_cv_htype_char+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_char=yes- if ac_fn_c_compute_int "$LINENO" "(char)0.2 - (char)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-char val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_char="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(char) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_char=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(char) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_char=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(char) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_char=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_char=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_char=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_char=LDouble- else- fptools_cv_htype_sup_char=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((char)(-1)) < ((char)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_char=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(char) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_char=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_char="Word$HTYPE_SIZE"- else- fptools_cv_htype_char="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_char" = no- then-- fptools_cv_htype_char=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_char" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_char" >&5-$as_echo "$fptools_cv_htype_char" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_CHAR $fptools_cv_htype_char-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for signed char" >&5-$as_echo_n "checking Haskell type for signed char... " >&6; }- if ${fptools_cv_htype_signed_char+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_signed_char=yes- if ac_fn_c_compute_int "$LINENO" "(signed char)0.2 - (signed char)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-signed char val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_signed_char="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(signed char) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_signed_char=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(signed char) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_signed_char=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(signed char) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_signed_char=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_signed_char=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_signed_char=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_signed_char=LDouble- else- fptools_cv_htype_sup_signed_char=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((signed char)(-1)) < ((signed char)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_signed_char=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(signed char) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_signed_char=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_signed_char="Word$HTYPE_SIZE"- else- fptools_cv_htype_signed_char="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_signed_char" = no- then-- fptools_cv_htype_signed_char=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_signed_char" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_signed_char" >&5-$as_echo "$fptools_cv_htype_signed_char" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_SIGNED_CHAR $fptools_cv_htype_signed_char-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned char" >&5-$as_echo_n "checking Haskell type for unsigned char... " >&6; }- if ${fptools_cv_htype_unsigned_char+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_unsigned_char=yes- if ac_fn_c_compute_int "$LINENO" "(unsigned char)0.2 - (unsigned char)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-unsigned char val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_unsigned_char="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned char) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_char=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned char) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_char=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned char) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_char=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_unsigned_char=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_unsigned_char=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_unsigned_char=LDouble- else- fptools_cv_htype_sup_unsigned_char=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((unsigned char)(-1)) < ((unsigned char)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_char=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned char) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_char=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_unsigned_char="Word$HTYPE_SIZE"- else- fptools_cv_htype_unsigned_char="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_unsigned_char" = no- then-- fptools_cv_htype_unsigned_char=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_unsigned_char" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_unsigned_char" >&5-$as_echo "$fptools_cv_htype_unsigned_char" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_UNSIGNED_CHAR $fptools_cv_htype_unsigned_char-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for short" >&5-$as_echo_n "checking Haskell type for short... " >&6; }- if ${fptools_cv_htype_short+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_short=yes- if ac_fn_c_compute_int "$LINENO" "(short)0.2 - (short)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-short val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_short="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(short) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_short=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(short) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_short=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(short) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_short=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_short=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_short=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_short=LDouble- else- fptools_cv_htype_sup_short=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((short)(-1)) < ((short)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_short=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(short) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_short=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_short="Word$HTYPE_SIZE"- else- fptools_cv_htype_short="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_short" = no- then-- fptools_cv_htype_short=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_short" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_short" >&5-$as_echo "$fptools_cv_htype_short" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_SHORT $fptools_cv_htype_short-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned short" >&5-$as_echo_n "checking Haskell type for unsigned short... " >&6; }- if ${fptools_cv_htype_unsigned_short+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_unsigned_short=yes- if ac_fn_c_compute_int "$LINENO" "(unsigned short)0.2 - (unsigned short)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-unsigned short val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_unsigned_short="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned short) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_short=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned short) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_short=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned short) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_short=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_unsigned_short=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_unsigned_short=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_unsigned_short=LDouble- else- fptools_cv_htype_sup_unsigned_short=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((unsigned short)(-1)) < ((unsigned short)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_short=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned short) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_short=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_unsigned_short="Word$HTYPE_SIZE"- else- fptools_cv_htype_unsigned_short="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_unsigned_short" = no- then-- fptools_cv_htype_unsigned_short=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_unsigned_short" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_unsigned_short" >&5-$as_echo "$fptools_cv_htype_unsigned_short" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_UNSIGNED_SHORT $fptools_cv_htype_unsigned_short-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for int" >&5-$as_echo_n "checking Haskell type for int... " >&6; }- if ${fptools_cv_htype_int+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_int=yes- if ac_fn_c_compute_int "$LINENO" "(int)0.2 - (int)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-int val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_int="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(int) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_int=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(int) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_int=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(int) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_int=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_int=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_int=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_int=LDouble- else- fptools_cv_htype_sup_int=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((int)(-1)) < ((int)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_int=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(int) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_int=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_int="Word$HTYPE_SIZE"- else- fptools_cv_htype_int="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_int" = no- then-- fptools_cv_htype_int=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_int" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_int" >&5-$as_echo "$fptools_cv_htype_int" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_INT $fptools_cv_htype_int-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned int" >&5-$as_echo_n "checking Haskell type for unsigned int... " >&6; }- if ${fptools_cv_htype_unsigned_int+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_unsigned_int=yes- if ac_fn_c_compute_int "$LINENO" "(unsigned int)0.2 - (unsigned int)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-unsigned int val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_unsigned_int="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned int) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_int=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned int) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_int=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned int) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_int=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_unsigned_int=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_unsigned_int=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_unsigned_int=LDouble- else- fptools_cv_htype_sup_unsigned_int=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((unsigned int)(-1)) < ((unsigned int)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_int=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned int) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_int=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_unsigned_int="Word$HTYPE_SIZE"- else- fptools_cv_htype_unsigned_int="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_unsigned_int" = no- then-- fptools_cv_htype_unsigned_int=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_unsigned_int" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_unsigned_int" >&5-$as_echo "$fptools_cv_htype_unsigned_int" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_UNSIGNED_INT $fptools_cv_htype_unsigned_int-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for long" >&5-$as_echo_n "checking Haskell type for long... " >&6; }- if ${fptools_cv_htype_long+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_long=yes- if ac_fn_c_compute_int "$LINENO" "(long)0.2 - (long)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-long val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_long="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(long) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(long) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(long) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_long=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_long=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_long=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_long=LDouble- else- fptools_cv_htype_sup_long=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((long)(-1)) < ((long)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(long) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_long=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_long="Word$HTYPE_SIZE"- else- fptools_cv_htype_long="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_long" = no- then-- fptools_cv_htype_long=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_long" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_long" >&5-$as_echo "$fptools_cv_htype_long" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_LONG $fptools_cv_htype_long-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned long" >&5-$as_echo_n "checking Haskell type for unsigned long... " >&6; }- if ${fptools_cv_htype_unsigned_long+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_unsigned_long=yes- if ac_fn_c_compute_int "$LINENO" "(unsigned long)0.2 - (unsigned long)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-unsigned long val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_unsigned_long="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_long=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_unsigned_long=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_unsigned_long=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_unsigned_long=LDouble- else- fptools_cv_htype_sup_unsigned_long=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((unsigned long)(-1)) < ((unsigned long)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_long=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_unsigned_long="Word$HTYPE_SIZE"- else- fptools_cv_htype_unsigned_long="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_unsigned_long" = no- then-- fptools_cv_htype_unsigned_long=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_unsigned_long" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_unsigned_long" >&5-$as_echo "$fptools_cv_htype_unsigned_long" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_UNSIGNED_LONG $fptools_cv_htype_unsigned_long-_ACEOF-- fi---if test "$ac_cv_type_long_long" = yes; then--------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for long long" >&5-$as_echo_n "checking Haskell type for long long... " >&6; }- if ${fptools_cv_htype_long_long+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_long_long=yes- if ac_fn_c_compute_int "$LINENO" "(long long)0.2 - (long long)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-long long val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_long_long="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(long long) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_long_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(long long) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_long_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(long long) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_long_long=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_long_long=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_long_long=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_long_long=LDouble- else- fptools_cv_htype_sup_long_long=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((long long)(-1)) < ((long long)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_long_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(long long) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_long_long=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_long_long="Word$HTYPE_SIZE"- else- fptools_cv_htype_long_long="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_long_long" = no- then-- fptools_cv_htype_long_long=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_long_long" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_long_long" >&5-$as_echo "$fptools_cv_htype_long_long" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_LONG_LONG $fptools_cv_htype_long_long-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned long long" >&5-$as_echo_n "checking Haskell type for unsigned long long... " >&6; }- if ${fptools_cv_htype_unsigned_long_long+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_unsigned_long_long=yes- if ac_fn_c_compute_int "$LINENO" "(unsigned long long)0.2 - (unsigned long long)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-unsigned long long val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_unsigned_long_long="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long long) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_long_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long long) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_long_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long long) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_long_long=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_unsigned_long_long=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_unsigned_long_long=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_unsigned_long_long=LDouble- else- fptools_cv_htype_sup_unsigned_long_long=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((unsigned long long)(-1)) < ((unsigned long long)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_long_long=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long long) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_unsigned_long_long=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_unsigned_long_long="Word$HTYPE_SIZE"- else- fptools_cv_htype_unsigned_long_long="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_unsigned_long_long" = no- then-- fptools_cv_htype_unsigned_long_long=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_unsigned_long_long" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_unsigned_long_long" >&5-$as_echo "$fptools_cv_htype_unsigned_long_long" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_UNSIGNED_LONG_LONG $fptools_cv_htype_unsigned_long_long-_ACEOF-- fi---fi--------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for bool" >&5-$as_echo_n "checking Haskell type for bool... " >&6; }- if ${fptools_cv_htype_bool+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_bool=yes- if ac_fn_c_compute_int "$LINENO" "(bool)0.2 - (bool)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-bool val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_bool="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(bool) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_bool=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(bool) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_bool=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(bool) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_bool=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_bool=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_bool=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_bool=LDouble- else- fptools_cv_htype_sup_bool=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((bool)(-1)) < ((bool)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_bool=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(bool) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_bool=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_bool="Word$HTYPE_SIZE"- else- fptools_cv_htype_bool="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_bool" = no- then-- fptools_cv_htype_bool=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_bool" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_bool" >&5-$as_echo "$fptools_cv_htype_bool" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_BOOL $fptools_cv_htype_bool-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for float" >&5-$as_echo_n "checking Haskell type for float... " >&6; }- if ${fptools_cv_htype_float+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_float=yes- if ac_fn_c_compute_int "$LINENO" "(float)0.2 - (float)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-float val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_float="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(float) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_float=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(float) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_float=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(float) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_float=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_float=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_float=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_float=LDouble- else- fptools_cv_htype_sup_float=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((float)(-1)) < ((float)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_float=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(float) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_float=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_float="Word$HTYPE_SIZE"- else- fptools_cv_htype_float="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_float" = no- then-- fptools_cv_htype_float=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_float" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_float" >&5-$as_echo "$fptools_cv_htype_float" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_FLOAT $fptools_cv_htype_float-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for double" >&5-$as_echo_n "checking Haskell type for double... " >&6; }- if ${fptools_cv_htype_double+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_double=yes- if ac_fn_c_compute_int "$LINENO" "(double)0.2 - (double)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-double val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_double="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(double) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_double=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(double) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_double=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(double) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_double=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_double=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_double=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_double=LDouble- else- fptools_cv_htype_sup_double=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((double)(-1)) < ((double)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_double=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(double) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_double=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_double="Word$HTYPE_SIZE"- else- fptools_cv_htype_double="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_double" = no- then-- fptools_cv_htype_double=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_double" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_double" >&5-$as_echo "$fptools_cv_htype_double" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_DOUBLE $fptools_cv_htype_double-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ptrdiff_t" >&5-$as_echo_n "checking Haskell type for ptrdiff_t... " >&6; }- if ${fptools_cv_htype_ptrdiff_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_ptrdiff_t=yes- if ac_fn_c_compute_int "$LINENO" "(ptrdiff_t)0.2 - (ptrdiff_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-ptrdiff_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_ptrdiff_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(ptrdiff_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ptrdiff_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(ptrdiff_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ptrdiff_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(ptrdiff_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ptrdiff_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_ptrdiff_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_ptrdiff_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_ptrdiff_t=LDouble- else- fptools_cv_htype_sup_ptrdiff_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((ptrdiff_t)(-1)) < ((ptrdiff_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ptrdiff_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(ptrdiff_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ptrdiff_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_ptrdiff_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_ptrdiff_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_ptrdiff_t" = no- then-- fptools_cv_htype_ptrdiff_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_ptrdiff_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_ptrdiff_t" >&5-$as_echo "$fptools_cv_htype_ptrdiff_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_PTRDIFF_T $fptools_cv_htype_ptrdiff_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for size_t" >&5-$as_echo_n "checking Haskell type for size_t... " >&6; }- if ${fptools_cv_htype_size_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_size_t=yes- if ac_fn_c_compute_int "$LINENO" "(size_t)0.2 - (size_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-size_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_size_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(size_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_size_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(size_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_size_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(size_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_size_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_size_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_size_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_size_t=LDouble- else- fptools_cv_htype_sup_size_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((size_t)(-1)) < ((size_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_size_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(size_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_size_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_size_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_size_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_size_t" = no- then-- fptools_cv_htype_size_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_size_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_size_t" >&5-$as_echo "$fptools_cv_htype_size_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_SIZE_T $fptools_cv_htype_size_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for wchar_t" >&5-$as_echo_n "checking Haskell type for wchar_t... " >&6; }- if ${fptools_cv_htype_wchar_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_wchar_t=yes- if ac_fn_c_compute_int "$LINENO" "(wchar_t)0.2 - (wchar_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-wchar_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_wchar_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(wchar_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_wchar_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(wchar_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_wchar_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(wchar_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_wchar_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_wchar_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_wchar_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_wchar_t=LDouble- else- fptools_cv_htype_sup_wchar_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((wchar_t)(-1)) < ((wchar_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_wchar_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(wchar_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_wchar_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_wchar_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_wchar_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_wchar_t" = no- then-- fptools_cv_htype_wchar_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_wchar_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_wchar_t" >&5-$as_echo "$fptools_cv_htype_wchar_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_WCHAR_T $fptools_cv_htype_wchar_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for sig_atomic_t" >&5-$as_echo_n "checking Haskell type for sig_atomic_t... " >&6; }- if ${fptools_cv_htype_sig_atomic_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_sig_atomic_t=yes- if ac_fn_c_compute_int "$LINENO" "(sig_atomic_t)0.2 - (sig_atomic_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-sig_atomic_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_sig_atomic_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(sig_atomic_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_sig_atomic_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(sig_atomic_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_sig_atomic_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(sig_atomic_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_sig_atomic_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_sig_atomic_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_sig_atomic_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_sig_atomic_t=LDouble- else- fptools_cv_htype_sup_sig_atomic_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((sig_atomic_t)(-1)) < ((sig_atomic_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_sig_atomic_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(sig_atomic_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_sig_atomic_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_sig_atomic_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_sig_atomic_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_sig_atomic_t" = no- then-- fptools_cv_htype_sig_atomic_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_sig_atomic_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_sig_atomic_t" >&5-$as_echo "$fptools_cv_htype_sig_atomic_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_SIG_ATOMIC_T $fptools_cv_htype_sig_atomic_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for clock_t" >&5-$as_echo_n "checking Haskell type for clock_t... " >&6; }- if ${fptools_cv_htype_clock_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_clock_t=yes- if ac_fn_c_compute_int "$LINENO" "(clock_t)0.2 - (clock_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-clock_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_clock_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(clock_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_clock_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(clock_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_clock_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(clock_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_clock_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_clock_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_clock_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_clock_t=LDouble- else- fptools_cv_htype_sup_clock_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((clock_t)(-1)) < ((clock_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_clock_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(clock_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_clock_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_clock_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_clock_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_clock_t" = no- then-- fptools_cv_htype_clock_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_clock_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_clock_t" >&5-$as_echo "$fptools_cv_htype_clock_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_CLOCK_T $fptools_cv_htype_clock_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for time_t" >&5-$as_echo_n "checking Haskell type for time_t... " >&6; }- if ${fptools_cv_htype_time_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_time_t=yes- if ac_fn_c_compute_int "$LINENO" "(time_t)0.2 - (time_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-time_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_time_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(time_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_time_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(time_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_time_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(time_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_time_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_time_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_time_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_time_t=LDouble- else- fptools_cv_htype_sup_time_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((time_t)(-1)) < ((time_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_time_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(time_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_time_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_time_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_time_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_time_t" = no- then-- fptools_cv_htype_time_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_time_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_time_t" >&5-$as_echo "$fptools_cv_htype_time_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_TIME_T $fptools_cv_htype_time_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for useconds_t" >&5-$as_echo_n "checking Haskell type for useconds_t... " >&6; }- if ${fptools_cv_htype_useconds_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_useconds_t=yes- if ac_fn_c_compute_int "$LINENO" "(useconds_t)0.2 - (useconds_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-useconds_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_useconds_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(useconds_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_useconds_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(useconds_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_useconds_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(useconds_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_useconds_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_useconds_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_useconds_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_useconds_t=LDouble- else- fptools_cv_htype_sup_useconds_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((useconds_t)(-1)) < ((useconds_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_useconds_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(useconds_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_useconds_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_useconds_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_useconds_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_useconds_t" = no- then-- fptools_cv_htype_useconds_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_useconds_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_useconds_t" >&5-$as_echo "$fptools_cv_htype_useconds_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_USECONDS_T $fptools_cv_htype_useconds_t-_ACEOF-- fi---------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for suseconds_t" >&5-$as_echo_n "checking Haskell type for suseconds_t... " >&6; }- if ${fptools_cv_htype_suseconds_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_suseconds_t=yes- if ac_fn_c_compute_int "$LINENO" "(suseconds_t)0.2 - (suseconds_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-suseconds_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_suseconds_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(suseconds_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_suseconds_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(suseconds_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_suseconds_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(suseconds_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_suseconds_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_suseconds_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_suseconds_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_suseconds_t=LDouble- else- fptools_cv_htype_sup_suseconds_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((suseconds_t)(-1)) < ((suseconds_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_suseconds_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(suseconds_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_suseconds_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_suseconds_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_suseconds_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_suseconds_t" = no- then- if test "$WINDOWS" = "YES"- then- fptools_cv_htype_suseconds_t=Int32- fptools_cv_htype_sup_suseconds_t=yes- else- as_fn_error $? "type not found" "$LINENO" 5- fi- fi-- if test "$fptools_cv_htype_sup_suseconds_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_suseconds_t" >&5-$as_echo "$fptools_cv_htype_suseconds_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_SUSECONDS_T $fptools_cv_htype_suseconds_t-_ACEOF-- fi---------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for dev_t" >&5-$as_echo_n "checking Haskell type for dev_t... " >&6; }- if ${fptools_cv_htype_dev_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_dev_t=yes- if ac_fn_c_compute_int "$LINENO" "(dev_t)0.2 - (dev_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-dev_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_dev_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(dev_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_dev_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(dev_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_dev_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(dev_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_dev_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_dev_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_dev_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_dev_t=LDouble- else- fptools_cv_htype_sup_dev_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((dev_t)(-1)) < ((dev_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_dev_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(dev_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_dev_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_dev_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_dev_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_dev_t" = no- then-- fptools_cv_htype_dev_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_dev_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_dev_t" >&5-$as_echo "$fptools_cv_htype_dev_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_DEV_T $fptools_cv_htype_dev_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ino_t" >&5-$as_echo_n "checking Haskell type for ino_t... " >&6; }- if ${fptools_cv_htype_ino_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_ino_t=yes- if ac_fn_c_compute_int "$LINENO" "(ino_t)0.2 - (ino_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-ino_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_ino_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(ino_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ino_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(ino_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ino_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(ino_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ino_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_ino_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_ino_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_ino_t=LDouble- else- fptools_cv_htype_sup_ino_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((ino_t)(-1)) < ((ino_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ino_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(ino_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ino_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_ino_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_ino_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_ino_t" = no- then-- fptools_cv_htype_ino_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_ino_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_ino_t" >&5-$as_echo "$fptools_cv_htype_ino_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_INO_T $fptools_cv_htype_ino_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for mode_t" >&5-$as_echo_n "checking Haskell type for mode_t... " >&6; }- if ${fptools_cv_htype_mode_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_mode_t=yes- if ac_fn_c_compute_int "$LINENO" "(mode_t)0.2 - (mode_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-mode_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_mode_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(mode_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_mode_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(mode_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_mode_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(mode_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_mode_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_mode_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_mode_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_mode_t=LDouble- else- fptools_cv_htype_sup_mode_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((mode_t)(-1)) < ((mode_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_mode_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(mode_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_mode_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_mode_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_mode_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_mode_t" = no- then-- fptools_cv_htype_mode_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_mode_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_mode_t" >&5-$as_echo "$fptools_cv_htype_mode_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_MODE_T $fptools_cv_htype_mode_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for off_t" >&5-$as_echo_n "checking Haskell type for off_t... " >&6; }- if ${fptools_cv_htype_off_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_off_t=yes- if ac_fn_c_compute_int "$LINENO" "(off_t)0.2 - (off_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-off_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_off_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(off_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_off_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(off_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_off_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(off_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_off_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_off_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_off_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_off_t=LDouble- else- fptools_cv_htype_sup_off_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((off_t)(-1)) < ((off_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_off_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(off_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_off_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_off_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_off_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_off_t" = no- then-- fptools_cv_htype_off_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_off_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_off_t" >&5-$as_echo "$fptools_cv_htype_off_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_OFF_T $fptools_cv_htype_off_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for pid_t" >&5-$as_echo_n "checking Haskell type for pid_t... " >&6; }- if ${fptools_cv_htype_pid_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_pid_t=yes- if ac_fn_c_compute_int "$LINENO" "(pid_t)0.2 - (pid_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-pid_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_pid_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(pid_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_pid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(pid_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_pid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(pid_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_pid_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_pid_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_pid_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_pid_t=LDouble- else- fptools_cv_htype_sup_pid_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((pid_t)(-1)) < ((pid_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_pid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(pid_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_pid_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_pid_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_pid_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_pid_t" = no- then-- fptools_cv_htype_pid_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_pid_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_pid_t" >&5-$as_echo "$fptools_cv_htype_pid_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_PID_T $fptools_cv_htype_pid_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for gid_t" >&5-$as_echo_n "checking Haskell type for gid_t... " >&6; }- if ${fptools_cv_htype_gid_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_gid_t=yes- if ac_fn_c_compute_int "$LINENO" "(gid_t)0.2 - (gid_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-gid_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_gid_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(gid_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_gid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(gid_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_gid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(gid_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_gid_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_gid_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_gid_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_gid_t=LDouble- else- fptools_cv_htype_sup_gid_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((gid_t)(-1)) < ((gid_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_gid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(gid_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_gid_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_gid_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_gid_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_gid_t" = no- then-- fptools_cv_htype_gid_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_gid_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_gid_t" >&5-$as_echo "$fptools_cv_htype_gid_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_GID_T $fptools_cv_htype_gid_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uid_t" >&5-$as_echo_n "checking Haskell type for uid_t... " >&6; }- if ${fptools_cv_htype_uid_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_uid_t=yes- if ac_fn_c_compute_int "$LINENO" "(uid_t)0.2 - (uid_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-uid_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_uid_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(uid_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(uid_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(uid_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uid_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_uid_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_uid_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_uid_t=LDouble- else- fptools_cv_htype_sup_uid_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((uid_t)(-1)) < ((uid_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(uid_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uid_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_uid_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_uid_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_uid_t" = no- then-- fptools_cv_htype_uid_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_uid_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_uid_t" >&5-$as_echo "$fptools_cv_htype_uid_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_UID_T $fptools_cv_htype_uid_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for cc_t" >&5-$as_echo_n "checking Haskell type for cc_t... " >&6; }- if ${fptools_cv_htype_cc_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_cc_t=yes- if ac_fn_c_compute_int "$LINENO" "(cc_t)0.2 - (cc_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-cc_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_cc_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(cc_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_cc_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(cc_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_cc_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(cc_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_cc_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_cc_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_cc_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_cc_t=LDouble- else- fptools_cv_htype_sup_cc_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((cc_t)(-1)) < ((cc_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_cc_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(cc_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_cc_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_cc_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_cc_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_cc_t" = no- then-- fptools_cv_htype_cc_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_cc_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_cc_t" >&5-$as_echo "$fptools_cv_htype_cc_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_CC_T $fptools_cv_htype_cc_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for speed_t" >&5-$as_echo_n "checking Haskell type for speed_t... " >&6; }- if ${fptools_cv_htype_speed_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_speed_t=yes- if ac_fn_c_compute_int "$LINENO" "(speed_t)0.2 - (speed_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-speed_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_speed_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(speed_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_speed_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(speed_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_speed_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(speed_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_speed_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_speed_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_speed_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_speed_t=LDouble- else- fptools_cv_htype_sup_speed_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((speed_t)(-1)) < ((speed_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_speed_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(speed_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_speed_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_speed_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_speed_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_speed_t" = no- then-- fptools_cv_htype_speed_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_speed_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_speed_t" >&5-$as_echo "$fptools_cv_htype_speed_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_SPEED_T $fptools_cv_htype_speed_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for tcflag_t" >&5-$as_echo_n "checking Haskell type for tcflag_t... " >&6; }- if ${fptools_cv_htype_tcflag_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_tcflag_t=yes- if ac_fn_c_compute_int "$LINENO" "(tcflag_t)0.2 - (tcflag_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-tcflag_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_tcflag_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(tcflag_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_tcflag_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(tcflag_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_tcflag_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(tcflag_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_tcflag_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_tcflag_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_tcflag_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_tcflag_t=LDouble- else- fptools_cv_htype_sup_tcflag_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((tcflag_t)(-1)) < ((tcflag_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_tcflag_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(tcflag_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_tcflag_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_tcflag_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_tcflag_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_tcflag_t" = no- then-- fptools_cv_htype_tcflag_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_tcflag_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_tcflag_t" >&5-$as_echo "$fptools_cv_htype_tcflag_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_TCFLAG_T $fptools_cv_htype_tcflag_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for nlink_t" >&5-$as_echo_n "checking Haskell type for nlink_t... " >&6; }- if ${fptools_cv_htype_nlink_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_nlink_t=yes- if ac_fn_c_compute_int "$LINENO" "(nlink_t)0.2 - (nlink_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-nlink_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_nlink_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(nlink_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_nlink_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(nlink_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_nlink_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(nlink_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_nlink_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_nlink_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_nlink_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_nlink_t=LDouble- else- fptools_cv_htype_sup_nlink_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((nlink_t)(-1)) < ((nlink_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_nlink_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(nlink_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_nlink_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_nlink_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_nlink_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_nlink_t" = no- then-- fptools_cv_htype_nlink_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_nlink_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_nlink_t" >&5-$as_echo "$fptools_cv_htype_nlink_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_NLINK_T $fptools_cv_htype_nlink_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ssize_t" >&5-$as_echo_n "checking Haskell type for ssize_t... " >&6; }- if ${fptools_cv_htype_ssize_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_ssize_t=yes- if ac_fn_c_compute_int "$LINENO" "(ssize_t)0.2 - (ssize_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-ssize_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_ssize_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(ssize_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ssize_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(ssize_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ssize_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(ssize_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ssize_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_ssize_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_ssize_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_ssize_t=LDouble- else- fptools_cv_htype_sup_ssize_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((ssize_t)(-1)) < ((ssize_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ssize_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(ssize_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_ssize_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_ssize_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_ssize_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_ssize_t" = no- then-- fptools_cv_htype_ssize_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_ssize_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_ssize_t" >&5-$as_echo "$fptools_cv_htype_ssize_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_SSIZE_T $fptools_cv_htype_ssize_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for rlim_t" >&5-$as_echo_n "checking Haskell type for rlim_t... " >&6; }- if ${fptools_cv_htype_rlim_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_rlim_t=yes- if ac_fn_c_compute_int "$LINENO" "(rlim_t)0.2 - (rlim_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-rlim_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_rlim_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(rlim_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_rlim_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(rlim_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_rlim_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(rlim_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_rlim_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_rlim_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_rlim_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_rlim_t=LDouble- else- fptools_cv_htype_sup_rlim_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((rlim_t)(-1)) < ((rlim_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_rlim_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(rlim_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_rlim_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_rlim_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_rlim_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_rlim_t" = no- then-- fptools_cv_htype_rlim_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_rlim_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_rlim_t" >&5-$as_echo "$fptools_cv_htype_rlim_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_RLIM_T $fptools_cv_htype_rlim_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for blksize_t" >&5-$as_echo_n "checking Haskell type for blksize_t... " >&6; }- if ${fptools_cv_htype_blksize_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_blksize_t=yes- if ac_fn_c_compute_int "$LINENO" "(blksize_t)0.2 - (blksize_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-blksize_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_blksize_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(blksize_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_blksize_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(blksize_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_blksize_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(blksize_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_blksize_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_blksize_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_blksize_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_blksize_t=LDouble- else- fptools_cv_htype_sup_blksize_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((blksize_t)(-1)) < ((blksize_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_blksize_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(blksize_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_blksize_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_blksize_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_blksize_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_blksize_t" = no- then-- fptools_cv_htype_blksize_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_blksize_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_blksize_t" >&5-$as_echo "$fptools_cv_htype_blksize_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_BLKSIZE_T $fptools_cv_htype_blksize_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for blkcnt_t" >&5-$as_echo_n "checking Haskell type for blkcnt_t... " >&6; }- if ${fptools_cv_htype_blkcnt_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_blkcnt_t=yes- if ac_fn_c_compute_int "$LINENO" "(blkcnt_t)0.2 - (blkcnt_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-blkcnt_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_blkcnt_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(blkcnt_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_blkcnt_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(blkcnt_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_blkcnt_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(blkcnt_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_blkcnt_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_blkcnt_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_blkcnt_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_blkcnt_t=LDouble- else- fptools_cv_htype_sup_blkcnt_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((blkcnt_t)(-1)) < ((blkcnt_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_blkcnt_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(blkcnt_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_blkcnt_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_blkcnt_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_blkcnt_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_blkcnt_t" = no- then-- fptools_cv_htype_blkcnt_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_blkcnt_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_blkcnt_t" >&5-$as_echo "$fptools_cv_htype_blkcnt_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_BLKCNT_T $fptools_cv_htype_blkcnt_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for clockid_t" >&5-$as_echo_n "checking Haskell type for clockid_t... " >&6; }- if ${fptools_cv_htype_clockid_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_clockid_t=yes- if ac_fn_c_compute_int "$LINENO" "(clockid_t)0.2 - (clockid_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-clockid_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_clockid_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(clockid_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_clockid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(clockid_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_clockid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(clockid_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_clockid_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_clockid_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_clockid_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_clockid_t=LDouble- else- fptools_cv_htype_sup_clockid_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((clockid_t)(-1)) < ((clockid_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_clockid_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(clockid_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_clockid_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_clockid_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_clockid_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_clockid_t" = no- then-- fptools_cv_htype_clockid_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_clockid_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_clockid_t" >&5-$as_echo "$fptools_cv_htype_clockid_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_CLOCKID_T $fptools_cv_htype_clockid_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for fsblkcnt_t" >&5-$as_echo_n "checking Haskell type for fsblkcnt_t... " >&6; }- if ${fptools_cv_htype_fsblkcnt_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_fsblkcnt_t=yes- if ac_fn_c_compute_int "$LINENO" "(fsblkcnt_t)0.2 - (fsblkcnt_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-fsblkcnt_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_fsblkcnt_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(fsblkcnt_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_fsblkcnt_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(fsblkcnt_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_fsblkcnt_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(fsblkcnt_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_fsblkcnt_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_fsblkcnt_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_fsblkcnt_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_fsblkcnt_t=LDouble- else- fptools_cv_htype_sup_fsblkcnt_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((fsblkcnt_t)(-1)) < ((fsblkcnt_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_fsblkcnt_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(fsblkcnt_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_fsblkcnt_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_fsblkcnt_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_fsblkcnt_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_fsblkcnt_t" = no- then-- fptools_cv_htype_fsblkcnt_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_fsblkcnt_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_fsblkcnt_t" >&5-$as_echo "$fptools_cv_htype_fsblkcnt_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_FSBLKCNT_T $fptools_cv_htype_fsblkcnt_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for fsfilcnt_t" >&5-$as_echo_n "checking Haskell type for fsfilcnt_t... " >&6; }- if ${fptools_cv_htype_fsfilcnt_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_fsfilcnt_t=yes- if ac_fn_c_compute_int "$LINENO" "(fsfilcnt_t)0.2 - (fsfilcnt_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-fsfilcnt_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_fsfilcnt_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(fsfilcnt_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_fsfilcnt_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(fsfilcnt_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_fsfilcnt_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(fsfilcnt_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_fsfilcnt_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_fsfilcnt_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_fsfilcnt_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_fsfilcnt_t=LDouble- else- fptools_cv_htype_sup_fsfilcnt_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((fsfilcnt_t)(-1)) < ((fsfilcnt_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_fsfilcnt_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(fsfilcnt_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_fsfilcnt_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_fsfilcnt_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_fsfilcnt_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_fsfilcnt_t" = no- then-- fptools_cv_htype_fsfilcnt_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_fsfilcnt_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_fsfilcnt_t" >&5-$as_echo "$fptools_cv_htype_fsfilcnt_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_FSFILCNT_T $fptools_cv_htype_fsfilcnt_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for id_t" >&5-$as_echo_n "checking Haskell type for id_t... " >&6; }- if ${fptools_cv_htype_id_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_id_t=yes- if ac_fn_c_compute_int "$LINENO" "(id_t)0.2 - (id_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-id_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_id_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(id_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_id_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(id_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_id_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(id_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_id_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_id_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_id_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_id_t=LDouble- else- fptools_cv_htype_sup_id_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((id_t)(-1)) < ((id_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_id_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(id_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_id_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_id_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_id_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_id_t" = no- then-- fptools_cv_htype_id_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_id_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_id_t" >&5-$as_echo "$fptools_cv_htype_id_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_ID_T $fptools_cv_htype_id_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for key_t" >&5-$as_echo_n "checking Haskell type for key_t... " >&6; }- if ${fptools_cv_htype_key_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_key_t=yes- if ac_fn_c_compute_int "$LINENO" "(key_t)0.2 - (key_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-key_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_key_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(key_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_key_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(key_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_key_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(key_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_key_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_key_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_key_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_key_t=LDouble- else- fptools_cv_htype_sup_key_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((key_t)(-1)) < ((key_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_key_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(key_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_key_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_key_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_key_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_key_t" = no- then-- fptools_cv_htype_key_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_key_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_key_t" >&5-$as_echo "$fptools_cv_htype_key_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_KEY_T $fptools_cv_htype_key_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for timer_t" >&5-$as_echo_n "checking Haskell type for timer_t... " >&6; }- if ${fptools_cv_htype_timer_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_timer_t=yes- if ac_fn_c_compute_int "$LINENO" "(timer_t)0.2 - (timer_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-timer_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_timer_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(timer_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_timer_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(timer_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_timer_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(timer_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_timer_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_timer_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_timer_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_timer_t=LDouble- else- fptools_cv_htype_sup_timer_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((timer_t)(-1)) < ((timer_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_timer_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(timer_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_timer_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_timer_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_timer_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_timer_t" = no- then-- fptools_cv_htype_timer_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_timer_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_timer_t" >&5-$as_echo "$fptools_cv_htype_timer_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_TIMER_T $fptools_cv_htype_timer_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for socklen_t" >&5-$as_echo_n "checking Haskell type for socklen_t... " >&6; }- if ${fptools_cv_htype_socklen_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_socklen_t=yes- if ac_fn_c_compute_int "$LINENO" "(socklen_t)0.2 - (socklen_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-socklen_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_socklen_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(socklen_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_socklen_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(socklen_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_socklen_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(socklen_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_socklen_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_socklen_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_socklen_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_socklen_t=LDouble- else- fptools_cv_htype_sup_socklen_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((socklen_t)(-1)) < ((socklen_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_socklen_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(socklen_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_socklen_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_socklen_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_socklen_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_socklen_t" = no- then-- fptools_cv_htype_socklen_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_socklen_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_socklen_t" >&5-$as_echo "$fptools_cv_htype_socklen_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_SOCKLEN_T $fptools_cv_htype_socklen_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for nfds_t" >&5-$as_echo_n "checking Haskell type for nfds_t... " >&6; }- if ${fptools_cv_htype_nfds_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_nfds_t=yes- if ac_fn_c_compute_int "$LINENO" "(nfds_t)0.2 - (nfds_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-nfds_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_nfds_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(nfds_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_nfds_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(nfds_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_nfds_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(nfds_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_nfds_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_nfds_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_nfds_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_nfds_t=LDouble- else- fptools_cv_htype_sup_nfds_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((nfds_t)(-1)) < ((nfds_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_nfds_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(nfds_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_nfds_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_nfds_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_nfds_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_nfds_t" = no- then-- fptools_cv_htype_nfds_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_nfds_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_nfds_t" >&5-$as_echo "$fptools_cv_htype_nfds_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_NFDS_T $fptools_cv_htype_nfds_t-_ACEOF-- fi------------ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for intptr_t" >&5-$as_echo_n "checking Haskell type for intptr_t... " >&6; }- if ${fptools_cv_htype_intptr_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_intptr_t=yes- if ac_fn_c_compute_int "$LINENO" "(intptr_t)0.2 - (intptr_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-intptr_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_intptr_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(intptr_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_intptr_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(intptr_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_intptr_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(intptr_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_intptr_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_intptr_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_intptr_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_intptr_t=LDouble- else- fptools_cv_htype_sup_intptr_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((intptr_t)(-1)) < ((intptr_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_intptr_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(intptr_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_intptr_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_intptr_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_intptr_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_intptr_t" = no- then-- fptools_cv_htype_intptr_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_intptr_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_intptr_t" >&5-$as_echo "$fptools_cv_htype_intptr_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_INTPTR_T $fptools_cv_htype_intptr_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uintptr_t" >&5-$as_echo_n "checking Haskell type for uintptr_t... " >&6; }- if ${fptools_cv_htype_uintptr_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_uintptr_t=yes- if ac_fn_c_compute_int "$LINENO" "(uintptr_t)0.2 - (uintptr_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-uintptr_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_uintptr_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(uintptr_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uintptr_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(uintptr_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uintptr_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(uintptr_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uintptr_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_uintptr_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_uintptr_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_uintptr_t=LDouble- else- fptools_cv_htype_sup_uintptr_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((uintptr_t)(-1)) < ((uintptr_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uintptr_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(uintptr_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uintptr_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_uintptr_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_uintptr_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_uintptr_t" = no- then-- fptools_cv_htype_uintptr_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_uintptr_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_uintptr_t" >&5-$as_echo "$fptools_cv_htype_uintptr_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_UINTPTR_T $fptools_cv_htype_uintptr_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for intmax_t" >&5-$as_echo_n "checking Haskell type for intmax_t... " >&6; }- if ${fptools_cv_htype_intmax_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_intmax_t=yes- if ac_fn_c_compute_int "$LINENO" "(intmax_t)0.2 - (intmax_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-intmax_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_intmax_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(intmax_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_intmax_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(intmax_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_intmax_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(intmax_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_intmax_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_intmax_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_intmax_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_intmax_t=LDouble- else- fptools_cv_htype_sup_intmax_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((intmax_t)(-1)) < ((intmax_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_intmax_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(intmax_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_intmax_t=no-fi-- if test "$HTYPE_IS_SIGNED" -eq 0- then- fptools_cv_htype_intmax_t="Word$HTYPE_SIZE"- else- fptools_cv_htype_intmax_t="Int$HTYPE_SIZE"- fi- fi--fi-- if test "$fptools_cv_htype_sup_intmax_t" = no- then-- fptools_cv_htype_intmax_t=NotReallyAType- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5-$as_echo "not supported" >&6; }-- fi-- if test "$fptools_cv_htype_sup_intmax_t" = yes; then- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_intmax_t" >&5-$as_echo "$fptools_cv_htype_intmax_t" >&6; }--cat >>confdefs.h <<_ACEOF-#define HTYPE_INTMAX_T $fptools_cv_htype_intmax_t-_ACEOF-- fi----------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uintmax_t" >&5-$as_echo_n "checking Haskell type for uintmax_t... " >&6; }- if ${fptools_cv_htype_uintmax_t+:} false; then :- $as_echo_n "(cached) " >&6-else-- fptools_cv_htype_sup_uintmax_t=yes- if ac_fn_c_compute_int "$LINENO" "(uintmax_t)0.2 - (uintmax_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- HTYPE_IS_INTEGRAL=0-fi--- if test "$HTYPE_IS_INTEGRAL" -eq 0- then- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>--int-main ()-{-uintmax_t val; memset(val, 0, 0);-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"; then :- HTYPE_IS_POINTER=yes-else- HTYPE_IS_POINTER=no-fi-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-- if test "$HTYPE_IS_POINTER" = yes- then- fptools_cv_htype_uintmax_t="CUIntPtr"- else- if ac_fn_c_compute_int "$LINENO" "sizeof(uintmax_t) == sizeof(float)" "HTYPE_IS_FLOAT" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uintmax_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(uintmax_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uintmax_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(uintmax_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uintmax_t=no-fi-- if test "$HTYPE_IS_FLOAT" -eq 1- then- fptools_cv_htype_uintmax_t=Float- elif test "$HTYPE_IS_DOUBLE" -eq 1- then- fptools_cv_htype_uintmax_t=Double- elif test "$HTYPE_IS_LDOUBLE" -eq 1- then- fptools_cv_htype_uintmax_t=LDouble- else- fptools_cv_htype_sup_uintmax_t=no- fi- fi- else- if ac_fn_c_compute_int "$LINENO" "((uintmax_t)(-1)) < ((uintmax_t)0)" "HTYPE_IS_SIGNED" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif--#if HAVE_TERMIOS_H-# include <termios.h>-#endif--#if HAVE_STRING_H-# include <string.h>-#endif--#if HAVE_CTYPE_H-# include <ctype.h>-#endif--#if HAVE_INTTYPES_H-# include <inttypes.h>-#else-# if HAVE_STDINT_H-# include <stdint.h>-# endif-#endif--#if HAVE_SYS_RESOURCE_H-# include <sys/resource.h>-#endif--#if HAVE_POLL_H-# include <poll.h>-#endif--#if HAVE_SYS_SOCKET_H-# include <sys/socket.h>-#endif--#include <stdlib.h>-"; then :--else- fptools_cv_htype_sup_uintmax_t=no-fi-- if ac_fn_c_compute_int "$LINENO" "sizeof(uintmax_t) * 8" "HTYPE_SIZE" "-#include <stdbool.h>-#include <stdio.h>-#include <stddef.h>--#if HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif--#if HAVE_UNISTD_H-# include <unistd.h>-#endif--#if HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif--#if HAVE_FCNTL_H-# include <fcntl.h>-#endif--#if HAVE_SIGNAL_H-# include <signal.h>-#endif--#if HAVE_TIME_H-# include <time.h>-#endif+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES+# ---------------------------------------------+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR+# accordingly.+ac_fn_c_check_decl ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ as_decl_name=`echo $2|sed 's/ *(.*//'`+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }+if eval \${$3+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+#ifndef $as_decl_name+#ifdef __cplusplus+ (void) $as_decl_use;+#else+ (void) $as_decl_name;+#endif+#endif++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ eval "$3=yes"+else+ eval "$3=no"+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+eval ac_res=\$$3+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno++} # ac_fn_c_check_decl++# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES+# --------------------------------------------+# Tries to find the compile-time value of EXPR in a program that includes+# INCLUDES, setting VAR accordingly. Returns whether the value could be+# computed+ac_fn_c_compute_int ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ if test "$cross_compiling" = yes; then+ # Depending upon the size, compute the lo and hi bounds.+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+static int test_array [1 - 2 * !(($2) >= 0)];+test_array [0] = 0;+return test_array [0];++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_lo=0 ac_mid=0+ while :; do+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+static int test_array [1 - 2 * !(($2) <= $ac_mid)];+test_array [0] = 0;+return test_array [0];++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_hi=$ac_mid; break+else+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val+ if test $ac_lo -le $ac_mid; then+ ac_lo= ac_hi=+ break+ fi+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ done+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+static int test_array [1 - 2 * !(($2) < 0)];+test_array [0] = 0;+return test_array [0];++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_hi=-1 ac_mid=-1+ while :; do+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+static int test_array [1 - 2 * !(($2) >= $ac_mid)];+test_array [0] = 0;+return test_array [0];++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_lo=$ac_mid; break+else+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val+ if test $ac_mid -le $ac_hi; then+ ac_lo= ac_hi=+ break+ fi+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ done+else+ ac_lo= ac_hi=+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+# Binary search between lo and hi bounds.+while test "x$ac_lo" != "x$ac_hi"; do+ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+static int test_array [1 - 2 * !(($2) <= $ac_mid)];+test_array [0] = 0;+return test_array [0];++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_hi=$ac_mid+else+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+done+case $ac_lo in #((+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;+'') ac_retval=1 ;;+esac+ else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+static long int longval () { return $2; }+static unsigned long int ulongval () { return $2; }+#include <stdio.h>+#include <stdlib.h>+int+main ()+{++ FILE *f = fopen ("conftest.val", "w");+ if (! f)+ return 1;+ if (($2) < 0)+ {+ long int i = longval ();+ if (i != ($2))+ return 1;+ fprintf (f, "%ld", i);+ }+ else+ {+ unsigned long int i = ulongval ();+ if (i != ($2))+ return 1;+ fprintf (f, "%lu", i);+ }+ /* Do not output a trailing newline, as this causes \r\n confusion+ on some platforms. */+ return ferror (f) || fclose (f) != 0;++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_run "$LINENO"; then :+ echo >>conftest.val; read $3 <conftest.val; ac_retval=0+else+ ac_retval=1+fi+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \+ conftest.$ac_objext conftest.beam conftest.$ac_ext+rm -f conftest.val++ fi+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno+ as_fn_set_status $ac_retval++} # ac_fn_c_compute_int+cat >config.log <<_ACEOF+This file contains any messages produced by compilers while+running configure, to aid debugging if configure makes a mistake.++It was created by Haskell base package $as_me 1.0, which was+generated by GNU Autoconf 2.69. Invocation command line was++ $ $0 $@++_ACEOF+exec 5>>config.log+{+cat <<_ASUNAME+## --------- ##+## Platform. ##+## --------- ##++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`+uname -m = `(uname -m) 2>/dev/null || echo unknown`+uname -r = `(uname -r) 2>/dev/null || echo unknown`+uname -s = `(uname -s) 2>/dev/null || echo unknown`+uname -v = `(uname -v) 2>/dev/null || echo unknown`++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`++/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`++_ASUNAME++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ $as_echo "PATH: $as_dir"+ done+IFS=$as_save_IFS++} >&5++cat >&5 <<_ACEOF+++## ----------- ##+## Core tests. ##+## ----------- ##++_ACEOF+++# Keep a trace of the command line.+# Strip out --no-create and --no-recursion so they do not pile up.+# Strip out --silent because we don't want to record it for future runs.+# Also quote any args containing shell meta-characters.+# Make two passes to allow for proper duplicate-argument suppression.+ac_configure_args=+ac_configure_args0=+ac_configure_args1=+ac_must_keep_next=false+for ac_pass in 1 2+do+ for ac_arg+ do+ case $ac_arg in+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \+ | -silent | --silent | --silen | --sile | --sil)+ continue ;;+ *\'*)+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;+ esac+ case $ac_pass in+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;+ 2)+ as_fn_append ac_configure_args1 " '$ac_arg'"+ if test $ac_must_keep_next = true; then+ ac_must_keep_next=false # Got value, back to normal.+ else+ case $ac_arg in+ *=* | --config-cache | -C | -disable-* | --disable-* \+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \+ | -with-* | --with-* | -without-* | --without-* | --x)+ case "$ac_configure_args0 " in+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;+ esac+ ;;+ -* ) ac_must_keep_next=true ;;+ esac+ fi+ as_fn_append ac_configure_args " '$ac_arg'"+ ;;+ esac+ done+done+{ ac_configure_args0=; unset ac_configure_args0;}+{ ac_configure_args1=; unset ac_configure_args1;}++# When interrupted or exit'd, cleanup temporary files, and complete+# config.log. We remove comments because anyway the quotes in there+# would cause problems or look ugly.+# WARNING: Use '\'' to represent an apostrophe within the trap.+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.+trap 'exit_status=$?+ # Save into config.log some information that might help in debugging.+ {+ echo++ $as_echo "## ---------------- ##+## Cache variables. ##+## ---------------- ##"+ echo+ # The following way of writing the cache mishandles newlines in values,+(+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do+ eval ac_val=\$$ac_var+ case $ac_val in #(+ *${as_nl}*)+ case $ac_var in #(+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;+ esac+ case $ac_var in #(+ _ | IFS | as_nl) ;; #(+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(+ *) { eval $ac_var=; unset $ac_var;} ;;+ esac ;;+ esac+ done+ (set) 2>&1 |+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(+ *${as_nl}ac_space=\ *)+ sed -n \+ "s/'\''/'\''\\\\'\'''\''/g;+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"+ ;; #(+ *)+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"+ ;;+ esac |+ sort+)+ echo++ $as_echo "## ----------------- ##+## Output variables. ##+## ----------------- ##"+ echo+ for ac_var in $ac_subst_vars+ do+ eval ac_val=\$$ac_var+ case $ac_val in+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;+ esac+ $as_echo "$ac_var='\''$ac_val'\''"+ done | sort+ echo++ if test -n "$ac_subst_files"; then+ $as_echo "## ------------------- ##+## File substitutions. ##+## ------------------- ##"+ echo+ for ac_var in $ac_subst_files+ do+ eval ac_val=\$$ac_var+ case $ac_val in+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;+ esac+ $as_echo "$ac_var='\''$ac_val'\''"+ done | sort+ echo+ fi++ if test -s confdefs.h; then+ $as_echo "## ----------- ##+## confdefs.h. ##+## ----------- ##"+ echo+ cat confdefs.h+ echo+ fi+ test "$ac_signal" != 0 &&+ $as_echo "$as_me: caught signal $ac_signal"+ $as_echo "$as_me: exit $exit_status"+ } >&5+ rm -f core *.core core.conftest.* &&+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&+ exit $exit_status+' 0+for ac_signal in 1 2 13 15; do+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal+done+ac_signal=0++# confdefs.h avoids OS command line length limits that DEFS can exceed.+rm -f -r conftest* confdefs.h++$as_echo "/* confdefs.h */" > confdefs.h++# Predefined preprocessor variables.++cat >>confdefs.h <<_ACEOF+#define PACKAGE_NAME "$PACKAGE_NAME"+_ACEOF++cat >>confdefs.h <<_ACEOF+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"+_ACEOF++cat >>confdefs.h <<_ACEOF+#define PACKAGE_VERSION "$PACKAGE_VERSION"+_ACEOF++cat >>confdefs.h <<_ACEOF+#define PACKAGE_STRING "$PACKAGE_STRING"+_ACEOF++cat >>confdefs.h <<_ACEOF+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"+_ACEOF++cat >>confdefs.h <<_ACEOF+#define PACKAGE_URL "$PACKAGE_URL"+_ACEOF+++# Let the site file select an alternate cache file if it wants to.+# Prefer an explicitly selected file to automatically selected ones.+ac_site_file1=NONE+ac_site_file2=NONE+if test -n "$CONFIG_SITE"; then+ # We do not want a PATH search for config.site.+ case $CONFIG_SITE in #((+ -*) ac_site_file1=./$CONFIG_SITE;;+ */*) ac_site_file1=$CONFIG_SITE;;+ *) ac_site_file1=./$CONFIG_SITE;;+ esac+elif test "x$prefix" != xNONE; then+ ac_site_file1=$prefix/share/config.site+ ac_site_file2=$prefix/etc/config.site+else+ ac_site_file1=$ac_default_prefix/share/config.site+ ac_site_file2=$ac_default_prefix/etc/config.site+fi+for ac_site_file in "$ac_site_file1" "$ac_site_file2"+do+ test "x$ac_site_file" = xNONE && continue+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5+$as_echo "$as_me: loading site script $ac_site_file" >&6;}+ sed 's/^/| /' "$ac_site_file" >&5+ . "$ac_site_file" \+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "failed to load site script $ac_site_file+See \`config.log' for more details" "$LINENO" 5; }+ fi+done++if test -r "$cache_file"; then+ # Some versions of bash will fail to source /dev/null (special files+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5+$as_echo "$as_me: loading cache $cache_file" >&6;}+ case $cache_file in+ [\\/]* | ?:[\\/]* ) . "$cache_file";;+ *) . "./$cache_file";;+ esac+ fi+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5+$as_echo "$as_me: creating cache $cache_file" >&6;}+ >$cache_file+fi++# Check that the precious variables saved in the cache have kept the same+# value.+ac_cache_corrupted=false+for ac_var in $ac_precious_vars; do+ eval ac_old_set=\$ac_cv_env_${ac_var}_set+ eval ac_new_set=\$ac_env_${ac_var}_set+ eval ac_old_val=\$ac_cv_env_${ac_var}_value+ eval ac_new_val=\$ac_env_${ac_var}_value+ case $ac_old_set,$ac_new_set in+ set,)+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}+ ac_cache_corrupted=: ;;+ ,set)+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}+ ac_cache_corrupted=: ;;+ ,);;+ *)+ if test "x$ac_old_val" != "x$ac_new_val"; then+ # differences in whitespace do not lead to failure.+ ac_old_val_w=`echo x $ac_old_val`+ ac_new_val_w=`echo x $ac_new_val`+ if test "$ac_old_val_w" != "$ac_new_val_w"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}+ ac_cache_corrupted=:+ else+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}+ eval $ac_var=\$ac_old_val+ fi+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}+ fi;;+ esac+ # Pass precious variables to config.status.+ if test "$ac_new_set" = set; then+ case $ac_new_val in+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;+ *) ac_arg=$ac_var=$ac_new_val ;;+ esac+ case " $ac_configure_args " in+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;+ esac+ fi+done+if $ac_cache_corrupted; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5+fi+## -------------------- ##+## Main body of script. ##+## -------------------- ##++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++++# Safety check: Ensure that we are in the correct source directory.+++ac_config_headers="$ac_config_headers include/HsBaseConfig.h include/EventConfig.h"+++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.+set dummy ${ac_tool_prefix}gcc; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_CC="${ac_tool_prefix}gcc"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_CC"; then+ ac_ct_CC=$CC+ # Extract the first word of "gcc", so it can be a program name with args.+set dummy gcc; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_CC"; then+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_CC="gcc"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_CC=$ac_cv_prog_ac_ct_CC+if test -n "$ac_ct_CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5+$as_echo "$ac_ct_CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_CC" = x; then+ CC=""+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ CC=$ac_ct_CC+ fi+else+ CC="$ac_cv_prog_CC"+fi++if test -z "$CC"; then+ if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.+set dummy ${ac_tool_prefix}cc; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_CC="${ac_tool_prefix}cc"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ fi+fi+if test -z "$CC"; then+ # Extract the first word of "cc", so it can be a program name with args.+set dummy cc; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+ ac_prog_rejected=no+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then+ ac_prog_rejected=yes+ continue+ fi+ ac_cv_prog_CC="cc"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++if test $ac_prog_rejected = yes; then+ # We found a bogon in the path, so make sure we never use it.+ set dummy $ac_cv_prog_CC+ shift+ if test $# != 0; then+ # We chose a different compiler from the bogus one.+ # However, it has the same basename, so the bogon will be chosen+ # first if we set CC to just the basename; use the full file name.+ shift+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"+ fi+fi+fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$CC"; then+ if test -n "$ac_tool_prefix"; then+ for ac_prog in cl.exe+ do+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.+set dummy $ac_tool_prefix$ac_prog; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$CC" && break+ done+fi+if test -z "$CC"; then+ ac_ct_CC=$CC+ for ac_prog in cl.exe+do+ # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_CC"; then+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_CC="$ac_prog"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_CC=$ac_cv_prog_ac_ct_CC+if test -n "$ac_ct_CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5+$as_echo "$ac_ct_CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$ac_ct_CC" && break+done++ if test "x$ac_ct_CC" = x; then+ CC=""+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ CC=$ac_ct_CC+ fi+fi++fi+++test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "no acceptable C compiler found in \$PATH+See \`config.log' for more details" "$LINENO" 5; }++# Provide some information about the compiler.+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5+set X $ac_compile+ac_compiler=$2+for ac_option in --version -v -V -qversion; do+ { { ac_try="$ac_compiler $ac_option >&5"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err+ ac_status=$?+ if test -s conftest.err; then+ sed '10a\+... rest of stderr output deleted ...+ 10q' conftest.err >conftest.er1+ cat conftest.er1 >&5+ fi+ rm -f conftest.er1 conftest.err+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }+done++cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+ac_clean_files_save=$ac_clean_files+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"+# Try to create an executable without -o first, disregard a.out.+# It will help us diagnose broken compilers, and finding out an intuition+# of exeext.+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5+$as_echo_n "checking whether the C compiler works... " >&6; }+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`++# The possible output files:+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"++ac_rmfiles=+for ac_file in $ac_files+do+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;+ esac+done+rm -f $ac_rmfiles++if { { ac_try="$ac_link_default"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_link_default") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then :+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'+# in a Makefile. We should not override ac_cv_exeext if it was cached,+# so that the user can short-circuit this test for compilers unknown to+# Autoconf.+for ac_file in $ac_files ''+do+ test -f "$ac_file" || continue+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )+ ;;+ [ab].out )+ # We found the default executable, but exeext='' is most+ # certainly right.+ break;;+ *.* )+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;+ then :; else+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`+ fi+ # We set ac_cv_exeext here because the later test for it is not+ # safe: cross compilers may not add the suffix if given an `-o'+ # argument, so we may need to know it at that point already.+ # Even if this section looks crufty: it has the advantage of+ # actually working.+ break;;+ * )+ break;;+ esac+done+test "$ac_cv_exeext" = no && ac_cv_exeext=++else+ ac_file=''+fi+if test -z "$ac_file"; then :+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+$as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error 77 "C compiler cannot create executables+See \`config.log' for more details" "$LINENO" 5; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5+$as_echo "yes" >&6; }+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5+$as_echo_n "checking for C compiler default output file name... " >&6; }+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5+$as_echo "$ac_file" >&6; }+ac_exeext=$ac_cv_exeext++rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out+ac_clean_files=$ac_clean_files_save+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5+$as_echo_n "checking for suffix of executables... " >&6; }+if { { ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_link") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then :+ # If both `conftest.exe' and `conftest' are `present' (well, observable)+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will+# work properly (i.e., refer to `conftest.exe'), while it won't with+# `rm'.+for ac_file in conftest.exe conftest conftest.*; do+ test -f "$ac_file" || continue+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`+ break;;+ * ) break;;+ esac+done+else+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "cannot compute suffix of executables: cannot compile and link+See \`config.log' for more details" "$LINENO" 5; }+fi+rm -f conftest conftest$ac_cv_exeext+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5+$as_echo "$ac_cv_exeext" >&6; }++rm -f conftest.$ac_ext+EXEEXT=$ac_cv_exeext+ac_exeext=$EXEEXT+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdio.h>+int+main ()+{+FILE *f = fopen ("conftest.out", "w");+ return ferror (f) || fclose (f) != 0;++ ;+ return 0;+}+_ACEOF+ac_clean_files="$ac_clean_files conftest.out"+# Check that the compiler produces executables we can run. If not, either+# the compiler is broken, or we cross compile.+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5+$as_echo_n "checking whether we are cross compiling... " >&6; }+if test "$cross_compiling" != yes; then+ { { ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_link") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }+ if { ac_try='./conftest$ac_cv_exeext'+ { { case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_try") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; }; then+ cross_compiling=no+ else+ if test "$cross_compiling" = maybe; then+ cross_compiling=yes+ else+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "cannot run C compiled programs.+If you meant to cross compile, use \`--host'.+See \`config.log' for more details" "$LINENO" 5; }+ fi+ fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5+$as_echo "$cross_compiling" >&6; }++rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out+ac_clean_files=$ac_clean_files_save+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5+$as_echo_n "checking for suffix of object files... " >&6; }+if ${ac_cv_objext+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+rm -f conftest.o conftest.obj+if { { ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_compile") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then :+ for ac_file in conftest.o conftest.obj conftest.*; do+ test -f "$ac_file" || continue;+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`+ break;;+ esac+done+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "cannot compute suffix of object files: cannot compile+See \`config.log' for more details" "$LINENO" 5; }+fi+rm -f conftest.$ac_cv_objext conftest.$ac_ext+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5+$as_echo "$ac_cv_objext" >&6; }+OBJEXT=$ac_cv_objext+ac_objext=$OBJEXT+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }+if ${ac_cv_c_compiler_gnu+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{+#ifndef __GNUC__+ choke me+#endif++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_compiler_gnu=yes+else+ ac_compiler_gnu=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ac_cv_c_compiler_gnu=$ac_compiler_gnu++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5+$as_echo "$ac_cv_c_compiler_gnu" >&6; }+if test $ac_compiler_gnu = yes; then+ GCC=yes+else+ GCC=+fi+ac_test_CFLAGS=${CFLAGS+set}+ac_save_CFLAGS=$CFLAGS+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5+$as_echo_n "checking whether $CC accepts -g... " >&6; }+if ${ac_cv_prog_cc_g+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_save_c_werror_flag=$ac_c_werror_flag+ ac_c_werror_flag=yes+ ac_cv_prog_cc_g=no+ CFLAGS="-g"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_prog_cc_g=yes+else+ CFLAGS=""+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :++else+ ac_c_werror_flag=$ac_save_c_werror_flag+ CFLAGS="-g"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_prog_cc_g=yes+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ ac_c_werror_flag=$ac_save_c_werror_flag+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5+$as_echo "$ac_cv_prog_cc_g" >&6; }+if test "$ac_test_CFLAGS" = set; then+ CFLAGS=$ac_save_CFLAGS+elif test $ac_cv_prog_cc_g = yes; then+ if test "$GCC" = yes; then+ CFLAGS="-g -O2"+ else+ CFLAGS="-g"+ fi+else+ if test "$GCC" = yes; then+ CFLAGS="-O2"+ else+ CFLAGS=+ fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }+if ${ac_cv_prog_cc_c89+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_cv_prog_cc_c89=no+ac_save_CC=$CC+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdarg.h>+#include <stdio.h>+struct stat;+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */+struct buf { int x; };+FILE * (*rcsopen) (struct buf *, struct stat *, int);+static char *e (p, i)+ char **p;+ int i;+{+ return p[i];+}+static char *f (char * (*g) (char **, int), char **p, ...)+{+ char *s;+ va_list v;+ va_start (v,p);+ s = g (p, va_arg (v,int));+ va_end (v);+ return s;+}++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has+ function prototypes and stuff, but not '\xHH' hex character constants.+ These don't provoke an error unfortunately, instead are silently treated+ as 'x'. The following induces an error, until -std is added to get+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an+ array size at least. It's necessary to write '\x00'==0 to get something+ that's true only with -std. */+int osf4_cc_array ['\x00' == 0 ? 1 : -1];++/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters+ inside strings and character constants. */+#define FOO(x) 'x'+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];++int test (int i, double x);+struct s1 {int (*f) (int a);};+struct s2 {int (*f) (double a);};+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);+int argc;+char **argv;+int+main ()+{+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];+ ;+ return 0;+}+_ACEOF+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"+do+ CC="$ac_save_CC $ac_arg"+ if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_prog_cc_c89=$ac_arg+fi+rm -f core conftest.err conftest.$ac_objext+ test "x$ac_cv_prog_cc_c89" != "xno" && break+done+rm -f conftest.$ac_ext+CC=$ac_save_CC++fi+# AC_CACHE_VAL+case "x$ac_cv_prog_cc_c89" in+ x)+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5+$as_echo "none needed" >&6; } ;;+ xno)+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5+$as_echo "unsupported" >&6; } ;;+ *)+ CC="$CC $ac_cv_prog_cc_c89"+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;+esac+if test "x$ac_cv_prog_cc_c89" != xno; then :++fi++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5+$as_echo_n "checking how to run the C preprocessor... " >&6; }+# On Suns, sometimes $CPP names a directory.+if test -n "$CPP" && test -d "$CPP"; then+ CPP=+fi+if test -z "$CPP"; then+ if ${ac_cv_prog_CPP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ # Double quotes because CPP needs to be expanded+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"+ do+ ac_preproc_ok=false+for ac_c_preproc_warn_flag in '' yes+do+ # Use a header file that comes with gcc, so configuring glibc+ # with a fresh cross-compiler works.+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+ # <limits.h> exists even on freestanding compilers.+ # On the NeXT, cc -E runs the code through the compiler's parser,+ # not just through cpp. "Syntax error" is here to catch this case.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif+ Syntax error+_ACEOF+if ac_fn_c_try_cpp "$LINENO"; then :++else+ # Broken: fails on valid input.+continue+fi+rm -f conftest.err conftest.i conftest.$ac_ext++ # OK, works on sane cases. Now check whether nonexistent headers+ # can be detected and how.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <ac_nonexistent.h>+_ACEOF+if ac_fn_c_try_cpp "$LINENO"; then :+ # Broken: success on invalid input.+continue+else+ # Passes both tests.+ac_preproc_ok=:+break+fi+rm -f conftest.err conftest.i conftest.$ac_ext++done+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.+rm -f conftest.i conftest.err conftest.$ac_ext+if $ac_preproc_ok; then :+ break+fi++ done+ ac_cv_prog_CPP=$CPP++fi+ CPP=$ac_cv_prog_CPP+else+ ac_cv_prog_CPP=$CPP+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5+$as_echo "$CPP" >&6; }+ac_preproc_ok=false+for ac_c_preproc_warn_flag in '' yes+do+ # Use a header file that comes with gcc, so configuring glibc+ # with a fresh cross-compiler works.+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+ # <limits.h> exists even on freestanding compilers.+ # On the NeXT, cc -E runs the code through the compiler's parser,+ # not just through cpp. "Syntax error" is here to catch this case.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif+ Syntax error+_ACEOF+if ac_fn_c_try_cpp "$LINENO"; then :++else+ # Broken: fails on valid input.+continue+fi+rm -f conftest.err conftest.i conftest.$ac_ext++ # OK, works on sane cases. Now check whether nonexistent headers+ # can be detected and how.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <ac_nonexistent.h>+_ACEOF+if ac_fn_c_try_cpp "$LINENO"; then :+ # Broken: success on invalid input.+continue+else+ # Passes both tests.+ac_preproc_ok=:+break+fi+rm -f conftest.err conftest.i conftest.$ac_ext++done+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.+rm -f conftest.i conftest.err conftest.$ac_ext+if $ac_preproc_ok; then :++else+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check+See \`config.log' for more details" "$LINENO" 5; }+fi++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }+if ${ac_cv_path_GREP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -z "$GREP"; then+ ac_path_GREP_found=false+ # Loop through the user's path and test for each of PROGNAME-LIST+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_prog in grep ggrep; do+ for ac_exec_ext in '' $ac_executable_extensions; do+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"+ as_fn_executable_p "$ac_path_GREP" || continue+# Check for GNU ac_path_GREP and select it if it is found.+ # Check for GNU $ac_path_GREP+case `"$ac_path_GREP" --version 2>&1` in+*GNU*)+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;+*)+ ac_count=0+ $as_echo_n 0123456789 >"conftest.in"+ while :+ do+ cat "conftest.in" "conftest.in" >"conftest.tmp"+ mv "conftest.tmp" "conftest.in"+ cp "conftest.in" "conftest.nl"+ $as_echo 'GREP' >> "conftest.nl"+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break+ as_fn_arith $ac_count + 1 && ac_count=$as_val+ if test $ac_count -gt ${ac_path_GREP_max-0}; then+ # Best one so far, save it but keep looking for a better one+ ac_cv_path_GREP="$ac_path_GREP"+ ac_path_GREP_max=$ac_count+ fi+ # 10*(2^10) chars as input seems more than enough+ test $ac_count -gt 10 && break+ done+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;+esac++ $ac_path_GREP_found && break 3+ done+ done+ done+IFS=$as_save_IFS+ if test -z "$ac_cv_path_GREP"; then+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5+ fi+else+ ac_cv_path_GREP=$GREP+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5+$as_echo "$ac_cv_path_GREP" >&6; }+ GREP="$ac_cv_path_GREP"+++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5+$as_echo_n "checking for egrep... " >&6; }+if ${ac_cv_path_EGREP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1+ then ac_cv_path_EGREP="$GREP -E"+ else+ if test -z "$EGREP"; then+ ac_path_EGREP_found=false+ # Loop through the user's path and test for each of PROGNAME-LIST+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_prog in egrep; do+ for ac_exec_ext in '' $ac_executable_extensions; do+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"+ as_fn_executable_p "$ac_path_EGREP" || continue+# Check for GNU ac_path_EGREP and select it if it is found.+ # Check for GNU $ac_path_EGREP+case `"$ac_path_EGREP" --version 2>&1` in+*GNU*)+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;+*)+ ac_count=0+ $as_echo_n 0123456789 >"conftest.in"+ while :+ do+ cat "conftest.in" "conftest.in" >"conftest.tmp"+ mv "conftest.tmp" "conftest.in"+ cp "conftest.in" "conftest.nl"+ $as_echo 'EGREP' >> "conftest.nl"+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break+ as_fn_arith $ac_count + 1 && ac_count=$as_val+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then+ # Best one so far, save it but keep looking for a better one+ ac_cv_path_EGREP="$ac_path_EGREP"+ ac_path_EGREP_max=$ac_count+ fi+ # 10*(2^10) chars as input seems more than enough+ test $ac_count -gt 10 && break+ done+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;+esac++ $ac_path_EGREP_found && break 3+ done+ done+ done+IFS=$as_save_IFS+ if test -z "$ac_cv_path_EGREP"; then+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5+ fi+else+ ac_cv_path_EGREP=$EGREP+fi++ fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5+$as_echo "$ac_cv_path_EGREP" >&6; }+ EGREP="$ac_cv_path_EGREP"+++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5+$as_echo_n "checking for ANSI C header files... " >&6; }+if ${ac_cv_header_stdc+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdlib.h>+#include <stdarg.h>+#include <string.h>+#include <float.h>++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_header_stdc=yes+else+ ac_cv_header_stdc=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++if test $ac_cv_header_stdc = yes; then+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <string.h>++_ACEOF+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |+ $EGREP "memchr" >/dev/null 2>&1; then :++else+ ac_cv_header_stdc=no+fi+rm -f conftest*++fi++if test $ac_cv_header_stdc = yes; then+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdlib.h>++_ACEOF+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |+ $EGREP "free" >/dev/null 2>&1; then :++else+ ac_cv_header_stdc=no+fi+rm -f conftest*++fi++if test $ac_cv_header_stdc = yes; then+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.+ if test "$cross_compiling" = yes; then :+ :+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <ctype.h>+#include <stdlib.h>+#if ((' ' & 0x0FF) == 0x020)+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))+#else+# define ISLOWER(c) \+ (('a' <= (c) && (c) <= 'i') \+ || ('j' <= (c) && (c) <= 'r') \+ || ('s' <= (c) && (c) <= 'z'))+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))+#endif++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))+int+main ()+{+ int i;+ for (i = 0; i < 256; i++)+ if (XOR (islower (i), ISLOWER (i))+ || toupper (i) != TOUPPER (i))+ return 2;+ return 0;+}+_ACEOF+if ac_fn_c_try_run "$LINENO"; then :++else+ ac_cv_header_stdc=no+fi+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \+ conftest.$ac_objext conftest.beam conftest.$ac_ext+fi++fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5+$as_echo "$ac_cv_header_stdc" >&6; }+if test $ac_cv_header_stdc = yes; then++$as_echo "#define STDC_HEADERS 1" >>confdefs.h++fi++# On IRIX 5.3, sys/types and inttypes.h are conflicting.+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \+ inttypes.h stdint.h unistd.h+do :+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default+"+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :+ cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1+_ACEOF++fi++done++++ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"+if test "x$ac_cv_header_minix_config_h" = xyes; then :+ MINIX=yes+else+ MINIX=+fi+++ if test "$MINIX" = yes; then++$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h+++$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h+++$as_echo "#define _MINIX 1" >>confdefs.h++ fi+++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }+if ${ac_cv_safe_to_define___extensions__+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++# define __EXTENSIONS__ 1+ $ac_includes_default+int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_safe_to_define___extensions__=yes+else+ ac_cv_safe_to_define___extensions__=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }+ test $ac_cv_safe_to_define___extensions__ = yes &&+ $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h++ $as_echo "#define _ALL_SOURCE 1" >>confdefs.h++ $as_echo "#define _GNU_SOURCE 1" >>confdefs.h++ $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h++ $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WINDOWS platform" >&5+$as_echo_n "checking for WINDOWS platform... " >&6; }+case $host_alias in+ *mingw32*|*mingw64*|*cygwin*|*msys*|*windows*)+ WINDOWS=YES;;+ *)+ WINDOWS=NO;;+esac+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDOWS" >&5+$as_echo "$WINDOWS" >&6; }++# do we have long longs?+ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"+if test "x$ac_cv_type_long_long" = xyes; then :++cat >>confdefs.h <<_ACEOF+#define HAVE_LONG_LONG 1+_ACEOF+++fi+++# check for specific header (.h) files that we are interested in+for ac_header in ctype.h errno.h fcntl.h inttypes.h limits.h signal.h sys/file.h sys/resource.h sys/select.h sys/stat.h sys/syscall.h sys/time.h sys/timeb.h sys/timers.h sys/times.h sys/types.h sys/utsname.h sys/wait.h termios.h time.h unistd.h utime.h windows.h winsock.h langinfo.h poll.h sys/epoll.h sys/event.h sys/eventfd.h sys/socket.h+do :+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :+ cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1+_ACEOF++fi++done+++# Enable large file support. Do this before testing the types ino_t, off_t, and+# rlim_t, because it will affect the result of that test.+# Check whether --enable-largefile was given.+if test "${enable_largefile+set}" = set; then :+ enableval=$enable_largefile;+fi++if test "$enable_largefile" != no; then++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }+if ${ac_cv_sys_largefile_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_cv_sys_largefile_CC=no+ if test "$GCC" != yes; then+ ac_save_CC=$CC+ while :; do+ # IRIX 6.2 and later do not support large files by default,+ # so use the C compiler's -n32 option if that helps.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <sys/types.h>+ /* Check that off_t can represent 2**63 - 1 correctly.+ We can't simply define LARGE_OFF_T to be 9223372036854775807,+ since some C++ compilers masquerading as C compilers+ incorrectly reject 9223372036854775807. */+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721+ && LARGE_OFF_T % 2147483647 == 1)+ ? 1 : -1];+int+main ()+{++ ;+ return 0;+}+_ACEOF+ if ac_fn_c_try_compile "$LINENO"; then :+ break+fi+rm -f core conftest.err conftest.$ac_objext+ CC="$CC -n32"+ if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_sys_largefile_CC=' -n32'; break+fi+rm -f core conftest.err conftest.$ac_objext+ break+ done+ CC=$ac_save_CC+ rm -f conftest.$ac_ext+ fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5+$as_echo "$ac_cv_sys_largefile_CC" >&6; }+ if test "$ac_cv_sys_largefile_CC" != no; then+ CC=$CC$ac_cv_sys_largefile_CC+ fi++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }+if ${ac_cv_sys_file_offset_bits+:} false; then :+ $as_echo_n "(cached) " >&6+else+ while :; do+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <sys/types.h>+ /* Check that off_t can represent 2**63 - 1 correctly.+ We can't simply define LARGE_OFF_T to be 9223372036854775807,+ since some C++ compilers masquerading as C compilers+ incorrectly reject 9223372036854775807. */+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721+ && LARGE_OFF_T % 2147483647 == 1)+ ? 1 : -1];+int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_sys_file_offset_bits=no; break+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#define _FILE_OFFSET_BITS 64+#include <sys/types.h>+ /* Check that off_t can represent 2**63 - 1 correctly.+ We can't simply define LARGE_OFF_T to be 9223372036854775807,+ since some C++ compilers masquerading as C compilers+ incorrectly reject 9223372036854775807. */+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721+ && LARGE_OFF_T % 2147483647 == 1)+ ? 1 : -1];+int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_sys_file_offset_bits=64; break+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ ac_cv_sys_file_offset_bits=unknown+ break+done+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }+case $ac_cv_sys_file_offset_bits in #(+ no | unknown) ;;+ *)+cat >>confdefs.h <<_ACEOF+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits+_ACEOF+;;+esac+rm -rf conftest*+ if test $ac_cv_sys_file_offset_bits = unknown; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }+if ${ac_cv_sys_large_files+:} false; then :+ $as_echo_n "(cached) " >&6+else+ while :; do+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <sys/types.h>+ /* Check that off_t can represent 2**63 - 1 correctly.+ We can't simply define LARGE_OFF_T to be 9223372036854775807,+ since some C++ compilers masquerading as C compilers+ incorrectly reject 9223372036854775807. */+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721+ && LARGE_OFF_T % 2147483647 == 1)+ ? 1 : -1];+int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_sys_large_files=no; break+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#define _LARGE_FILES 1+#include <sys/types.h>+ /* Check that off_t can represent 2**63 - 1 correctly.+ We can't simply define LARGE_OFF_T to be 9223372036854775807,+ since some C++ compilers masquerading as C compilers+ incorrectly reject 9223372036854775807. */+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721+ && LARGE_OFF_T % 2147483647 == 1)+ ? 1 : -1];+int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_sys_large_files=1; break+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ ac_cv_sys_large_files=unknown+ break+done+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5+$as_echo "$ac_cv_sys_large_files" >&6; }+case $ac_cv_sys_large_files in #(+ no | unknown) ;;+ *)+cat >>confdefs.h <<_ACEOF+#define _LARGE_FILES $ac_cv_sys_large_files+_ACEOF+;;+esac+rm -rf conftest*+ fi+++fi+++for ac_header in wctype.h+do :+ ac_fn_c_check_header_mongrel "$LINENO" "wctype.h" "ac_cv_header_wctype_h" "$ac_includes_default"+if test "x$ac_cv_header_wctype_h" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_WCTYPE_H 1+_ACEOF+ for ac_func in iswspace+do :+ ac_fn_c_check_func "$LINENO" "iswspace" "ac_cv_func_iswspace"+if test "x$ac_cv_func_iswspace" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_ISWSPACE 1+_ACEOF++fi+done++fi++done+++for ac_func in lstat+do :+ ac_fn_c_check_func "$LINENO" "lstat" "ac_cv_func_lstat"+if test "x$ac_cv_func_lstat" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_LSTAT 1+_ACEOF++fi+done++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5+$as_echo_n "checking for clock_gettime in -lrt... " >&6; }+if ${ac_cv_lib_rt_clock_gettime+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_check_lib_save_LIBS=$LIBS+LIBS="-lrt $LIBS"+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++/* Override any GCC internal prototype to avoid an error.+ Use char because int might match the return type of a GCC+ builtin and then its argument prototype would still apply. */+#ifdef __cplusplus+extern "C"+#endif+char clock_gettime ();+int+main ()+{+return clock_gettime ();+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ ac_cv_lib_rt_clock_gettime=yes+else+ ac_cv_lib_rt_clock_gettime=no+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+LIBS=$ac_check_lib_save_LIBS+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5+$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; }+if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_LIBRT 1+_ACEOF++ LIBS="-lrt $LIBS"++fi++for ac_func in clock_gettime+do :+ ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"+if test "x$ac_cv_func_clock_gettime" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_CLOCK_GETTIME 1+_ACEOF++fi+done++ac_fn_c_check_decl "$LINENO" "CLOCK_PROCESS_CPUTIME_ID" "ac_cv_have_decl_CLOCK_PROCESS_CPUTIME_ID" "#include <time.h>+"+if test "x$ac_cv_have_decl_CLOCK_PROCESS_CPUTIME_ID" = xyes; then :+ ac_have_decl=1+else+ ac_have_decl=0+fi++cat >>confdefs.h <<_ACEOF+#define HAVE_DECL_CLOCK_PROCESS_CPUTIME_ID $ac_have_decl+_ACEOF++for ac_func in getclock getrusage times+do :+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :+ cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1+_ACEOF++fi+done++for ac_func in _chsize_s ftruncate+do :+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :+ cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1+_ACEOF++fi+done+++# event-related fun+# The line below already defines HAVE_KQUEUE and HAVE_POLL, so technically some of the+# subsequent portions that redefine them could be skipped. However, we keep those portions+# to keep kqueue/poll in line with HAVE_EPOLL and possible other additions in the future. You+# should be aware of this peculiarity if you try to simulate not having kqueue or poll by+# moving away header files (see also https://gitlab.haskell.org/ghc/ghc/-/issues/9283)+for ac_func in epoll_ctl eventfd kevent kevent64 kqueue poll+do :+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :+ cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1+_ACEOF++fi+done+++if test "$ac_cv_header_sys_epoll_h" = yes && test "$ac_cv_func_epoll_ctl" = yes; then++$as_echo "#define HAVE_EPOLL 1" >>confdefs.h++fi++if test "$ac_cv_header_sys_event_h" = yes && test "$ac_cv_func_kqueue" = yes; then++$as_echo "#define HAVE_KQUEUE 1" >>confdefs.h+++ # The cast to long int works around a bug in the HP C Compiler+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.+# This bug is HP SR number 8606223364.+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of kev.filter" >&5+$as_echo_n "checking size of kev.filter... " >&6; }+if ${ac_cv_sizeof_kev_filter+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (kev.filter))" "ac_cv_sizeof_kev_filter" "#include <sys/event.h>+struct kevent kev;+"; then :++else+ if test "$ac_cv_type_kev_filter" = yes; then+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error 77 "cannot compute sizeof (kev.filter)+See \`config.log' for more details" "$LINENO" 5; }+ else+ ac_cv_sizeof_kev_filter=0+ fi+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_kev_filter" >&5+$as_echo "$ac_cv_sizeof_kev_filter" >&6; }++++cat >>confdefs.h <<_ACEOF+#define SIZEOF_KEV_FILTER $ac_cv_sizeof_kev_filter+_ACEOF++++ # The cast to long int works around a bug in the HP C Compiler+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.+# This bug is HP SR number 8606223364.+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of kev.flags" >&5+$as_echo_n "checking size of kev.flags... " >&6; }+if ${ac_cv_sizeof_kev_flags+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (kev.flags))" "ac_cv_sizeof_kev_flags" "#include <sys/event.h>+struct kevent kev;+"; then :++else+ if test "$ac_cv_type_kev_flags" = yes; then+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error 77 "cannot compute sizeof (kev.flags)+See \`config.log' for more details" "$LINENO" 5; }+ else+ ac_cv_sizeof_kev_flags=0+ fi+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_kev_flags" >&5+$as_echo "$ac_cv_sizeof_kev_flags" >&6; }++++cat >>confdefs.h <<_ACEOF+#define SIZEOF_KEV_FLAGS $ac_cv_sizeof_kev_flags+_ACEOF+++fi++if test "$ac_cv_header_poll_h" = yes && test "$ac_cv_func_poll" = yes; then++$as_echo "#define HAVE_POLL 1" >>confdefs.h++fi++# Linux open file descriptor locks+ac_fn_c_check_decl "$LINENO" "F_OFD_SETLK" "ac_cv_have_decl_F_OFD_SETLK" "+ #include <unistd.h>+ #include <fcntl.h>++"+if test "x$ac_cv_have_decl_F_OFD_SETLK" = xyes; then :+++$as_echo "#define HAVE_OFD_LOCKING 1" >>confdefs.h+++fi+++# flock+for ac_func in flock+do :+ ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock"+if test "x$ac_cv_func_flock" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_FLOCK 1+_ACEOF++fi+done++if test "$ac_cv_header_sys_file_h" = yes && test "$ac_cv_func_flock" = yes; then++$as_echo "#define HAVE_FLOCK 1" >>confdefs.h++fi++# unsetenv+for ac_func in unsetenv+do :+ ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv"+if test "x$ac_cv_func_unsetenv" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_UNSETENV 1+_ACEOF++fi+done+++for ac_func in chmod+do :+ ac_fn_c_check_func "$LINENO" "chmod" "ac_cv_func_chmod"+if test "x$ac_cv_func_chmod" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_CHMOD 1+_ACEOF++fi+done++for ac_func in dup+do :+ ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup"+if test "x$ac_cv_func_dup" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_DUP 1+_ACEOF++fi+done++for ac_func in fork+do :+ ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork"+if test "x$ac_cv_func_fork" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_FORK 1+_ACEOF++fi+done++for ac_func in getpid+do :+ ac_fn_c_check_func "$LINENO" "getpid" "ac_cv_func_getpid"+if test "x$ac_cv_func_getpid" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_GETPID 1+_ACEOF++fi+done++for ac_func in mkfifo+do :+ ac_fn_c_check_func "$LINENO" "mkfifo" "ac_cv_func_mkfifo"+if test "x$ac_cv_func_mkfifo" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_MKFIFO 1+_ACEOF++fi+done++for ac_func in pipe+do :+ ac_fn_c_check_func "$LINENO" "pipe" "ac_cv_func_pipe"+if test "x$ac_cv_func_pipe" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_PIPE 1+_ACEOF++fi+done++for ac_func in umask+do :+ ac_fn_c_check_func "$LINENO" "umask" "ac_cv_func_umask"+if test "x$ac_cv_func_umask" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_UMASK 1+_ACEOF++fi+done+++ac_fn_c_check_type "$LINENO" "struct rlimit" "ac_cv_type_struct_rlimit" "#include <sys/resource.h>+"+if test "x$ac_cv_type_struct_rlimit" = xyes; then :++$as_echo "#define HAVE_STRUCT_RLIMIT 1" >>confdefs.h++fi+++### POSIX.1003.1 unsetenv returns 0 or -1 (EINVAL), but older implementations+### in common use return void.+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of unsetenv" >&5+$as_echo_n "checking return type of unsetenv... " >&6; }+if ${fptools_cv_func_unsetenv_return_type+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdlib.h>++_ACEOF+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |+ $EGREP "void[ ]+unsetenv" >/dev/null 2>&1; then :+ fptools_cv_func_unsetenv_return_type=void+else+ fptools_cv_func_unsetenv_return_type=int+fi+rm -f conftest*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_func_unsetenv_return_type" >&5+$as_echo "$fptools_cv_func_unsetenv_return_type" >&6; }+case "$fptools_cv_func_unsetenv_return_type" in+ "void" )++$as_echo "#define UNSETENV_RETURNS_VOID 1" >>confdefs.h++ ;;+esac++++# Check whether --with-iconv-includes was given.+if test "${with_iconv_includes+set}" = set; then :+ withval=$with_iconv_includes; ICONV_INCLUDE_DIRS=$withval; CPPFLAGS="-I$withval $CPPFLAGS"+else+ ICONV_INCLUDE_DIRS=+fi++++# Check whether --with-iconv-libraries was given.+if test "${with_iconv_libraries+set}" = set; then :+ withval=$with_iconv_libraries; ICONV_LIB_DIRS=$withval; LDFLAGS="-L$withval $LDFLAGS"+else+ ICONV_LIB_DIRS=+fi++++++# map standard C types and ISO types to Haskell types+++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for char" >&5+$as_echo_n "checking Haskell type for char... " >&6; }+ if ${fptools_cv_htype_char+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_char=yes+ if ac_fn_c_compute_int "$LINENO" "(char)0.2 - (char)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+char val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_char="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(char) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_char=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(char) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_char=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(char) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_char=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_char=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_char=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_char=LDouble+ else+ fptools_cv_htype_sup_char=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((char)(-1)) < ((char)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_char=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(char) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_char=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_char="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_char="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_char" = no+ then++ fptools_cv_htype_char=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_char" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_char" >&5+$as_echo "$fptools_cv_htype_char" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_CHAR $fptools_cv_htype_char+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for signed char" >&5+$as_echo_n "checking Haskell type for signed char... " >&6; }+ if ${fptools_cv_htype_signed_char+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_signed_char=yes+ if ac_fn_c_compute_int "$LINENO" "(signed char)0.2 - (signed char)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+signed char val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_signed_char="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(signed char) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_signed_char=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(signed char) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_signed_char=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(signed char) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_signed_char=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_signed_char=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_signed_char=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_signed_char=LDouble+ else+ fptools_cv_htype_sup_signed_char=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((signed char)(-1)) < ((signed char)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_signed_char=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(signed char) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_signed_char=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_signed_char="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_signed_char="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_signed_char" = no+ then++ fptools_cv_htype_signed_char=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_signed_char" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_signed_char" >&5+$as_echo "$fptools_cv_htype_signed_char" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_SIGNED_CHAR $fptools_cv_htype_signed_char+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned char" >&5+$as_echo_n "checking Haskell type for unsigned char... " >&6; }+ if ${fptools_cv_htype_unsigned_char+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_unsigned_char=yes+ if ac_fn_c_compute_int "$LINENO" "(unsigned char)0.2 - (unsigned char)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+unsigned char val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_unsigned_char="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned char) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_char=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned char) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_char=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned char) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_char=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_unsigned_char=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_unsigned_char=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_unsigned_char=LDouble+ else+ fptools_cv_htype_sup_unsigned_char=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((unsigned char)(-1)) < ((unsigned char)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_char=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned char) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_char=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_unsigned_char="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_unsigned_char="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_unsigned_char" = no+ then++ fptools_cv_htype_unsigned_char=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_unsigned_char" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_unsigned_char" >&5+$as_echo "$fptools_cv_htype_unsigned_char" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_UNSIGNED_CHAR $fptools_cv_htype_unsigned_char+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for short" >&5+$as_echo_n "checking Haskell type for short... " >&6; }+ if ${fptools_cv_htype_short+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_short=yes+ if ac_fn_c_compute_int "$LINENO" "(short)0.2 - (short)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+short val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_short="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(short) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_short=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(short) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_short=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(short) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_short=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_short=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_short=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_short=LDouble+ else+ fptools_cv_htype_sup_short=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((short)(-1)) < ((short)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_short=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(short) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_short=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_short="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_short="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_short" = no+ then++ fptools_cv_htype_short=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_short" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_short" >&5+$as_echo "$fptools_cv_htype_short" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_SHORT $fptools_cv_htype_short+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned short" >&5+$as_echo_n "checking Haskell type for unsigned short... " >&6; }+ if ${fptools_cv_htype_unsigned_short+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_unsigned_short=yes+ if ac_fn_c_compute_int "$LINENO" "(unsigned short)0.2 - (unsigned short)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+unsigned short val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_unsigned_short="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned short) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_short=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned short) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_short=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned short) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_short=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_unsigned_short=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_unsigned_short=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_unsigned_short=LDouble+ else+ fptools_cv_htype_sup_unsigned_short=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((unsigned short)(-1)) < ((unsigned short)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_short=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned short) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_short=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_unsigned_short="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_unsigned_short="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_unsigned_short" = no+ then++ fptools_cv_htype_unsigned_short=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_unsigned_short" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_unsigned_short" >&5+$as_echo "$fptools_cv_htype_unsigned_short" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_UNSIGNED_SHORT $fptools_cv_htype_unsigned_short+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for int" >&5+$as_echo_n "checking Haskell type for int... " >&6; }+ if ${fptools_cv_htype_int+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_int=yes+ if ac_fn_c_compute_int "$LINENO" "(int)0.2 - (int)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+int val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_int="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(int) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_int=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(int) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_int=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(int) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_int=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_int=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_int=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_int=LDouble+ else+ fptools_cv_htype_sup_int=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((int)(-1)) < ((int)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_int=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(int) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_int=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_int="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_int="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_int" = no+ then++ fptools_cv_htype_int=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_int" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_int" >&5+$as_echo "$fptools_cv_htype_int" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_INT $fptools_cv_htype_int+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned int" >&5+$as_echo_n "checking Haskell type for unsigned int... " >&6; }+ if ${fptools_cv_htype_unsigned_int+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_unsigned_int=yes+ if ac_fn_c_compute_int "$LINENO" "(unsigned int)0.2 - (unsigned int)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+unsigned int val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_unsigned_int="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned int) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_int=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned int) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_int=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned int) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_int=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_unsigned_int=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_unsigned_int=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_unsigned_int=LDouble+ else+ fptools_cv_htype_sup_unsigned_int=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((unsigned int)(-1)) < ((unsigned int)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_int=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned int) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_int=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_unsigned_int="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_unsigned_int="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_unsigned_int" = no+ then++ fptools_cv_htype_unsigned_int=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_unsigned_int" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_unsigned_int" >&5+$as_echo "$fptools_cv_htype_unsigned_int" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_UNSIGNED_INT $fptools_cv_htype_unsigned_int+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for long" >&5+$as_echo_n "checking Haskell type for long... " >&6; }+ if ${fptools_cv_htype_long+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_long=yes+ if ac_fn_c_compute_int "$LINENO" "(long)0.2 - (long)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+long val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_long="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(long) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(long) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(long) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_long=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_long=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_long=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_long=LDouble+ else+ fptools_cv_htype_sup_long=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((long)(-1)) < ((long)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(long) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_long=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_long="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_long="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_long" = no+ then++ fptools_cv_htype_long=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_long" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_long" >&5+$as_echo "$fptools_cv_htype_long" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_LONG $fptools_cv_htype_long+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned long" >&5+$as_echo_n "checking Haskell type for unsigned long... " >&6; }+ if ${fptools_cv_htype_unsigned_long+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_unsigned_long=yes+ if ac_fn_c_compute_int "$LINENO" "(unsigned long)0.2 - (unsigned long)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+unsigned long val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_unsigned_long="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_long=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_unsigned_long=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_unsigned_long=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_unsigned_long=LDouble+ else+ fptools_cv_htype_sup_unsigned_long=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((unsigned long)(-1)) < ((unsigned long)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_long=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_unsigned_long="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_unsigned_long="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_unsigned_long" = no+ then++ fptools_cv_htype_unsigned_long=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_unsigned_long" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_unsigned_long" >&5+$as_echo "$fptools_cv_htype_unsigned_long" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_UNSIGNED_LONG $fptools_cv_htype_unsigned_long+_ACEOF++ fi+++if test "$ac_cv_type_long_long" = yes; then+++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for long long" >&5+$as_echo_n "checking Haskell type for long long... " >&6; }+ if ${fptools_cv_htype_long_long+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_long_long=yes+ if ac_fn_c_compute_int "$LINENO" "(long long)0.2 - (long long)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+long long val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_long_long="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(long long) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_long_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(long long) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_long_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(long long) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_long_long=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_long_long=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_long_long=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_long_long=LDouble+ else+ fptools_cv_htype_sup_long_long=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((long long)(-1)) < ((long long)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_long_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(long long) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_long_long=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_long_long="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_long_long="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_long_long" = no+ then++ fptools_cv_htype_long_long=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_long_long" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_long_long" >&5+$as_echo "$fptools_cv_htype_long_long" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_LONG_LONG $fptools_cv_htype_long_long+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned long long" >&5+$as_echo_n "checking Haskell type for unsigned long long... " >&6; }+ if ${fptools_cv_htype_unsigned_long_long+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_unsigned_long_long=yes+ if ac_fn_c_compute_int "$LINENO" "(unsigned long long)0.2 - (unsigned long long)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+unsigned long long val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_unsigned_long_long="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long long) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_long_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long long) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_long_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long long) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_long_long=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_unsigned_long_long=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_unsigned_long_long=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_unsigned_long_long=LDouble+ else+ fptools_cv_htype_sup_unsigned_long_long=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((unsigned long long)(-1)) < ((unsigned long long)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_long_long=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(unsigned long long) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_unsigned_long_long=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_unsigned_long_long="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_unsigned_long_long="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_unsigned_long_long" = no+ then++ fptools_cv_htype_unsigned_long_long=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_unsigned_long_long" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_unsigned_long_long" >&5+$as_echo "$fptools_cv_htype_unsigned_long_long" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_UNSIGNED_LONG_LONG $fptools_cv_htype_unsigned_long_long+_ACEOF++ fi+++fi+++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for bool" >&5+$as_echo_n "checking Haskell type for bool... " >&6; }+ if ${fptools_cv_htype_bool+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_bool=yes+ if ac_fn_c_compute_int "$LINENO" "(bool)0.2 - (bool)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+bool val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_bool="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(bool) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_bool=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(bool) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_bool=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(bool) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_bool=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_bool=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_bool=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_bool=LDouble+ else+ fptools_cv_htype_sup_bool=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((bool)(-1)) < ((bool)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_bool=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(bool) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_bool=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_bool="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_bool="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_bool" = no+ then++ fptools_cv_htype_bool=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_bool" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_bool" >&5+$as_echo "$fptools_cv_htype_bool" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_BOOL $fptools_cv_htype_bool+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for float" >&5+$as_echo_n "checking Haskell type for float... " >&6; }+ if ${fptools_cv_htype_float+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_float=yes+ if ac_fn_c_compute_int "$LINENO" "(float)0.2 - (float)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+float val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_float="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(float) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_float=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(float) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_float=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(float) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_float=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_float=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_float=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_float=LDouble+ else+ fptools_cv_htype_sup_float=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((float)(-1)) < ((float)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_float=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(float) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_float=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_float="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_float="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_float" = no+ then++ fptools_cv_htype_float=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_float" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_float" >&5+$as_echo "$fptools_cv_htype_float" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_FLOAT $fptools_cv_htype_float+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for double" >&5+$as_echo_n "checking Haskell type for double... " >&6; }+ if ${fptools_cv_htype_double+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_double=yes+ if ac_fn_c_compute_int "$LINENO" "(double)0.2 - (double)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+double val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_double="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(double) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_double=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(double) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_double=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(double) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_double=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_double=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_double=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_double=LDouble+ else+ fptools_cv_htype_sup_double=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((double)(-1)) < ((double)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_double=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(double) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_double=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_double="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_double="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_double" = no+ then++ fptools_cv_htype_double=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_double" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_double" >&5+$as_echo "$fptools_cv_htype_double" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_DOUBLE $fptools_cv_htype_double+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ptrdiff_t" >&5+$as_echo_n "checking Haskell type for ptrdiff_t... " >&6; }+ if ${fptools_cv_htype_ptrdiff_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_ptrdiff_t=yes+ if ac_fn_c_compute_int "$LINENO" "(ptrdiff_t)0.2 - (ptrdiff_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+ptrdiff_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_ptrdiff_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(ptrdiff_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ptrdiff_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(ptrdiff_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ptrdiff_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(ptrdiff_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ptrdiff_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_ptrdiff_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_ptrdiff_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_ptrdiff_t=LDouble+ else+ fptools_cv_htype_sup_ptrdiff_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((ptrdiff_t)(-1)) < ((ptrdiff_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ptrdiff_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(ptrdiff_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ptrdiff_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_ptrdiff_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_ptrdiff_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_ptrdiff_t" = no+ then++ fptools_cv_htype_ptrdiff_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_ptrdiff_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_ptrdiff_t" >&5+$as_echo "$fptools_cv_htype_ptrdiff_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_PTRDIFF_T $fptools_cv_htype_ptrdiff_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for size_t" >&5+$as_echo_n "checking Haskell type for size_t... " >&6; }+ if ${fptools_cv_htype_size_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_size_t=yes+ if ac_fn_c_compute_int "$LINENO" "(size_t)0.2 - (size_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+size_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_size_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(size_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_size_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(size_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_size_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(size_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_size_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_size_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_size_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_size_t=LDouble+ else+ fptools_cv_htype_sup_size_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((size_t)(-1)) < ((size_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_size_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(size_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_size_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_size_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_size_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_size_t" = no+ then++ fptools_cv_htype_size_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_size_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_size_t" >&5+$as_echo "$fptools_cv_htype_size_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_SIZE_T $fptools_cv_htype_size_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for wchar_t" >&5+$as_echo_n "checking Haskell type for wchar_t... " >&6; }+ if ${fptools_cv_htype_wchar_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_wchar_t=yes+ if ac_fn_c_compute_int "$LINENO" "(wchar_t)0.2 - (wchar_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+wchar_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_wchar_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(wchar_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_wchar_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(wchar_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_wchar_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(wchar_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_wchar_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_wchar_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_wchar_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_wchar_t=LDouble+ else+ fptools_cv_htype_sup_wchar_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((wchar_t)(-1)) < ((wchar_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_wchar_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(wchar_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_wchar_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_wchar_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_wchar_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_wchar_t" = no+ then++ fptools_cv_htype_wchar_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_wchar_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_wchar_t" >&5+$as_echo "$fptools_cv_htype_wchar_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_WCHAR_T $fptools_cv_htype_wchar_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for sig_atomic_t" >&5+$as_echo_n "checking Haskell type for sig_atomic_t... " >&6; }+ if ${fptools_cv_htype_sig_atomic_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_sig_atomic_t=yes+ if ac_fn_c_compute_int "$LINENO" "(sig_atomic_t)0.2 - (sig_atomic_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+sig_atomic_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_sig_atomic_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(sig_atomic_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_sig_atomic_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(sig_atomic_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_sig_atomic_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(sig_atomic_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_sig_atomic_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_sig_atomic_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_sig_atomic_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_sig_atomic_t=LDouble+ else+ fptools_cv_htype_sup_sig_atomic_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((sig_atomic_t)(-1)) < ((sig_atomic_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_sig_atomic_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(sig_atomic_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_sig_atomic_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_sig_atomic_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_sig_atomic_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_sig_atomic_t" = no+ then++ fptools_cv_htype_sig_atomic_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_sig_atomic_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_sig_atomic_t" >&5+$as_echo "$fptools_cv_htype_sig_atomic_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_SIG_ATOMIC_T $fptools_cv_htype_sig_atomic_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for clock_t" >&5+$as_echo_n "checking Haskell type for clock_t... " >&6; }+ if ${fptools_cv_htype_clock_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_clock_t=yes+ if ac_fn_c_compute_int "$LINENO" "(clock_t)0.2 - (clock_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+clock_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_clock_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(clock_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_clock_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(clock_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_clock_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(clock_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_clock_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_clock_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_clock_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_clock_t=LDouble+ else+ fptools_cv_htype_sup_clock_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((clock_t)(-1)) < ((clock_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_clock_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(clock_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_clock_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_clock_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_clock_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_clock_t" = no+ then++ fptools_cv_htype_clock_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_clock_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_clock_t" >&5+$as_echo "$fptools_cv_htype_clock_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_CLOCK_T $fptools_cv_htype_clock_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for time_t" >&5+$as_echo_n "checking Haskell type for time_t... " >&6; }+ if ${fptools_cv_htype_time_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_time_t=yes+ if ac_fn_c_compute_int "$LINENO" "(time_t)0.2 - (time_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+time_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_time_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(time_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_time_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(time_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_time_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(time_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_time_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_time_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_time_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_time_t=LDouble+ else+ fptools_cv_htype_sup_time_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((time_t)(-1)) < ((time_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_time_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(time_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_time_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_time_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_time_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_time_t" = no+ then++ fptools_cv_htype_time_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_time_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_time_t" >&5+$as_echo "$fptools_cv_htype_time_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_TIME_T $fptools_cv_htype_time_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for useconds_t" >&5+$as_echo_n "checking Haskell type for useconds_t... " >&6; }+ if ${fptools_cv_htype_useconds_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_useconds_t=yes+ if ac_fn_c_compute_int "$LINENO" "(useconds_t)0.2 - (useconds_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+useconds_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_useconds_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(useconds_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_useconds_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(useconds_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_useconds_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(useconds_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_useconds_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_useconds_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_useconds_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_useconds_t=LDouble+ else+ fptools_cv_htype_sup_useconds_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((useconds_t)(-1)) < ((useconds_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_useconds_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(useconds_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_useconds_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_useconds_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_useconds_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_useconds_t" = no+ then++ fptools_cv_htype_useconds_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_useconds_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_useconds_t" >&5+$as_echo "$fptools_cv_htype_useconds_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_USECONDS_T $fptools_cv_htype_useconds_t+_ACEOF++ fi++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for suseconds_t" >&5+$as_echo_n "checking Haskell type for suseconds_t... " >&6; }+ if ${fptools_cv_htype_suseconds_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_suseconds_t=yes+ if ac_fn_c_compute_int "$LINENO" "(suseconds_t)0.2 - (suseconds_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+suseconds_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_suseconds_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(suseconds_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_suseconds_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(suseconds_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_suseconds_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(suseconds_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_suseconds_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_suseconds_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_suseconds_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_suseconds_t=LDouble+ else+ fptools_cv_htype_sup_suseconds_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((suseconds_t)(-1)) < ((suseconds_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_suseconds_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(suseconds_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_suseconds_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_suseconds_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_suseconds_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_suseconds_t" = no+ then+ if test "$WINDOWS" = "YES"+ then+ fptools_cv_htype_suseconds_t=Int32+ fptools_cv_htype_sup_suseconds_t=yes+ else+ as_fn_error $? "type not found" "$LINENO" 5+ fi+ fi++ if test "$fptools_cv_htype_sup_suseconds_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_suseconds_t" >&5+$as_echo "$fptools_cv_htype_suseconds_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_SUSECONDS_T $fptools_cv_htype_suseconds_t+_ACEOF++ fi++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for dev_t" >&5+$as_echo_n "checking Haskell type for dev_t... " >&6; }+ if ${fptools_cv_htype_dev_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_dev_t=yes+ if ac_fn_c_compute_int "$LINENO" "(dev_t)0.2 - (dev_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+dev_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_dev_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(dev_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_dev_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(dev_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_dev_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(dev_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_dev_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_dev_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_dev_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_dev_t=LDouble+ else+ fptools_cv_htype_sup_dev_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((dev_t)(-1)) < ((dev_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_dev_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(dev_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_dev_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_dev_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_dev_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_dev_t" = no+ then++ fptools_cv_htype_dev_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_dev_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_dev_t" >&5+$as_echo "$fptools_cv_htype_dev_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_DEV_T $fptools_cv_htype_dev_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ino_t" >&5+$as_echo_n "checking Haskell type for ino_t... " >&6; }+ if ${fptools_cv_htype_ino_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_ino_t=yes+ if ac_fn_c_compute_int "$LINENO" "(ino_t)0.2 - (ino_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+ino_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_ino_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(ino_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ino_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(ino_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ino_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(ino_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ino_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_ino_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_ino_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_ino_t=LDouble+ else+ fptools_cv_htype_sup_ino_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((ino_t)(-1)) < ((ino_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ino_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(ino_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ino_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_ino_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_ino_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_ino_t" = no+ then++ fptools_cv_htype_ino_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_ino_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_ino_t" >&5+$as_echo "$fptools_cv_htype_ino_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_INO_T $fptools_cv_htype_ino_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for mode_t" >&5+$as_echo_n "checking Haskell type for mode_t... " >&6; }+ if ${fptools_cv_htype_mode_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_mode_t=yes+ if ac_fn_c_compute_int "$LINENO" "(mode_t)0.2 - (mode_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+mode_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_mode_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(mode_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_mode_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(mode_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_mode_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(mode_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_mode_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_mode_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_mode_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_mode_t=LDouble+ else+ fptools_cv_htype_sup_mode_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((mode_t)(-1)) < ((mode_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_mode_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(mode_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_mode_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_mode_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_mode_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_mode_t" = no+ then++ fptools_cv_htype_mode_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_mode_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_mode_t" >&5+$as_echo "$fptools_cv_htype_mode_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_MODE_T $fptools_cv_htype_mode_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for off_t" >&5+$as_echo_n "checking Haskell type for off_t... " >&6; }+ if ${fptools_cv_htype_off_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_off_t=yes+ if ac_fn_c_compute_int "$LINENO" "(off_t)0.2 - (off_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+off_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_off_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(off_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_off_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(off_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_off_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(off_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_off_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_off_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_off_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_off_t=LDouble+ else+ fptools_cv_htype_sup_off_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((off_t)(-1)) < ((off_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_off_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(off_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_off_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_off_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_off_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_off_t" = no+ then++ fptools_cv_htype_off_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_off_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_off_t" >&5+$as_echo "$fptools_cv_htype_off_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_OFF_T $fptools_cv_htype_off_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for pid_t" >&5+$as_echo_n "checking Haskell type for pid_t... " >&6; }+ if ${fptools_cv_htype_pid_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_pid_t=yes+ if ac_fn_c_compute_int "$LINENO" "(pid_t)0.2 - (pid_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+pid_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_pid_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(pid_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_pid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(pid_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_pid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(pid_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_pid_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_pid_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_pid_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_pid_t=LDouble+ else+ fptools_cv_htype_sup_pid_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((pid_t)(-1)) < ((pid_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_pid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(pid_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_pid_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_pid_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_pid_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_pid_t" = no+ then++ fptools_cv_htype_pid_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_pid_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_pid_t" >&5+$as_echo "$fptools_cv_htype_pid_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_PID_T $fptools_cv_htype_pid_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for gid_t" >&5+$as_echo_n "checking Haskell type for gid_t... " >&6; }+ if ${fptools_cv_htype_gid_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_gid_t=yes+ if ac_fn_c_compute_int "$LINENO" "(gid_t)0.2 - (gid_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+gid_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_gid_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(gid_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_gid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(gid_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_gid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(gid_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_gid_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_gid_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_gid_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_gid_t=LDouble+ else+ fptools_cv_htype_sup_gid_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((gid_t)(-1)) < ((gid_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_gid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(gid_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_gid_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_gid_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_gid_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_gid_t" = no+ then++ fptools_cv_htype_gid_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_gid_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_gid_t" >&5+$as_echo "$fptools_cv_htype_gid_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_GID_T $fptools_cv_htype_gid_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uid_t" >&5+$as_echo_n "checking Haskell type for uid_t... " >&6; }+ if ${fptools_cv_htype_uid_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_uid_t=yes+ if ac_fn_c_compute_int "$LINENO" "(uid_t)0.2 - (uid_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+uid_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_uid_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(uid_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(uid_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(uid_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uid_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_uid_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_uid_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_uid_t=LDouble+ else+ fptools_cv_htype_sup_uid_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((uid_t)(-1)) < ((uid_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(uid_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uid_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_uid_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_uid_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_uid_t" = no+ then++ fptools_cv_htype_uid_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_uid_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_uid_t" >&5+$as_echo "$fptools_cv_htype_uid_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_UID_T $fptools_cv_htype_uid_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for cc_t" >&5+$as_echo_n "checking Haskell type for cc_t... " >&6; }+ if ${fptools_cv_htype_cc_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_cc_t=yes+ if ac_fn_c_compute_int "$LINENO" "(cc_t)0.2 - (cc_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+cc_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_cc_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(cc_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_cc_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(cc_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_cc_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(cc_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_cc_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_cc_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_cc_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_cc_t=LDouble+ else+ fptools_cv_htype_sup_cc_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((cc_t)(-1)) < ((cc_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_cc_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(cc_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_cc_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_cc_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_cc_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_cc_t" = no+ then++ fptools_cv_htype_cc_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_cc_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_cc_t" >&5+$as_echo "$fptools_cv_htype_cc_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_CC_T $fptools_cv_htype_cc_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for speed_t" >&5+$as_echo_n "checking Haskell type for speed_t... " >&6; }+ if ${fptools_cv_htype_speed_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_speed_t=yes+ if ac_fn_c_compute_int "$LINENO" "(speed_t)0.2 - (speed_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+speed_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_speed_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(speed_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_speed_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(speed_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_speed_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(speed_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_speed_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_speed_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_speed_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_speed_t=LDouble+ else+ fptools_cv_htype_sup_speed_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((speed_t)(-1)) < ((speed_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_speed_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(speed_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_speed_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_speed_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_speed_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_speed_t" = no+ then++ fptools_cv_htype_speed_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_speed_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_speed_t" >&5+$as_echo "$fptools_cv_htype_speed_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_SPEED_T $fptools_cv_htype_speed_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for tcflag_t" >&5+$as_echo_n "checking Haskell type for tcflag_t... " >&6; }+ if ${fptools_cv_htype_tcflag_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_tcflag_t=yes+ if ac_fn_c_compute_int "$LINENO" "(tcflag_t)0.2 - (tcflag_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+tcflag_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_tcflag_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(tcflag_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_tcflag_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(tcflag_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_tcflag_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(tcflag_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_tcflag_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_tcflag_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_tcflag_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_tcflag_t=LDouble+ else+ fptools_cv_htype_sup_tcflag_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((tcflag_t)(-1)) < ((tcflag_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_tcflag_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(tcflag_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_tcflag_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_tcflag_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_tcflag_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_tcflag_t" = no+ then++ fptools_cv_htype_tcflag_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_tcflag_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_tcflag_t" >&5+$as_echo "$fptools_cv_htype_tcflag_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_TCFLAG_T $fptools_cv_htype_tcflag_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for nlink_t" >&5+$as_echo_n "checking Haskell type for nlink_t... " >&6; }+ if ${fptools_cv_htype_nlink_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_nlink_t=yes+ if ac_fn_c_compute_int "$LINENO" "(nlink_t)0.2 - (nlink_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+nlink_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_nlink_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(nlink_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_nlink_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(nlink_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_nlink_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(nlink_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_nlink_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_nlink_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_nlink_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_nlink_t=LDouble+ else+ fptools_cv_htype_sup_nlink_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((nlink_t)(-1)) < ((nlink_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_nlink_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(nlink_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_nlink_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_nlink_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_nlink_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_nlink_t" = no+ then++ fptools_cv_htype_nlink_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_nlink_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_nlink_t" >&5+$as_echo "$fptools_cv_htype_nlink_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_NLINK_T $fptools_cv_htype_nlink_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ssize_t" >&5+$as_echo_n "checking Haskell type for ssize_t... " >&6; }+ if ${fptools_cv_htype_ssize_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_ssize_t=yes+ if ac_fn_c_compute_int "$LINENO" "(ssize_t)0.2 - (ssize_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+ssize_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_ssize_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(ssize_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ssize_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(ssize_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ssize_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(ssize_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ssize_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_ssize_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_ssize_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_ssize_t=LDouble+ else+ fptools_cv_htype_sup_ssize_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((ssize_t)(-1)) < ((ssize_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ssize_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(ssize_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_ssize_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_ssize_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_ssize_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_ssize_t" = no+ then++ fptools_cv_htype_ssize_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_ssize_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_ssize_t" >&5+$as_echo "$fptools_cv_htype_ssize_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_SSIZE_T $fptools_cv_htype_ssize_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for rlim_t" >&5+$as_echo_n "checking Haskell type for rlim_t... " >&6; }+ if ${fptools_cv_htype_rlim_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_rlim_t=yes+ if ac_fn_c_compute_int "$LINENO" "(rlim_t)0.2 - (rlim_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+rlim_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_rlim_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(rlim_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_rlim_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(rlim_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_rlim_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(rlim_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_rlim_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_rlim_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_rlim_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_rlim_t=LDouble+ else+ fptools_cv_htype_sup_rlim_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((rlim_t)(-1)) < ((rlim_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_rlim_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(rlim_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_rlim_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_rlim_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_rlim_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_rlim_t" = no+ then++ fptools_cv_htype_rlim_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_rlim_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_rlim_t" >&5+$as_echo "$fptools_cv_htype_rlim_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_RLIM_T $fptools_cv_htype_rlim_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for blksize_t" >&5+$as_echo_n "checking Haskell type for blksize_t... " >&6; }+ if ${fptools_cv_htype_blksize_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_blksize_t=yes+ if ac_fn_c_compute_int "$LINENO" "(blksize_t)0.2 - (blksize_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+blksize_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_blksize_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(blksize_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_blksize_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(blksize_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_blksize_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(blksize_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_blksize_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_blksize_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_blksize_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_blksize_t=LDouble+ else+ fptools_cv_htype_sup_blksize_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((blksize_t)(-1)) < ((blksize_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_blksize_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(blksize_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_blksize_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_blksize_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_blksize_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_blksize_t" = no+ then++ fptools_cv_htype_blksize_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_blksize_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_blksize_t" >&5+$as_echo "$fptools_cv_htype_blksize_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_BLKSIZE_T $fptools_cv_htype_blksize_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for blkcnt_t" >&5+$as_echo_n "checking Haskell type for blkcnt_t... " >&6; }+ if ${fptools_cv_htype_blkcnt_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_blkcnt_t=yes+ if ac_fn_c_compute_int "$LINENO" "(blkcnt_t)0.2 - (blkcnt_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+blkcnt_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_blkcnt_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(blkcnt_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_blkcnt_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(blkcnt_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_blkcnt_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(blkcnt_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_blkcnt_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_blkcnt_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_blkcnt_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_blkcnt_t=LDouble+ else+ fptools_cv_htype_sup_blkcnt_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((blkcnt_t)(-1)) < ((blkcnt_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_blkcnt_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(blkcnt_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_blkcnt_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_blkcnt_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_blkcnt_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_blkcnt_t" = no+ then++ fptools_cv_htype_blkcnt_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_blkcnt_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_blkcnt_t" >&5+$as_echo "$fptools_cv_htype_blkcnt_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_BLKCNT_T $fptools_cv_htype_blkcnt_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for clockid_t" >&5+$as_echo_n "checking Haskell type for clockid_t... " >&6; }+ if ${fptools_cv_htype_clockid_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_clockid_t=yes+ if ac_fn_c_compute_int "$LINENO" "(clockid_t)0.2 - (clockid_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+clockid_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_clockid_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(clockid_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_clockid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(clockid_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_clockid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(clockid_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_clockid_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_clockid_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_clockid_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_clockid_t=LDouble+ else+ fptools_cv_htype_sup_clockid_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((clockid_t)(-1)) < ((clockid_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_clockid_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(clockid_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_clockid_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_clockid_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_clockid_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_clockid_t" = no+ then++ fptools_cv_htype_clockid_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_clockid_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_clockid_t" >&5+$as_echo "$fptools_cv_htype_clockid_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_CLOCKID_T $fptools_cv_htype_clockid_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for fsblkcnt_t" >&5+$as_echo_n "checking Haskell type for fsblkcnt_t... " >&6; }+ if ${fptools_cv_htype_fsblkcnt_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_fsblkcnt_t=yes+ if ac_fn_c_compute_int "$LINENO" "(fsblkcnt_t)0.2 - (fsblkcnt_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+fsblkcnt_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_fsblkcnt_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(fsblkcnt_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_fsblkcnt_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(fsblkcnt_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_fsblkcnt_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(fsblkcnt_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_fsblkcnt_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_fsblkcnt_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_fsblkcnt_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_fsblkcnt_t=LDouble+ else+ fptools_cv_htype_sup_fsblkcnt_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((fsblkcnt_t)(-1)) < ((fsblkcnt_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_fsblkcnt_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(fsblkcnt_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_fsblkcnt_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_fsblkcnt_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_fsblkcnt_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_fsblkcnt_t" = no+ then++ fptools_cv_htype_fsblkcnt_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_fsblkcnt_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_fsblkcnt_t" >&5+$as_echo "$fptools_cv_htype_fsblkcnt_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_FSBLKCNT_T $fptools_cv_htype_fsblkcnt_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for fsfilcnt_t" >&5+$as_echo_n "checking Haskell type for fsfilcnt_t... " >&6; }+ if ${fptools_cv_htype_fsfilcnt_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_fsfilcnt_t=yes+ if ac_fn_c_compute_int "$LINENO" "(fsfilcnt_t)0.2 - (fsfilcnt_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+fsfilcnt_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_fsfilcnt_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(fsfilcnt_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_fsfilcnt_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(fsfilcnt_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_fsfilcnt_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(fsfilcnt_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_fsfilcnt_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_fsfilcnt_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_fsfilcnt_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_fsfilcnt_t=LDouble+ else+ fptools_cv_htype_sup_fsfilcnt_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((fsfilcnt_t)(-1)) < ((fsfilcnt_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_fsfilcnt_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(fsfilcnt_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_fsfilcnt_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_fsfilcnt_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_fsfilcnt_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_fsfilcnt_t" = no+ then++ fptools_cv_htype_fsfilcnt_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_fsfilcnt_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_fsfilcnt_t" >&5+$as_echo "$fptools_cv_htype_fsfilcnt_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_FSFILCNT_T $fptools_cv_htype_fsfilcnt_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for id_t" >&5+$as_echo_n "checking Haskell type for id_t... " >&6; }+ if ${fptools_cv_htype_id_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_id_t=yes+ if ac_fn_c_compute_int "$LINENO" "(id_t)0.2 - (id_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+id_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_id_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(id_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_id_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(id_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_id_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(id_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_id_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_id_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_id_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_id_t=LDouble+ else+ fptools_cv_htype_sup_id_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((id_t)(-1)) < ((id_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_id_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(id_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_id_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_id_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_id_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_id_t" = no+ then++ fptools_cv_htype_id_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_id_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_id_t" >&5+$as_echo "$fptools_cv_htype_id_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_ID_T $fptools_cv_htype_id_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for key_t" >&5+$as_echo_n "checking Haskell type for key_t... " >&6; }+ if ${fptools_cv_htype_key_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_key_t=yes+ if ac_fn_c_compute_int "$LINENO" "(key_t)0.2 - (key_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+key_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_key_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(key_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_key_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(key_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_key_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(key_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_key_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_key_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_key_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_key_t=LDouble+ else+ fptools_cv_htype_sup_key_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((key_t)(-1)) < ((key_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_key_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(key_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_key_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_key_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_key_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_key_t" = no+ then++ fptools_cv_htype_key_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_key_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_key_t" >&5+$as_echo "$fptools_cv_htype_key_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_KEY_T $fptools_cv_htype_key_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for timer_t" >&5+$as_echo_n "checking Haskell type for timer_t... " >&6; }+ if ${fptools_cv_htype_timer_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_timer_t=yes+ if ac_fn_c_compute_int "$LINENO" "(timer_t)0.2 - (timer_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+timer_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_timer_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(timer_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_timer_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(timer_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_timer_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(timer_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_timer_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_timer_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_timer_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_timer_t=LDouble+ else+ fptools_cv_htype_sup_timer_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((timer_t)(-1)) < ((timer_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_timer_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(timer_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_timer_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_timer_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_timer_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_timer_t" = no+ then++ fptools_cv_htype_timer_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_timer_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_timer_t" >&5+$as_echo "$fptools_cv_htype_timer_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_TIMER_T $fptools_cv_htype_timer_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for socklen_t" >&5+$as_echo_n "checking Haskell type for socklen_t... " >&6; }+ if ${fptools_cv_htype_socklen_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_socklen_t=yes+ if ac_fn_c_compute_int "$LINENO" "(socklen_t)0.2 - (socklen_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+socklen_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_socklen_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(socklen_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_socklen_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(socklen_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_socklen_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(socklen_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_socklen_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_socklen_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_socklen_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_socklen_t=LDouble+ else+ fptools_cv_htype_sup_socklen_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((socklen_t)(-1)) < ((socklen_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_socklen_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(socklen_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_socklen_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_socklen_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_socklen_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_socklen_t" = no+ then++ fptools_cv_htype_socklen_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_socklen_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_socklen_t" >&5+$as_echo "$fptools_cv_htype_socklen_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_SOCKLEN_T $fptools_cv_htype_socklen_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for nfds_t" >&5+$as_echo_n "checking Haskell type for nfds_t... " >&6; }+ if ${fptools_cv_htype_nfds_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_nfds_t=yes+ if ac_fn_c_compute_int "$LINENO" "(nfds_t)0.2 - (nfds_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+nfds_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_nfds_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(nfds_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_nfds_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(nfds_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_nfds_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(nfds_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_nfds_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_nfds_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_nfds_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_nfds_t=LDouble+ else+ fptools_cv_htype_sup_nfds_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((nfds_t)(-1)) < ((nfds_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_nfds_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(nfds_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_nfds_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_nfds_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_nfds_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_nfds_t" = no+ then++ fptools_cv_htype_nfds_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_nfds_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_nfds_t" >&5+$as_echo "$fptools_cv_htype_nfds_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_NFDS_T $fptools_cv_htype_nfds_t+_ACEOF++ fi++++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for intptr_t" >&5+$as_echo_n "checking Haskell type for intptr_t... " >&6; }+ if ${fptools_cv_htype_intptr_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_intptr_t=yes+ if ac_fn_c_compute_int "$LINENO" "(intptr_t)0.2 - (intptr_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+intptr_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_intptr_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(intptr_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_intptr_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(intptr_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_intptr_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(intptr_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_intptr_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_intptr_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_intptr_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_intptr_t=LDouble+ else+ fptools_cv_htype_sup_intptr_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((intptr_t)(-1)) < ((intptr_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_intptr_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(intptr_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_intptr_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_intptr_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_intptr_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_intptr_t" = no+ then++ fptools_cv_htype_intptr_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_intptr_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_intptr_t" >&5+$as_echo "$fptools_cv_htype_intptr_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_INTPTR_T $fptools_cv_htype_intptr_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uintptr_t" >&5+$as_echo_n "checking Haskell type for uintptr_t... " >&6; }+ if ${fptools_cv_htype_uintptr_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_uintptr_t=yes+ if ac_fn_c_compute_int "$LINENO" "(uintptr_t)0.2 - (uintptr_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+uintptr_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_uintptr_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(uintptr_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uintptr_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(uintptr_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uintptr_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(uintptr_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uintptr_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_uintptr_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_uintptr_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_uintptr_t=LDouble+ else+ fptools_cv_htype_sup_uintptr_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((uintptr_t)(-1)) < ((uintptr_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uintptr_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(uintptr_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uintptr_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_uintptr_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_uintptr_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_uintptr_t" = no+ then++ fptools_cv_htype_uintptr_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_uintptr_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_uintptr_t" >&5+$as_echo "$fptools_cv_htype_uintptr_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_UINTPTR_T $fptools_cv_htype_uintptr_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for intmax_t" >&5+$as_echo_n "checking Haskell type for intmax_t... " >&6; }+ if ${fptools_cv_htype_intmax_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_intmax_t=yes+ if ac_fn_c_compute_int "$LINENO" "(intmax_t)0.2 - (intmax_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+intmax_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_intmax_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(intmax_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_intmax_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(intmax_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_intmax_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(intmax_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_intmax_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_intmax_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_intmax_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_intmax_t=LDouble+ else+ fptools_cv_htype_sup_intmax_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((intmax_t)(-1)) < ((intmax_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_intmax_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(intmax_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_intmax_t=no+fi++ if test "$HTYPE_IS_SIGNED" -eq 0+ then+ fptools_cv_htype_intmax_t="Word$HTYPE_SIZE"+ else+ fptools_cv_htype_intmax_t="Int$HTYPE_SIZE"+ fi+ fi++fi++ if test "$fptools_cv_htype_sup_intmax_t" = no+ then++ fptools_cv_htype_intmax_t=NotReallyAType+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5+$as_echo "not supported" >&6; }++ fi++ if test "$fptools_cv_htype_sup_intmax_t" = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fptools_cv_htype_intmax_t" >&5+$as_echo "$fptools_cv_htype_intmax_t" >&6; }++cat >>confdefs.h <<_ACEOF+#define HTYPE_INTMAX_T $fptools_cv_htype_intmax_t+_ACEOF++ fi+++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uintmax_t" >&5+$as_echo_n "checking Haskell type for uintmax_t... " >&6; }+ if ${fptools_cv_htype_uintmax_t+:} false; then :+ $as_echo_n "(cached) " >&6+else++ fptools_cv_htype_sup_uintmax_t=yes+ if ac_fn_c_compute_int "$LINENO" "(uintmax_t)0.2 - (uintmax_t)0.4 < 0 ? 0 : 1" "HTYPE_IS_INTEGRAL" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ HTYPE_IS_INTEGRAL=0+fi+++ if test "$HTYPE_IS_INTEGRAL" -eq 0+ then+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>++int+main ()+{+uintmax_t val; memset(val, 0, 0);++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ HTYPE_IS_POINTER=yes+else+ HTYPE_IS_POINTER=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++ if test "$HTYPE_IS_POINTER" = yes+ then+ fptools_cv_htype_uintmax_t="CUIntPtr"+ else+ if ac_fn_c_compute_int "$LINENO" "sizeof(uintmax_t) == sizeof(float)" "HTYPE_IS_FLOAT" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uintmax_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(uintmax_t) == sizeof(double)" "HTYPE_IS_DOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uintmax_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(uintmax_t) == sizeof(long double)" "HTYPE_IS_LDOUBLE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uintmax_t=no+fi++ if test "$HTYPE_IS_FLOAT" -eq 1+ then+ fptools_cv_htype_uintmax_t=Float+ elif test "$HTYPE_IS_DOUBLE" -eq 1+ then+ fptools_cv_htype_uintmax_t=Double+ elif test "$HTYPE_IS_LDOUBLE" -eq 1+ then+ fptools_cv_htype_uintmax_t=LDouble+ else+ fptools_cv_htype_sup_uintmax_t=no+ fi+ fi+ else+ if ac_fn_c_compute_int "$LINENO" "((uintmax_t)(-1)) < ((uintmax_t)0)" "HTYPE_IS_SIGNED" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h>++#if HAVE_TERMIOS_H+# include <termios.h>+#endif++#if HAVE_STRING_H+# include <string.h>+#endif++#if HAVE_CTYPE_H+# include <ctype.h>+#endif++#if HAVE_INTTYPES_H+# include <inttypes.h>+#else+# if HAVE_STDINT_H+# include <stdint.h>+# endif+#endif++#if HAVE_SYS_RESOURCE_H+# include <sys/resource.h>+#endif++#if HAVE_POLL_H+# include <poll.h>+#endif++#if HAVE_SYS_SOCKET_H+# include <sys/socket.h>+#endif++#include <stdlib.h>+"; then :++else+ fptools_cv_htype_sup_uintmax_t=no+fi++ if ac_fn_c_compute_int "$LINENO" "sizeof(uintmax_t) * 8" "HTYPE_SIZE" "+#include <stdbool.h>+#include <stdio.h>+#include <stddef.h>++#if HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif++#if HAVE_UNISTD_H+# include <unistd.h>+#endif++#if HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif++#if HAVE_FCNTL_H+# include <fcntl.h>+#endif++#if HAVE_SIGNAL_H+# include <signal.h>+#endif++#include <time.h> #if HAVE_TERMIOS_H # include <termios.h>
configure.ac view
@@ -7,7 +7,7 @@ AC_CONFIG_HEADERS([include/HsBaseConfig.h include/EventConfig.h]) AC_PROG_CC-dnl make extensions visible to allow feature-tests to detect them lateron+dnl make extensions visible to allow feature-tests to detect them later on AC_USE_SYSTEM_EXTENSIONS AC_MSG_CHECKING(for WINDOWS platform)@@ -37,6 +37,7 @@ AC_CHECK_FUNCS([lstat]) AC_CHECK_LIB([rt], [clock_gettime]) AC_CHECK_FUNCS([clock_gettime])+AC_CHECK_DECLS([CLOCK_PROCESS_CPUTIME_ID], [], [], [[#include <time.h>]]) AC_CHECK_FUNCS([getclock getrusage times]) AC_CHECK_FUNCS([_chsize_s ftruncate]) @@ -82,6 +83,16 @@ # unsetenv AC_CHECK_FUNCS([unsetenv])++AC_CHECK_FUNCS([chmod])+AC_CHECK_FUNCS([dup])+AC_CHECK_FUNCS([fork])+AC_CHECK_FUNCS([getpid])+AC_CHECK_FUNCS([mkfifo])+AC_CHECK_FUNCS([pipe])+AC_CHECK_FUNCS([umask])++AC_CHECK_TYPE([struct rlimit],[AC_DEFINE([HAVE_STRUCT_RLIMIT],[1],[HAVE_STRUCT_RLIMIT])],[],[#include <sys/resource.h>]) ### POSIX.1003.1 unsetenv returns 0 or -1 (EINVAL), but older implementations ### in common use return void.
include/HsBase.h view
@@ -74,9 +74,7 @@ # include <sys/timers.h> # endif #endif-#if HAVE_TIME_H #include <time.h>-#endif #if HAVE_SYS_TIMEB_H && !defined(__FreeBSD__) #include <sys/timeb.h> #endif@@ -132,7 +130,6 @@ #if HAVE_VFORK_H #include <vfork.h> #endif-#include "WCsubst.h" #if defined(_WIN32) /* in Win32Utils.c */@@ -465,7 +462,7 @@ #endif } -#if !defined(_WIN32)+#if !defined(_WIN32) && defined(HAVE_SIGNAL_H) INLINE size_t __hscore_sizeof_siginfo_t (void) { return sizeof(siginfo_t);@@ -543,7 +540,7 @@ } #endif -#if defined(darwin_HOST_OS)+#if darwin_HOST_OS // You should not access _environ directly on Darwin in a bundle/shared library. // See #2458 and http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man7/environ.7.html #include <crt_externs.h>
include/HsBaseConfig.h.in view
@@ -306,16 +306,26 @@ /* The value of SIGINT. */ #undef CONST_SIGINT +/* Define to 1 if you have the `chmod' function. */+#undef HAVE_CHMOD+ /* Define to 1 if you have the `clock_gettime' function. */ #undef HAVE_CLOCK_GETTIME /* Define to 1 if you have the <ctype.h> header file. */ #undef HAVE_CTYPE_H +/* Define to 1 if you have the declaration of `CLOCK_PROCESS_CPUTIME_ID', and+ to 0 if you don't. */+#undef HAVE_DECL_CLOCK_PROCESS_CPUTIME_ID+ /* Define to 1 if you have the declaration of `environ', and to 0 if you don't. */ #undef HAVE_DECL_ENVIRON +/* Define to 1 if you have the `dup' function. */+#undef HAVE_DUP+ /* Define if you have epoll support. */ #undef HAVE_EPOLL @@ -334,12 +344,18 @@ /* Define if you have flock support. */ #undef HAVE_FLOCK +/* Define to 1 if you have the `fork' function. */+#undef HAVE_FORK+ /* Define to 1 if you have the `ftruncate' function. */ #undef HAVE_FTRUNCATE /* Define to 1 if you have the `getclock' function. */ #undef HAVE_GETCLOCK +/* Define to 1 if you have the `getpid' function. */+#undef HAVE_GETPID+ /* Define to 1 if you have the `getrusage' function. */ #undef HAVE_GETRUSAGE @@ -379,9 +395,15 @@ /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H +/* Define to 1 if you have the `mkfifo' function. */+#undef HAVE_MKFIFO+ /* Define if you have open file descriptor lock support. */ #undef HAVE_OFD_LOCKING +/* Define to 1 if you have the `pipe' function. */+#undef HAVE_PIPE+ /* Define if you have poll support. */ #undef HAVE_POLL @@ -403,6 +425,9 @@ /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H +/* HAVE_STRUCT_RLIMIT */+#undef HAVE_STRUCT_RLIMIT+ /* Define to 1 if you have the <sys/epoll.h> header file. */ #undef HAVE_SYS_EPOLL_H @@ -459,6 +484,9 @@ /* Define to 1 if you have the <time.h> header file. */ #undef HAVE_TIME_H++/* Define to 1 if you have the `umask' function. */+#undef HAVE_UMASK /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H
− include/WCsubst.h
@@ -1,20 +0,0 @@-#pragma once--#include "HsFFI.h"-#include <stdlib.h>--HsInt u_iswupper(HsInt wc);-HsInt u_iswdigit(HsInt wc);-HsInt u_iswalpha(HsInt wc);-HsInt u_iswcntrl(HsInt wc);-HsInt u_iswspace(HsInt wc);-HsInt u_iswprint(HsInt wc);-HsInt u_iswlower(HsInt wc);--HsInt u_iswalnum(HsInt wc);--HsInt u_towlower(HsInt wc);-HsInt u_towupper(HsInt wc);-HsInt u_towtitle(HsInt wc);--HsInt u_gencat(HsInt wc);
+ jsbits/base.js view
@@ -0,0 +1,839 @@+//#OPTIONS: CPP+#include "HsBaseConfig.h"++// #define GHCJS_TRACE_IO 1++#ifdef GHCJS_TRACE_IO+function h$logIO() { h$log.apply(h$log, arguments); }+#define TRACE_IO(args...) h$logIO(args)+#else+#define TRACE_IO(args...)+#endif++function h$base_access(file, file_off, mode, c) {+ TRACE_IO("base_access")+#ifndef GHCJS_BROWSER+ if(h$isNode()) {+ h$fs.stat(fd, function(err, fs) {+ if(err) {+ h$handleErrnoC(err, -1, 0, c);+ } else {+ c(mode & fs.mode); // fixme is this ok?+ }+ });+ } else+#endif+ h$unsupported(-1, c);+}++function h$base_chmod(file, file_off, mode, c) {+ TRACE_IO("base_chmod")+#ifndef GHCJS_BROWSER+ if(h$isNode()) {+ h$fs.chmod(h$decodeUtf8z(file, file_off), mode, function(err) {+ h$handleErrnoC(err, -1, 0, c);+ });+ } else+#endif+ h$unsupported(-1, c);+}++function h$base_close(fd, c) {+ TRACE_IO("base_close fd: " + fd)+ var fdo = h$base_fds[fd];+ if(fdo) {+ delete h$base_fds[fd];+ if(--fdo.refs < 1) {+ TRACE_IO("base_close: closing underlying fd")+ if(fdo.close) {+ fdo.close(fd, fdo, c);+ } else {+ c(0);+ }+ } else {+ TRACE_IO("base_close: remaining references, not closing underlying fd")+ c(0);+ }+ } else {+ TRACE_IO("base_close: file descriptor not found, already closed?")+ h$errno = CONST_EINVAL;+ c(-1);+ }+}++function h$base_dup(fd, c) {+ // h$log("h$base_dup al: " + arguments.length);+ h$base_dup2(fd, h$base_fdN--, c);+}++function h$base_dup2(fd, new_fd, c) {+ TRACE_IO("base_dup2 " + fd + " " + new_fd)+ // if(new_fd >= 0 && new_fd <= 2) {++ // }+ // h$log("h$base_dup2 al: " + arguments.length);+ // if(fd >= 0 && fd < 2) {+ // h$errno = CONST_EINVAL;+ // c(-1);+ // fixme make sure it can't be called again!+ // return;+ // } // && new_fd )++ /* Fixme:+ The two descriptors do not share file descriptor flags+ (the close-on-exec flag). The close-on-exec flag+ (FD_CLOEXEC; see fcntl(2)) for the duplicate descriptor is off.+ */+ var fdo = h$base_fds[fd];+ if(!fdo) {+ TRACE_IO("file descriptor not found")+ h$errno = CONST_EINVAL;+ c(-1);+ } else {+ var new_fdo = h$base_fds[new_fd];+ function f() {+ h$base_fds[new_fd] = fdo;+ fdo.refs++;+ c(new_fd);+ }+ if(new_fdo) {+ TRACE_IO("closing existing fd")+ h$base_close(new_fd, f);+ } else {+ f();+ } // h$new_fdo.close();+ }+}++function h$base_fstat(fd, stat, stat_off, c) {+ TRACE_IO("base_stat")+#ifndef GHCJS_BROWSER+ if(h$isNode()) {+ h$fs.fstat(fd, function(err, fs) {+ if(err) {+ h$handleErrnoC(err, -1, 0, c);+ } else {+ h$base_fillStat(fs, stat, stat_off);+ c(0);+ }+ });+ } else+#endif+ h$unsupported(-1, c);+}++function h$base_isatty(fd) {+ TRACE_IO("base_isatty " + fd)+ // return 1; // fixme debug+ var fdo = h$base_fds[fd];+ if(fdo && typeof fdo.isatty !== 'undefined') {+ if(typeof fdo.isatty === 'function') return fdo.isatty() ? 1 : 0;+ return fdo.isatty ? 1 : 0;+ }+ return 0;+}+++#define TWO_PWR_32_DBL_ 0x100000000+#define TWO_PWR_63_DBL_ 0x8000000000000000+#define CLOSEST_FLOAT_NUMBER(h,l) (((h)*TWO_PWR_32_DBL_) + ((l)>>>0))++/**+ * Returns a 64-bit represention of the given number.+ * NaN will be returned as zero.+ * Infinity is converted to max value and+ * -Infinity to min value.+ * @param {f} The number in question.+ * @param {c} the continuation taking high and low bits+ */+function h$long_from_number(f,c) {+ if (f > 0) {+ if (f >= TWO_PWR_63_DBL_) {+ // return max value+ return c(0x7FFFFFFF,0xFFFFFFFF);+ }+ return c(f / TWO_PWR_32_DBL_, f);+ } else if (f < 0) {+ if (f <= -TWO_PWR_63_DBL_) {+ // return min value+ return c(0x80000000,0);+ }+ var h = -f / TWO_PWR_32_DBL_;+ var l = -f;+ // negate h l+ var nl = (~l + 1) | 0;+ var nh = (~h + !nl) | 0;+ return c(nh,nl);+ } else {+ // NaN or 0.+ return c(0,0);+ }+}++function h$base_lseek(fd, pos_h, pos_l, whence, c) {+ TRACE_IO("base_lseek")+#ifndef GHCJS_BROWSER+ if(h$isNode()) {+ var p = CLOSEST_FLOAT_NUMBER(pos_h,pos_l);+ var o = h$base_fds[fd];+ if(!o) {+ h$errno = CONST_BADF;+ c(-1,-1);+ } else {+ switch(whence) {+ case 0: /* SET */+ o.pos = p;+ c(pos_h, pos_l);+ break;+ case 1: /* CUR */+ o.pos += p;+ h$long_from_number(o.pos,c);+ break;+ case 2: /* END */+ h$fs.fstat(fd, function(err, fs) {+ if(err) {+ h$setErrno(err);+ c(-1,-1);+ } else {+ o.pos = fs.size + p;+ h$long_from_number(o.pos,c);+ }+ });+ break;+ default:+ h$errno = CONST_EINVAL;+ c(-1,-1);+ }+ }+ } else {+#endif+ h$unsupported();+ c(-1, -1);+#ifndef GHCJS_BROWSER+ }+#endif+}++function h$base_lstat(file, file_off, stat, stat_off, c) {+ TRACE_IO("base_lstat")+#ifndef GHCJS_BROWSER+ if(h$isNode()) {+ h$fs.lstat(h$decodeUtf8z(file, file_off), function(err, fs) {+ if(err) {+ h$handleErrnoC(err, -1, 0, c);+ } else {+ h$base_fillStat(fs, stat, stat_off);+ c(0);+ }+ });+ } else+#endif+ h$unsupported(-1, c);+}+function h$base_open(file, file_off, how, mode, c) {+#ifndef GHCJS_BROWSER+ if(h$isNode()) {+ var flags, off;+ var fp = h$decodeUtf8z(file, file_off);+ TRACE_IO("base_open: " + fp)+ var acc = how & h$base_o_accmode;+ // passing a number lets node.js use it directly as the flags (undocumented)+ if(acc === h$base_o_rdonly) {+ flags = h$processConstants['fs']['O_RDONLY'];+ } else if(acc === h$base_o_wronly) {+ flags = h$processConstants['fs']['O_WRONLY'];+ } else { // r+w+ flags = h$processConstants['fs']['O_RDWR'];+ }+ off = (how & h$base_o_append) ? -1 : 0;+ flags = flags | ((how & h$base_o_trunc) ? h$processConstants['fs']['O_TRUNC'] : 0)+ | ((how & h$base_o_creat) ? h$processConstants['fs']['O_CREAT'] : 0)+ | ((how & h$base_o_excl) ? h$processConstants['fs']['O_EXCL'] : 0)+ | ((how & h$base_o_append) ? h$processConstants['fs']['O_APPEND'] : 0);+ h$fs.open(fp, flags, mode, function(err, fd) {+ if(err) {+ h$handleErrnoC(err, -1, 0, c);+ } else {+ var f = function(p) {+ h$base_fds[fd] = { read: h$base_readFile+ , write: h$base_writeFile+ , close: h$base_closeFile+ , fd: fd+ , pos: p+ , refs: 1+ };+ TRACE_IO("base_open: " + fp + " -> " + fd)+ c(fd);+ }+ if(off === -1) {+ h$fs.stat(fp, function(err, fs) {+ if(err) h$handleErrnoC(err, -1, 0, c); else f(fs.size);+ });+ } else {+ f(0);+ }+ }+ });+ } else+#endif+ h$unsupported(-1, c);+}+function h$base_read(fd, buf, buf_off, n, c) {+ TRACE_IO("base_read: " + fd)+ var fdo = h$base_fds[fd];+ if(fdo && fdo.read) {+ fdo.read(fd, fdo, buf, buf_off, n, c);+ } else {+ h$fs.read(fd, buf.u8, buf_off, n, null, function(err, bytesRead, buf0) {+ h$handleErrnoC(err, -1, bytesRead, c);+ });+ }+}+function h$base_stat(file, file_off, stat, stat_off, c) {+ TRACE_IO("base_stat")+#ifndef GHCJS_BROWSER+ if(h$isNode()) {+ h$fs.stat(h$decodeUtf8z(file, file_off), function(err, fs) {+ if(err) {+ h$handleErrnoC(err, -1, 0, c);+ } else {+ h$base_fillStat(fs, stat, stat_off);+ c(0);+ }+ });+ } else+#endif+ h$unsupported(-1, c);+}+function h$base_umask(mode) {+ TRACE_IO("base_umask: " + mode)+#ifndef GHCJS_BROWSER+ if(h$isNode()) return process.umask(mode);+#endif+ return 0;+}++function h$base_write(fd, buf, buf_off, n, c) {+// fd: file descriptor number+// buf: buffer to write+// buf_off: offset in the buffer+// n: number of bytes to write+// c: continuation+ TRACE_IO("base_write: " + fd)++ var fdo = h$base_fds[fd];++ if(fdo && fdo.write) {+ fdo.write(fd, fdo, buf, buf_off, n, c);+ } else {+ h$fs.write(fd, buf.u8, buf_off, n, function(err, bytesWritten, buf0) {+ h$handleErrnoC(err, -1, bytesWritten, c);+ });+ }+}++function h$base_ftruncate(fd, pos_h, pos_l, c) {+ TRACE_IO("base_ftruncate")+#ifndef GHCJS_BROWSER+ if(h$isNode()) {+ h$fs.ftruncate(fd, CLOSEST_FLOAT_NUMBER(pos_h,pos_l), function(err) {+ h$handleErrnoC(err, -1, 0, c);+ });+ } else+#endif+ h$unsupported(-1, c);+}+function h$base_unlink(file, file_off, c) {+ TRACE_IO("base_unlink")+#ifndef GHCJS_BROWSER+ if(h$isNode()) {+ h$fs.unlink(h$decodeUtf8z(file, file_off), function(err) {+ h$handleErrnoC(err, -1, 0, c);+ });+ } else+#endif+ h$unsupported(-1, c);+}+function h$base_getpid() {+ TRACE_IO("base_getpid")+#ifndef GHCJS_BROWSER+ if(h$isNode()) return process.pid;+#endif+ return 0;+}+function h$base_link(file1, file1_off, file2, file2_off, c) {+ TRACE_IO("base_link")+#ifndef GHCJS_BROWSER+ if(h$isNode()) {+ h$fs.link(h$decodeUtf8z(file1, file1_off), h$decodeUtf8z(file2, file2_off), function(err) {+ h$handleErrnoC(err, -1, 0, c);+ });+ } else+#endif+ h$unsupported(-1, c);+}+function h$base_mkfifo(file, file_off, mode, c) {+ throw "h$base_mkfifo";+}+function h$base_sigemptyset(sigset, sigset_off) {+ return 0;+ // throw "h$base_sigemptyset";+}+function h$base_sigaddset(sigset, sigset_off, sig) {+ return 0;+ // throw "h$base_sigaddset";+}+function h$base_sigprocmask(sig, sigset1, sigset1_off, sigset2, sigset2_off) {+ return 0;+ // throw "h$base_sigprocmask";+}+function h$base_tcgetattr(attr, termios, termios_off) {+ return 0;+}+function h$base_tcsetattr(attr, val, termios, termios_off) {+ return 0;+}+function h$base_utime(file, file_off, timbuf, timbuf_off, c) {+ TRACE_IO("base_utime")+#ifndef GHCJS_BROWSER+ if(h$isNode()) {+ h$fs.fstat(h$decodeUtf8z(file, file_off), function(err, fs) {+ if(err) {+ h$handleErrnoC(err, 0, -1, c); // fixme+ } else {+ h$long_from_number(fs.atime.getTime(), (h,l) => {+ timbuf.i3[0] = h;+ timbuf.i3[1] = l;+ });+ h$long_from_number(fs.mtime.getTime(), (h,l) => {+ timbuf.i3[2] = h;+ timbuf.i3[3] = l;+ });+ h$long_from_number(fs.ctime.getTime(), (h,l) => {+ timbuf.i3[4] = h;+ timbuf.i3[5] = l;+ });+ c(0);+ }+ });+ } else+#endif+ h$unsupported(-1, c);+}+function h$base_waitpid(pid, stat, stat_off, options, c) {+ throw "h$base_waitpid";+}+/** @const */ var h$base_o_rdonly = 0x00000;+/** @const */ var h$base_o_wronly = 0x00001;+/** @const */ var h$base_o_rdwr = 0x00002;+/** @const */ var h$base_o_accmode = 0x00003;+/** @const */ var h$base_o_append = 0x00008;+/** @const */ var h$base_o_creat = 0x00200;+/** @const */ var h$base_o_trunc = 0x00400;+/** @const */ var h$base_o_excl = 0x00800;+/** @const */ var h$base_o_noctty = 0x20000;+/** @const */ var h$base_o_nonblock = 0x00004;+/** @const */ var h$base_o_binary = 0x00000;++function h$base_c_s_isreg(mode) {+ return 1;+}+function h$base_c_s_ischr(mode) {+ return 0;+}+function h$base_c_s_isblk(mode) {+ return 0;+}+function h$base_c_s_isdir(mode) {+ return 0; // fixme+}+function h$base_c_s_isfifo(mode) {+ return 0;+}++#ifndef GHCJS_BROWSER+function h$base_fillStat(fs, b, off) {+ if(off%4) throw "h$base_fillStat: not aligned";+ var o = off>>2;+ b.i3[o+0] = fs.mode;+ h$long_from_number(fs.size, (h,l) => {+ b.i3[o+1] = h;+ b.i3[o+2] = l;+ });++ b.i3[o+3] = 0; // fixme+ b.i3[o+4] = 0; // fixme+ b.i3[o+5] = fs.dev;+ h$long_from_number(fs.ino, (h,l) => {+ b.i3[o+6] = h;+ b.i3[o+7] = l;+ });+ b.i3[o+8] = fs.uid;+ b.i3[o+9] = fs.gid;+}+#endif++// [mode,size1,size2,mtime1,mtime2,dev,ino1,ino2,uid,gid] all 32 bit+/** @const */ var h$base_sizeof_stat = 40;++function h$base_st_mtime(stat, stat_off) {+ RETURN_UBX_TUP2(stat.i3[(stat_off>>2)+3], stat.i3[(stat_off>>2)+4]);+}++function h$base_st_size(stat, stat_off) {+ RETURN_UBX_TUP2(stat.i3[(stat_off>>2)+1], stat.i3[(stat_off>>2)+2]);+}++function h$base_st_mode(stat, stat_off) {+ return stat.i3[stat_off>>2];+}++function h$base_st_dev(stat, stat_off) {+ return stat.i3[(stat_off>>2)+5];+}++function h$base_st_ino(stat, stat_off) {+ RETURN_UBX_TUP2(stat.i3[(stat_off>>2)+6], stat.i3[(stat_off>>2)+7]);+}++/** @const */ var h$base_echo = 1;+/** @const */ var h$base_tcsanow = 2;+/** @const */ var h$base_icanon = 4;+/** @const */ var h$base_vmin = 8;+/** @const */ var h$base_vtime = 16;+/** @const */ var h$base_sigttou = 0;+/** @const */ var h$base_sig_block = 0;+/** @const */ var h$base_sig_setmask = 0;+/** @const */ var h$base_f_getfl = 0;+/** @const */ var h$base_f_setfl = 0;+/** @const */ var h$base_f_setfd = 0;+/** @const */ var h$base_fd_cloexec = 0;+/** @const */ var h$base_sizeof_termios = 4;+/** @const */ var h$base_sizeof_sigset_t = 4;++function h$base_lflag(termios, termios_off) {+ return 0;+}++function h$base_poke_lflag(termios, termios_off, flag) {+ return 0;+}++function h$base_ptr_c_cc(termios, termios_off) {+ RETURN_UBX_TUP2(h$newByteArray(8), 0);+}++/** @const */ var h$base_default_buffer_size = 32768;++function h$base_c_s_issock(mode) {+ return 0; // fixme+}++/** @const */ var h$base_SEEK_SET = 0;+/** @const */ var h$base_SEEK_CUR = 1;+/** @const */ var h$base_SEEK_END = 2;++function h$base_set_saved_termios(a, b, c) {+ RETURN_UBX_TUP2(null, 0);+}++function h$base_get_saved_termios(r) {+ RETURN_UBX_TUP2(null, 0);+}++// fixme+function h$lockFile(fd, dev, ino, for_writing) {+ TRACE_IO("lockFile:" + fd)+ return 0;+}+function h$unlockFile(fd) {+ TRACE_IO("unlockFile:" + fd)+ return 0;+}++++// engine-dependent setup+var h$base_readStdin , h$base_writeStderr, h$base_writeStdout;+var h$base_isattyStdin = false, h$base_isattyStdout = false, h$base_isattyStderr = false;+var h$base_closeStdin = null, h$base_closeStderr = null, h$base_closeStdout = null;+var h$base_readFile, h$base_writeFile, h$base_closeFile;+#ifndef GHCJS_BROWSER+var h$base_stdin_waiting = new h$Queue();+var h$base_stdin_chunk = { buf: null+ , pos: 0+ , processing: false+ };+var h$base_stdin_eof = false;+var h$base_process_stdin = function() {+ var c = h$base_stdin_chunk;+ var q = h$base_stdin_waiting;+ if(!q.length() || c.processing) return;+ c.processing = true;+ if(!c.buf) { c.pos = 0; c.buf = process.stdin.read(); }+ while(c.buf && q.length()) {+ var x = q.dequeue();+ var n = Math.min(c.buf.length - c.pos, x.n);+ for(var i=0;i<n;i++) {+ x.buf.u8[i+x.off] = c.buf[c.pos+i];+ }+ c.pos += n;+ x.c(n);+ if(c.pos >= c.buf.length) c.buf = null;+ if(!c.buf && q.length()) { c.pos = 0; c.buf = process.stdin.read(); }+ }+ while(h$base_stdin_eof && q.length()) q.dequeue().c(0);+ c.processing = false;+}++if(h$isNode()) {+ h$base_closeFile = function(fd, fdo, c) {+ TRACE_IO("base_closeFile: " + fd + " (" + fdo.fd + ")")+ var real_fd = typeof fdo.fd === 'number' ? fdo.fd : fd;+ h$fs.close(real_fd, function(err) {+ delete h$base_fds[fd];+ h$handleErrnoC(err, -1, 0, c);+ });+ }++ h$base_readFile = function(fd, fdo, buf, buf_offset, n, c) {+ var pos = typeof fdo.pos === 'number' ? fdo.pos : null;+ TRACE_IO("base_readFile: " + fd + " (" + fdo.fd + ") " + pos + " " + buf_offset + " " + n)+ var real_fd = typeof fdo.fd === 'number' ? fdo.fd : fd;+ h$fs.read(real_fd, Buffer.alloc(n), 0, n, pos, function(err, bytesRead, nbuf) {+ if(err) {+ h$setErrno(err);+ c(-1);+ } else {+ for(var i=bytesRead-1;i>=0;i--) buf.u8[buf_offset+i] = nbuf[i];+ if(typeof fdo.pos === 'number') fdo.pos += bytesRead;+ c(bytesRead);+ }+ });+ }++ h$base_readStdin = function(fd, fdo, buf, buf_offset, n, c) {+ TRACE_IO("read stdin")+ h$base_stdin_waiting.enqueue({buf: buf, off: buf_offset, n: n, c: c});+ h$base_process_stdin();+ }++ h$base_closeStdin = function(fd, fdo, c) {+ TRACE_IO("close stdin")+ // process.stdin.close(); fixme+ c(0);+ }++ h$base_writeFile = function(fd, fdo, buf, buf_offset, n, c) {+ var pos = typeof fdo.pos === 'number' ? fdo.pos : null;+ TRACE_IO("base_writeFile: " + fd + " (" + fdo.fd + ") " + pos + " " + buf_offset + " " + n)+ var nbuf = Buffer.alloc(n);+ for(var i=0;i<n;i++) nbuf[i] = buf.u8[i+buf_offset];+ var real_fd = typeof fdo.fd === 'number' ? fdo.fd : fd;+ if(typeof fdo.pos === 'number') fdo.pos += n;+ h$fs.write(real_fd, nbuf, 0, n, pos, function(err, bytesWritten) {+ TRACE_IO("written file: " + fd + " (" + fdo.fd + ")")+ if(err) {+ h$setErrno(err);+ if(typeof fdo.pos === 'number') fdo.pos -= n;+ if(h$errno === CONST_EAGAIN)+ setTimeout(function() { h$base_writeFile(fd, fdo, buf, buf_offset, n, c); }, 20);+ else c(-1);+ } else {+ if(typeof fdo.pos === 'number') fdo.pos += bytesWritten - n;+ c(bytesWritten);+ }+ });+ }++ h$base_writeStdout = function(fd, fdo, buf, buf_offset, n, c) {+ TRACE_IO("write stdout")+ h$base_writeFile(1, fdo, buf, buf_offset, n, c);+ }++ h$base_closeStdout = function(fd, fdo, c) {+ TRACE_IO("close stdout")+ // not actually closed, fixme?+ c(0);+ }++ h$base_writeStderr = function(fd, fdo, buf, buf_offset, n, c) {+ TRACE_IO("write stderr")+ h$base_writeFile(2, fdo, buf, buf_offset, n, c);+ }++ h$base_closeStderr = function(fd, fdo, c) {+ TRACE_IO("close stderr")+ // not actually closed, fixme?+ c(0);+ }++ process.stdin.on('readable', h$base_process_stdin);+ process.stdin.on('end', function() { h$base_stdin_eof = true; h$base_process_stdin(); });++ h$base_isattyStdin = function() { return process.stdin.isTTY; };+ h$base_isattyStdout = function() { return process.stdout.isTTY; };+ h$base_isattyStderr = function() { return process.stderr.isTTY; };++} else if (h$isJsShell()) {+ h$base_readStdin = function(fd, fdo, buf, buf_offset, n, c) {+ c(0);+ }+ h$base_writeStdout = function(fd, fdo, buf, buf_offset, n, c) {+ putstr(h$decodeUtf8(buf, n, buf_offset));+ c(n);+ }+ h$base_writeStderr = function(fd, fdo, buf, buf_offset, n, c) {+ printErr(h$decodeUtf8(buf, n, buf_offset));+ c(n);+ }+} else if(h$isJsCore()) {+ h$base_readStdin = function(fd, fdo, buf, buf_offset, n, c) {+ c(0);+ }+ var h$base_stdoutLeftover = { f: print, val: null };+ var h$base_stderrLeftover = { f: debug, val: null };+ var h$base_writeWithLeftover = function(buf, n, buf_offset, c, lo) {+ var lines = h$decodeUtf8(buf, n, buf_offset).split(/\r?\n/);+ if(lines.length === 1) {+ if(lines[0].length) {+ if(lo.val !== null) lo.val += lines[0];+ else lo.val = lines[0];+ }+ } else {+ lo.f(((lo.val !== null) ? lo.val : '') + lines[0]);+ for(var i=1;i<lines.length-1;i++) lo.f(lines[i]);+ if(lines[lines.length-1].length) lo.val = lines[lines.length-1];+ else lo.val = null;+ }+ c(n);+ }+ h$base_writeStdout = function(fd, fdo, buf, buf_offset, n, c) {+ h$base_writeWithLeftover(buf, n, buf_offset, c, h$base_stdoutLeftover);+ }+ h$base_writeStderr = function(fd, fdo, buf, buf_offset, n, c) {+ // writing to stderr not supported, write to stdout+ h$base_writeWithLeftover(buf, n, buf_offset, c, h$base_stderrLeftover);+ }+} else { // browser / fallback+#endif+ h$base_readStdin = function(fd, fdo, buf, buf_offset, n, c) {+ c(0);+ }+ h$base_writeStdout = function(fd, fdo, buf, buf_offset, n, c) {+ console.log(h$decodeUtf8(buf, n, buf_offset));+ c(n);+ }+ h$base_writeStderr = function(fd, fdo, buf, buf_offset, n, c) {+ console.log(h$decodeUtf8(buf, n, buf_offset));+ c(n);+ }+#ifndef GHCJS_BROWSER+}+#endif++var h$base_stdin_fd =+ { read: h$base_readStdin+ , close: h$base_closeStdin+ , isatty: h$base_isattyStdin+ , refs: 1+ };+var h$base_stdout_fd =+ { write: h$base_writeStdout+ , close: h$base_closeStdout+ , isatty: h$base_isattyStdout+ , refs: 1+ };+var h$base_stderr_fd =+ { write: h$base_writeStderr+ , close: h$base_closeStderr+ , isatty: h$base_isattyStderr+ , refs: 1+ };++var h$base_fdN = -2; // negative file descriptors are 'virtual', -1 is already used to indicated error+var h$base_fds = [h$base_stdin_fd, h$base_stdout_fd, h$base_stderr_fd];++function h$shutdownHaskellAndExit(code, fast) {+#ifndef GHCJS_BROWSER+#ifdef GHCJS_LOG_BUFFER+ if(h$isNode()) console.log(h$logBuffer);+ if(h$isJsShell() || h$isJsCore()) print(h$logBuffer);+#endif+#endif+ h$exitProcess(code);+}++// RAND_MAX = 32767+function h$rand() {+ return (32768 * Math.random()) & 32767;+}++// SIGUSR1, SIGTERM, SIGINT, SIGPIPE, SIGHUP, SIGTERM, SIGINT+// SIGBREAK, SIGWINCH, SIGKILL, SIGSTOP, SIGBUS, SIGFPE+// SIGSEGV, SIGILL++// returns old action code+function h$stg_sig_install(sigNo, actionCode, sigSet_d, sigSet_o) {+ // XXX dummy implementation+ return 0;+}++const h$putchar_buf = h$newByteArray(1);++function h$putchar(c) {+ h$putchar_buf.u8[0] = c;+ h$base_write(1, h$putchar_buf, 0, 1, null);+ return h$errno;+}++function h$__hscore_set_errno(n) {+ h$errno = n;+}++/*******************************************+ * Directory API+ *******************************************/++function h$opendir(path) {+ if(!h$isNode()) {+ throw "h$opendir unsupported";+ }++ const d = fs.opendirSync(h$decodeUtf8z(path,0));+ RETURN_UBX_TUP2(d,0);+}++function h$closedir(d,o) {+ if(!h$isNode()) {+ throw "h$closedir unsupported";+ }+ d.closeSync();+ return 0;+}++function h$readdir(d,o) {+ if(!h$isNode()) {+ throw "h$readdir unsupported";+ }+ const c = d.readSync();+ RETURN_UBX_TUP2(c,0);+}++function h$__hscore_readdir(d,o,dst_a,dst_o) {+ if(!h$isNode()) {+ throw "h$readdir unsupported";+ }+ const e = d.readSync();++ if (!dst_a.arr) dst_a.arr = [];+ dst_a.arr[dst_o*2] = [e,0];+ return 0;+}++function h$__hscore_free_dirent(a,o) {+}++function h$__hscore_d_name(a,o) {+ RETURN_UBX_TUP2(h$encodeModifiedUtf8(a.name),0);+}
+ jsbits/errno.js view
@@ -0,0 +1,102 @@+//#OPTIONS: CPP++#include "HsBaseConfig.h"++#ifdef GHCJS_TRACE_ERRNO+function h$logErrno() { h$log.apply(h$log,arguments); }+#define TRACE_ERRNO(args...) h$logErrno(args)+#else+#define TRACE_ERRNO(args...)+#endif++var h$errno = 0;++function h$__hscore_get_errno() {+ TRACE_ERRNO("hscore_get_errno: " + h$errno);+ return h$errno;+}++function h$unsupported(status, c) {+ h$errno = 12456;+ if(c) c(status);+ return status;+}++function h$strerror(err) {+ if(err === 12456) {+ RETURN_UBX_TUP2(h$encodeUtf8("operation unsupported on this platform"), 0);+ }+#ifdef GHCJS_BROWSER+ RETURN_UBX_TUP2(h$encodeUtf8("unknown error"), 0);+#else+ RETURN_UBX_TUP2(h$encodeUtf8(h$errorStrs[err] || "unknown error"), 0);+#endif+}++#ifndef GHCJS_BROWSER+function h$setErrno(e) {+ TRACE_ERRNO("setErrno: " + e);+ var es = e.toString();+ var getErr = function() {+ if(es.indexOf('ENOTDIR') !== -1) return CONST_ENOTDIR;+ if(es.indexOf('EISDIR') !== -1) return CONST_EISDIR;+ if(es.indexOf('ENOENT') !== -1) return CONST_ENOENT;+ if(es.indexOf('EEXIST') !== -1) return CONST_EEXIST;+ if(es.indexOf('ENETUNREACH') !== -1) return CONST_EINVAL; // fixme+ if(es.indexOf('EPERM') !== -1) return CONST_EPERM;+ if(es.indexOf('EMFILE') !== -1) return CONST_EMFILE;+ if(es.indexOf('EPIPE') !== -1) return CONST_EPIPE;+ if(es.indexOf('EAGAIN') !== -1) return CONST_EAGAIN;+ if(es.indexOf('EINVAL') !== -1) return CONST_EINVAL;+ if(es.indexOf('ESPIPE') !== -1) return CONST_ESPIPE;+ if(es.indexOf('EBADF') !== -1) return CONST_EBADF;+ if(es.indexOf('Bad argument') !== -1) return CONST_ENOENT; // fixme?+ throw ("setErrno not yet implemented: " + e);++ }+ h$errno = getErr();+}++var h$errorStrs = { CONST_E2BIG: "Argument list too long"+ , CONST_EACCESS: "Permission denied"+ , CONST_EINVAL: "Invalid argument"+ , CONST_EBADF: "Bad file descriptor"+ , CONST_ENOTDIR: "Not a directory"+ , CONST_EISDIR: "Illegal operation on a directory"+ , CONST_ENOENT: "No such file or directory"+ , CONST_EPERM: "Operation not permitted"+ , CONST_EEXIST: "File exists"+ , CONST_EMFILE: "Too many open files"+ , CONST_EPIPE: "Broken pipe"+ , CONST_EAGAIN: "Resource temporarily unavailable"+ , CONST_ESPIPE: "Illegal seek"+ }++function h$handleErrno(r_err, f) {+ try {+ return f();+ } catch(e) {+ h$setErrno(e);+ return r_err;+ }+}++function h$handleErrnoS(r_err, r_success, f) {+ try {+ f();+ return r_success;+ } catch(e) {+ h$setErrno(e);+ return r_err;+ }+}++function h$handleErrnoC(err, r_err, r_success, c) {+ if(err) {+ h$setErrno(err);+ c(r_err);+ } else {+ c(r_success);+ }+}+#endif
+ jsbits/platform.js view
@@ -0,0 +1,111 @@+//#OPTIONS: CPP++/* platform-specific setup */++/*+ if browser mode is active (GHCJS_BROWSER is defined), all the runtime platform+ detection code should be removed by the preprocessor. The h$isPlatform variables+ are undeclared.++ in non-browser mode, use h$isNode, h$isJsShell, h$isBrowser to find the current+ platform.++ more platforms should be added here in the future+*/+#ifndef GHCJS_BROWSER+var h$isNode_ = false; // runtime is node.js+var h$isJvm_ = false; // runtime is JVM+var h$isJsShell_ = false; // runtime is SpiderMonkey jsshell+var h$isJsCore_ = false; // runtime is JavaScriptCore jsc+var h$isBrowser_ = false; // running in browser or everything else++var h$isGHCJSi_ = false; // Code is GHCJSi (browser or node)++function h$isNode() {+ return h$isNode_;+}++function h$isJvm() {+ return h$isJvm_;+}++function h$isJsShell() {+ return h$isJsShell_;+}++function h$isJsCore() {+ return h$isJsCore_;+}++function h$isBrowser() {+ return h$isBrowser_;+}++function h$isGHCJSi() {+ return h$isGHCJSi_;+}++// load all required node.js modules+if(typeof process !== 'undefined' && (typeof h$TH !== 'undefined' || (typeof require !== 'undefined' && typeof module !== 'undefined' && module.exports))) {+ h$isNode_ = true;+ // we have to use these names for the closure compiler externs to work+ var fs = require('fs');+ var path = require('path');+ var os = require('os');+ var child_process = require('child_process');+ var h$fs = fs;+ var h$path = path;+ var h$os = os;+ var h$child = child_process;+ var h$process = process;+ function h$getProcessConstants() {+ // this is a non-public API, but we need these values for things like file access modes+ var cs = process['binding']('constants');+ if(typeof cs.os === 'object' && typeof cs.fs === 'object') {+ return cs;+ } else {+ // earlier node.js versions (4.x and older) have all constants directly in the constants object+ // construct something that resembles the hierarchy of the object in new versions:+ return { 'fs': cs+ , 'crypto': cs+ , 'os': { 'UV_UDP_REUSEADDR': cs['UV_UDP_REUSEADDR']+ , 'errno': cs+ , 'signals': cs+ }+ };+ }+ }+ var h$processConstants = h$getProcessConstants();+} else if(typeof Java !== 'undefined') {+ h$isJvm_ = true;+ this.console = {+ log: function(s) {+ java.lang.System.out.print(s);+ }+ };+} else if(typeof snarf !== 'undefined' && typeof print !== 'undefined' && typeof quit !== 'undefined') {+ h$isJsShell_ = true;+ this.console = { log: this.print };+} else if(typeof numberOfDFGCompiles !== 'undefined' && typeof jscStack !== 'undefined') {+ h$isJsCore_ = true;+} else {+ h$isBrowser_ = true;+}+if(typeof global !== 'undefined' && global.h$GHCJSi) {+ h$isGHCJSi_ = true;+}+#endif++function h$getGlobal(that) {+ if(typeof global !== 'undefined') return global;+ return that;+}++#ifdef GHCJS_BROWSER+// IE 8 doesn't support Date.now(), shim it+if (!Date.now) {+ Date.now = function now() {+ return +(new Date);+ };+}+#endif