packages feed

base 4.12.0.0 → 4.13.0.0

raw patch · 139 files changed

+8991/−7925 lines, 139 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Control.Monad.Instances: fail :: Monad m => String -> m a
- Data.Data: instance (a Data.Type.Equality.~ b, Data.Data.Data a) => Data.Data.Data (a Data.Type.Equality.:~: b)
- Data.String: instance (a Data.Type.Equality.~ GHC.Types.Char) => Data.String.IsString [a]
- Data.Type.Coercion: instance forall k k1 (a :: k1). Data.Type.Coercion.TestCoercion ((Data.Type.Equality.:~~:) a)
- Data.Type.Equality: instance forall k (a :: k) (b :: k). (a Data.Type.Equality.~ b) => GHC.Enum.Bounded (a Data.Type.Equality.:~: b)
- Data.Type.Equality: instance forall k (a :: k) (b :: k). (a Data.Type.Equality.~ b) => GHC.Enum.Enum (a Data.Type.Equality.:~: b)
- Data.Type.Equality: instance forall k (a :: k) (b :: k). (a Data.Type.Equality.~ b) => GHC.Read.Read (a Data.Type.Equality.:~: b)
- Data.Type.Equality: instance forall k (a :: k) (b :: k). (a ~ b) => a Data.Type.Equality.~ b
- Data.Type.Equality: instance forall k k1 (a :: k1). Data.Type.Equality.TestEquality ((Data.Type.Equality.:~~:) a)
- Data.Type.Equality: instance forall k2 k1 (a :: k1) (b :: k2). (a GHC.Types.~~ b) => GHC.Enum.Bounded (a Data.Type.Equality.:~~: b)
- Data.Type.Equality: instance forall k2 k1 (a :: k1) (b :: k2). (a GHC.Types.~~ b) => GHC.Enum.Enum (a Data.Type.Equality.:~~: b)
- Data.Type.Equality: instance forall k2 k1 (a :: k1) (b :: k2). (a GHC.Types.~~ b) => GHC.Read.Read (a Data.Type.Equality.:~~: b)
- Data.Type.Equality: instance forall k2 k1 (a :: k1) (b :: k2). GHC.Classes.Eq (a Data.Type.Equality.:~~: b)
- Data.Type.Equality: instance forall k2 k1 (a :: k1) (b :: k2). GHC.Classes.Ord (a Data.Type.Equality.:~~: b)
- Data.Type.Equality: instance forall k2 k1 (a :: k1) (b :: k2). GHC.Show.Show (a Data.Type.Equality.:~~: b)
- GHC.Exts: data Proxy# :: forall k0. () => k0 -> TYPE TupleRep ([] :: [RuntimeRep])
- GHC.Generics: instance forall k1 k2 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1). GHC.Base.Monoid (f (g p)) => GHC.Base.Monoid ((GHC.Generics.:.:) f g p)
- GHC.Generics: instance forall k1 k2 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1). GHC.Base.Semigroup (f (g p)) => GHC.Base.Semigroup ((GHC.Generics.:.:) f g p)
- Text.Printf: instance (a Data.Type.Equality.~ ()) => Text.Printf.HPrintfType (GHC.Types.IO a)
- Text.Printf: instance (a Data.Type.Equality.~ ()) => Text.Printf.PrintfType (GHC.Types.IO a)
+ Control.Exception: pattern ErrorCall :: String -> ErrorCall
+ Control.Exception.Base: pattern ErrorCall :: String -> ErrorCall
+ Control.Monad: class Monad m => MonadFail m
+ Data.Data: instance (a GHC.Types.~ b, Data.Data.Data a) => Data.Data.Data (a Data.Type.Equality.:~: b)
+ Data.Foldable: foldMap' :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
+ Data.String: instance (a GHC.Types.~ GHC.Types.Char) => Data.String.IsString [a]
+ Data.Type.Coercion: instance forall k1 k (a :: k1). Data.Type.Coercion.TestCoercion ((Data.Type.Equality.:~~:) a)
+ Data.Type.Equality: instance forall k (a :: k) (b :: k). (a GHC.Types.~ b) => GHC.Enum.Bounded (a Data.Type.Equality.:~: b)
+ Data.Type.Equality: instance forall k (a :: k) (b :: k). (a GHC.Types.~ b) => GHC.Enum.Enum (a Data.Type.Equality.:~: b)
+ Data.Type.Equality: instance forall k (a :: k) (b :: k). (a GHC.Types.~ b) => GHC.Read.Read (a Data.Type.Equality.:~: b)
+ Data.Type.Equality: instance forall k1 k (a :: k1). Data.Type.Equality.TestEquality ((Data.Type.Equality.:~~:) a)
+ Data.Type.Equality: instance forall k1 k2 (a :: k1) (b :: k2). (a GHC.Types.~~ b) => GHC.Enum.Bounded (a Data.Type.Equality.:~~: b)
+ Data.Type.Equality: instance forall k1 k2 (a :: k1) (b :: k2). (a GHC.Types.~~ b) => GHC.Enum.Enum (a Data.Type.Equality.:~~: b)
+ Data.Type.Equality: instance forall k1 k2 (a :: k1) (b :: k2). (a GHC.Types.~~ b) => GHC.Read.Read (a Data.Type.Equality.:~~: b)
+ Data.Type.Equality: instance forall k1 k2 (a :: k1) (b :: k2). GHC.Classes.Eq (a Data.Type.Equality.:~~: b)
+ Data.Type.Equality: instance forall k1 k2 (a :: k1) (b :: k2). GHC.Classes.Ord (a Data.Type.Equality.:~~: b)
+ Data.Type.Equality: instance forall k1 k2 (a :: k1) (b :: k2). GHC.Show.Show (a Data.Type.Equality.:~~: b)
+ GHC.Arr: (!) :: Ix i => Array i e -> i -> e
+ GHC.Arr: (//) :: Ix i => Array i e -> [(i, e)] -> Array i e
+ GHC.Arr: Array :: !i -> !i -> {-# UNPACK #-} !Int -> Array# e -> Array i e
+ GHC.Arr: STArray :: !i -> !i -> {-# UNPACK #-} !Int -> MutableArray# s e -> STArray s i e
+ GHC.Arr: accum :: Ix i => (e -> a -> e) -> Array i e -> [(i, a)] -> Array i e
+ GHC.Arr: accumArray :: Ix i => (e -> a -> e) -> e -> (i, i) -> [(i, a)] -> Array i e
+ GHC.Arr: adjust :: (e -> a -> e) -> MutableArray# s e -> (Int, a) -> STRep s b -> STRep s b
+ GHC.Arr: amap :: (a -> b) -> Array i a -> Array i b
+ GHC.Arr: arrEleBottom :: a
+ GHC.Arr: array :: Ix i => (i, i) -> [(i, e)] -> Array i e
+ GHC.Arr: assocs :: Ix i => Array i e -> [(i, e)]
+ GHC.Arr: badSafeIndex :: Int -> Int -> Int
+ GHC.Arr: bounds :: Array i e -> (i, i)
+ GHC.Arr: boundsSTArray :: STArray s i e -> (i, i)
+ GHC.Arr: class (Ord a) => Ix a
+ GHC.Arr: cmpArray :: (Ix i, Ord e) => Array i e -> Array i e -> Ordering
+ GHC.Arr: cmpIntArray :: Ord e => Array Int e -> Array Int e -> Ordering
+ GHC.Arr: data Array i e
+ GHC.Arr: data STArray s i e
+ GHC.Arr: done :: i -> i -> Int -> MutableArray# s e -> STRep s (Array i e)
+ GHC.Arr: elems :: Array i e -> [e]
+ GHC.Arr: eqArray :: (Ix i, Eq e) => Array i e -> Array i e -> Bool
+ GHC.Arr: fill :: MutableArray# s e -> (Int, e) -> STRep s a -> STRep s a
+ GHC.Arr: foldl1Elems :: (a -> a -> a) -> Array i a -> a
+ GHC.Arr: foldlElems :: (b -> a -> b) -> b -> Array i a -> b
+ GHC.Arr: foldlElems' :: (b -> a -> b) -> b -> Array i a -> b
+ GHC.Arr: foldr1Elems :: (a -> a -> a) -> Array i a -> a
+ GHC.Arr: foldrElems :: (a -> b -> b) -> b -> Array i a -> b
+ GHC.Arr: foldrElems' :: (a -> b -> b) -> b -> Array i a -> b
+ GHC.Arr: freezeSTArray :: STArray s i e -> ST s (Array i e)
+ GHC.Arr: hopelessIndexError :: Int
+ GHC.Arr: inRange :: Ix a => (a, a) -> a -> Bool
+ GHC.Arr: index :: Ix a => (a, a) -> a -> Int
+ GHC.Arr: indexError :: Show a => (a, a) -> a -> String -> b
+ GHC.Arr: indices :: Ix i => Array i e -> [i]
+ GHC.Arr: infixl 9 //
+ GHC.Arr: instance (GHC.Arr.Ix a, GHC.Arr.Ix b) => GHC.Arr.Ix (a, b)
+ GHC.Arr: instance (GHC.Arr.Ix a, GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (GHC.Arr.Array a b)
+ GHC.Arr: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3) => GHC.Arr.Ix (a1, a2, a3)
+ GHC.Arr: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4) => GHC.Arr.Ix (a1, a2, a3, a4)
+ GHC.Arr: instance (GHC.Arr.Ix a1, GHC.Arr.Ix a2, GHC.Arr.Ix a3, GHC.Arr.Ix a4, GHC.Arr.Ix a5) => GHC.Arr.Ix (a1, a2, a3, a4, a5)
+ GHC.Arr: instance (GHC.Arr.Ix i, GHC.Classes.Eq e) => GHC.Classes.Eq (GHC.Arr.Array i e)
+ GHC.Arr: instance (GHC.Arr.Ix i, GHC.Classes.Ord e) => GHC.Classes.Ord (GHC.Arr.Array i e)
+ GHC.Arr: instance GHC.Arr.Ix ()
+ GHC.Arr: instance GHC.Arr.Ix GHC.Integer.Type.Integer
+ GHC.Arr: instance GHC.Arr.Ix GHC.Natural.Natural
+ GHC.Arr: instance GHC.Arr.Ix GHC.Types.Bool
+ GHC.Arr: instance GHC.Arr.Ix GHC.Types.Char
+ GHC.Arr: instance GHC.Arr.Ix GHC.Types.Int
+ GHC.Arr: instance GHC.Arr.Ix GHC.Types.Ordering
+ GHC.Arr: instance GHC.Arr.Ix GHC.Types.Word
+ GHC.Arr: instance GHC.Base.Functor (GHC.Arr.Array i)
+ GHC.Arr: instance GHC.Classes.Eq (GHC.Arr.STArray s i e)
+ GHC.Arr: ixmap :: (Ix i, Ix j) => (i, i) -> (i -> j) -> Array j e -> Array i e
+ GHC.Arr: lessSafeIndex :: Ix i => (i, i) -> Int -> i -> Int
+ GHC.Arr: listArray :: Ix i => (i, i) -> [e] -> Array i e
+ GHC.Arr: negRange :: Int
+ GHC.Arr: newSTArray :: Ix i => (i, i) -> e -> ST s (STArray s i e)
+ GHC.Arr: numElements :: Array i e -> Int
+ GHC.Arr: numElementsSTArray :: STArray s i e -> Int
+ GHC.Arr: range :: Ix a => (a, a) -> [a]
+ GHC.Arr: rangeSize :: Ix a => (a, a) -> Int
+ GHC.Arr: readSTArray :: Ix i => STArray s i e -> i -> ST s e
+ GHC.Arr: safeIndex :: Ix i => (i, i) -> Int -> i -> Int
+ GHC.Arr: safeRangeSize :: Ix i => (i, i) -> Int
+ GHC.Arr: thawSTArray :: Array i e -> ST s (STArray s i e)
+ GHC.Arr: unsafeAccum :: (e -> a -> e) -> Array i e -> [(Int, a)] -> Array i e
+ GHC.Arr: unsafeAccumArray :: Ix i => (e -> a -> e) -> e -> (i, i) -> [(Int, a)] -> Array i e
+ GHC.Arr: unsafeAccumArray' :: (e -> a -> e) -> e -> (i, i) -> Int -> [(Int, a)] -> Array i e
+ GHC.Arr: unsafeArray :: Ix i => (i, i) -> [(Int, e)] -> Array i e
+ GHC.Arr: unsafeArray' :: (i, i) -> Int -> [(Int, e)] -> Array i e
+ GHC.Arr: unsafeAt :: Array i e -> Int -> e
+ GHC.Arr: unsafeFreezeSTArray :: STArray s i e -> ST s (Array i e)
+ GHC.Arr: unsafeIndex :: Ix a => (a, a) -> a -> Int
+ GHC.Arr: unsafeRangeSize :: Ix a => (a, a) -> Int
+ GHC.Arr: unsafeReadSTArray :: STArray s i e -> Int -> ST s e
+ GHC.Arr: unsafeReplace :: Array i e -> [(Int, e)] -> Array i e
+ GHC.Arr: unsafeThawSTArray :: Array i e -> ST s (STArray s i e)
+ GHC.Arr: unsafeWriteSTArray :: STArray s i e -> Int -> e -> ST s ()
+ GHC.Arr: writeSTArray :: Ix i => STArray s i e -> i -> e -> ST s ()
+ GHC.Base: ($!) :: forall r a (b :: TYPE r). (a -> b) -> a -> b
+ GHC.Base: ($) :: forall r a (b :: TYPE r). (a -> b) -> a -> b
+ GHC.Base: (*>) :: Applicative f => f a -> f b -> f b
+ GHC.Base: (++) :: [a] -> [a] -> [a]
+ GHC.Base: (.) :: (b -> c) -> (a -> b) -> a -> c
+ GHC.Base: (:|) :: a -> [a] -> NonEmpty a
+ GHC.Base: (<$) :: Functor f => a -> f b -> f a
+ GHC.Base: (<*) :: Applicative f => f a -> f b -> f a
+ GHC.Base: (<**>) :: Applicative f => f a -> f (a -> b) -> f b
+ GHC.Base: (<*>) :: Applicative f => f (a -> b) -> f a -> f b
+ GHC.Base: (<>) :: Semigroup a => a -> a -> a
+ GHC.Base: (<|>) :: Alternative f => f a -> f a -> f a
+ GHC.Base: (=<<) :: Monad m => (a -> m b) -> m a -> m b
+ GHC.Base: (>>) :: forall a b. Monad m => m a -> m b -> m b
+ GHC.Base: (>>=) :: forall a b. Monad m => m a -> (a -> m b) -> m b
+ GHC.Base: O :: a -> Opaque
+ GHC.Base: ap :: Monad m => m (a -> b) -> m a -> m b
+ GHC.Base: asTypeOf :: a -> a -> a
+ GHC.Base: assert :: Bool -> a -> a
+ GHC.Base: augment :: forall a. (forall b. (a -> b -> b) -> b -> b) -> [a] -> [a]
+ GHC.Base: bindIO :: IO a -> (a -> IO b) -> IO b
+ GHC.Base: breakpoint :: a -> a
+ GHC.Base: breakpointCond :: Bool -> a -> a
+ GHC.Base: build :: forall a. (forall b. (a -> b -> b) -> b -> b) -> [a]
+ GHC.Base: class Applicative f => Alternative f
+ GHC.Base: class Functor f => Applicative f
+ GHC.Base: class Functor f
+ GHC.Base: class Applicative m => Monad m
+ GHC.Base: class (Alternative m, Monad m) => MonadPlus m
+ GHC.Base: class Semigroup a => Monoid a
+ GHC.Base: class Semigroup a
+ GHC.Base: const :: a -> b -> a
+ GHC.Base: data NonEmpty a
+ GHC.Base: data Opaque
+ GHC.Base: divInt :: Int -> Int -> Int
+ GHC.Base: divModInt :: Int -> Int -> (Int, Int)
+ GHC.Base: divModInt# :: Int# -> Int# -> (# Int#, Int# #)
+ GHC.Base: empty :: Alternative f => f a
+ GHC.Base: eqString :: String -> String -> Bool
+ GHC.Base: flip :: (a -> b -> c) -> b -> a -> c
+ GHC.Base: fmap :: Functor f => (a -> b) -> f a -> f b
+ GHC.Base: foldr :: (a -> b -> b) -> b -> [a] -> b
+ GHC.Base: getTag :: a -> Int#
+ GHC.Base: iShiftL# :: Int# -> Int# -> Int#
+ GHC.Base: iShiftRA# :: Int# -> Int# -> Int#
+ GHC.Base: iShiftRL# :: Int# -> Int# -> Int#
+ GHC.Base: id :: a -> a
+ GHC.Base: infixl 1 >>=
+ GHC.Base: infixl 3 <|>
+ GHC.Base: infixl 4 <**>
+ GHC.Base: infixr 0 $!
+ GHC.Base: infixr 1 =<<
+ GHC.Base: infixr 5 :|
+ GHC.Base: infixr 6 <>
+ GHC.Base: infixr 9 .
+ GHC.Base: instance (GHC.Base.Monoid a, GHC.Base.Monoid b) => GHC.Base.Monoid (a, b)
+ GHC.Base: instance (GHC.Base.Monoid a, GHC.Base.Monoid b, GHC.Base.Monoid c) => GHC.Base.Monoid (a, b, c)
+ GHC.Base: instance (GHC.Base.Monoid a, GHC.Base.Monoid b, GHC.Base.Monoid c, GHC.Base.Monoid d) => GHC.Base.Monoid (a, b, c, d)
+ GHC.Base: instance (GHC.Base.Monoid a, GHC.Base.Monoid b, GHC.Base.Monoid c, GHC.Base.Monoid d, GHC.Base.Monoid e) => GHC.Base.Monoid (a, b, c, d, e)
+ GHC.Base: instance (GHC.Base.Semigroup a, GHC.Base.Semigroup b) => GHC.Base.Semigroup (a, b)
+ GHC.Base: instance (GHC.Base.Semigroup a, GHC.Base.Semigroup b, GHC.Base.Semigroup c) => GHC.Base.Semigroup (a, b, c)
+ GHC.Base: instance (GHC.Base.Semigroup a, GHC.Base.Semigroup b, GHC.Base.Semigroup c, GHC.Base.Semigroup d) => GHC.Base.Semigroup (a, b, c, d)
+ GHC.Base: instance (GHC.Base.Semigroup a, GHC.Base.Semigroup b, GHC.Base.Semigroup c, GHC.Base.Semigroup d, GHC.Base.Semigroup e) => GHC.Base.Semigroup (a, b, c, d, e)
+ GHC.Base: instance GHC.Base.Alternative GHC.Maybe.Maybe
+ GHC.Base: instance GHC.Base.Alternative GHC.Types.IO
+ GHC.Base: instance GHC.Base.Alternative []
+ GHC.Base: instance GHC.Base.Applicative ((->) a)
+ GHC.Base: instance GHC.Base.Applicative GHC.Base.NonEmpty
+ GHC.Base: instance GHC.Base.Applicative GHC.Maybe.Maybe
+ GHC.Base: instance GHC.Base.Applicative GHC.Types.IO
+ GHC.Base: instance GHC.Base.Applicative []
+ GHC.Base: instance GHC.Base.Functor ((,) a)
+ GHC.Base: instance GHC.Base.Functor ((->) r)
+ GHC.Base: instance GHC.Base.Functor GHC.Base.NonEmpty
+ GHC.Base: instance GHC.Base.Functor GHC.Maybe.Maybe
+ GHC.Base: instance GHC.Base.Functor GHC.Types.IO
+ GHC.Base: instance GHC.Base.Functor []
+ GHC.Base: instance GHC.Base.Monad ((->) r)
+ GHC.Base: instance GHC.Base.Monad GHC.Base.NonEmpty
+ GHC.Base: instance GHC.Base.Monad GHC.Maybe.Maybe
+ GHC.Base: instance GHC.Base.Monad GHC.Types.IO
+ GHC.Base: instance GHC.Base.Monad []
+ GHC.Base: instance GHC.Base.MonadPlus GHC.Maybe.Maybe
+ GHC.Base: instance GHC.Base.MonadPlus GHC.Types.IO
+ GHC.Base: instance GHC.Base.MonadPlus []
+ GHC.Base: instance GHC.Base.Monoid ()
+ GHC.Base: instance GHC.Base.Monoid GHC.Types.Ordering
+ GHC.Base: instance GHC.Base.Monoid [a]
+ GHC.Base: instance GHC.Base.Monoid a => GHC.Base.Applicative ((,) a)
+ GHC.Base: instance GHC.Base.Monoid a => GHC.Base.Monad ((,) a)
+ GHC.Base: instance GHC.Base.Monoid a => GHC.Base.Monoid (GHC.Types.IO a)
+ GHC.Base: instance GHC.Base.Monoid b => GHC.Base.Monoid (a -> b)
+ GHC.Base: instance GHC.Base.Semigroup ()
+ GHC.Base: instance GHC.Base.Semigroup (GHC.Base.NonEmpty a)
+ GHC.Base: instance GHC.Base.Semigroup GHC.Types.Ordering
+ GHC.Base: instance GHC.Base.Semigroup [a]
+ GHC.Base: instance GHC.Base.Semigroup a => GHC.Base.Monoid (GHC.Maybe.Maybe a)
+ GHC.Base: instance GHC.Base.Semigroup a => GHC.Base.Semigroup (GHC.Maybe.Maybe a)
+ GHC.Base: instance GHC.Base.Semigroup a => GHC.Base.Semigroup (GHC.Types.IO a)
+ GHC.Base: instance GHC.Base.Semigroup b => GHC.Base.Semigroup (a -> b)
+ GHC.Base: instance GHC.Classes.Eq a => GHC.Classes.Eq (GHC.Base.NonEmpty a)
+ GHC.Base: instance GHC.Classes.Ord a => GHC.Classes.Ord (GHC.Base.NonEmpty a)
+ GHC.Base: join :: Monad m => m (m a) -> m a
+ GHC.Base: liftA :: Applicative f => (a -> b) -> f a -> f b
+ GHC.Base: liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
+ GHC.Base: liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
+ GHC.Base: liftM :: Monad m => (a1 -> r) -> m a1 -> m r
+ GHC.Base: liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
+ GHC.Base: liftM3 :: Monad m => (a1 -> a2 -> a3 -> r) -> m a1 -> m a2 -> m a3 -> m r
+ GHC.Base: liftM4 :: Monad m => (a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r
+ GHC.Base: liftM5 :: Monad m => (a1 -> a2 -> a3 -> a4 -> a5 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m a5 -> m r
+ GHC.Base: many :: Alternative f => f a -> f [a]
+ GHC.Base: map :: (a -> b) -> [a] -> [b]
+ GHC.Base: mapFB :: (elt -> lst -> lst) -> (a -> elt) -> a -> lst -> lst
+ GHC.Base: mapM :: Monad m => (a -> m b) -> [a] -> m [b]
+ GHC.Base: mappend :: Monoid a => a -> a -> a
+ GHC.Base: maxInt :: Int
+ GHC.Base: mconcat :: Monoid a => [a] -> a
+ GHC.Base: mempty :: Monoid a => a
+ GHC.Base: minInt :: Int
+ GHC.Base: modInt :: Int -> Int -> Int
+ GHC.Base: mplus :: MonadPlus m => m a -> m a -> m a
+ GHC.Base: mzero :: MonadPlus m => m a
+ GHC.Base: ord :: Char -> Int
+ GHC.Base: otherwise :: Bool
+ GHC.Base: pure :: Applicative f => a -> f a
+ GHC.Base: quotInt :: Int -> Int -> Int
+ GHC.Base: quotRemInt :: Int -> Int -> (Int, Int)
+ GHC.Base: remInt :: Int -> Int -> Int
+ GHC.Base: return :: Monad m => a -> m a
+ GHC.Base: returnIO :: a -> IO a
+ GHC.Base: sconcat :: Semigroup a => NonEmpty a -> a
+ GHC.Base: sequence :: Monad m => [m a] -> m [a]
+ GHC.Base: shiftL# :: Word# -> Int# -> Word#
+ GHC.Base: shiftRL# :: Word# -> Int# -> Word#
+ GHC.Base: some :: Alternative f => f a -> f [a]
+ GHC.Base: stimes :: (Semigroup a, Integral b) => b -> a -> a
+ GHC.Base: thenIO :: IO a -> IO b -> IO b
+ GHC.Base: type String = [Char]
+ GHC.Base: unIO :: IO a -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Base: unsafeChr :: Int -> Char
+ GHC.Base: until :: (a -> Bool) -> (a -> a) -> a -> a
+ GHC.Base: when :: Applicative f => Bool -> f () -> f ()
+ GHC.Desugar: (>>>) :: forall arr. Arrow arr => forall a b c. arr a b -> arr b c -> arr a c
+ GHC.Desugar: AnnotationWrapper :: a -> AnnotationWrapper
+ GHC.Desugar: data AnnotationWrapper
+ GHC.Desugar: toAnnotationWrapper :: Data a => a -> AnnotationWrapper
+ GHC.Enum: boundedEnumFrom :: (Enum a, Bounded a) => a -> [a]
+ GHC.Enum: boundedEnumFromThen :: (Enum a, Bounded a) => a -> a -> [a]
+ GHC.Enum: class Bounded a
+ GHC.Enum: class Enum a
+ GHC.Enum: enumFrom :: Enum a => a -> [a]
+ GHC.Enum: enumFromThen :: Enum a => a -> a -> [a]
+ GHC.Enum: enumFromThenTo :: Enum a => a -> a -> a -> [a]
+ GHC.Enum: enumFromTo :: Enum a => a -> a -> [a]
+ GHC.Enum: fromEnum :: Enum a => a -> Int
+ GHC.Enum: fromEnumError :: Show a => String -> a -> b
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b) => GHC.Enum.Bounded (a, b)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c) => GHC.Enum.Bounded (a, b, c)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d) => GHC.Enum.Bounded (a, b, c, d)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d, GHC.Enum.Bounded e) => GHC.Enum.Bounded (a, b, c, d, e)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d, GHC.Enum.Bounded e, GHC.Enum.Bounded f) => GHC.Enum.Bounded (a, b, c, d, e, f)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d, GHC.Enum.Bounded e, GHC.Enum.Bounded f, GHC.Enum.Bounded g) => GHC.Enum.Bounded (a, b, c, d, e, f, g)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d, GHC.Enum.Bounded e, GHC.Enum.Bounded f, GHC.Enum.Bounded g, GHC.Enum.Bounded h) => GHC.Enum.Bounded (a, b, c, d, e, f, g, h)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d, GHC.Enum.Bounded e, GHC.Enum.Bounded f, GHC.Enum.Bounded g, GHC.Enum.Bounded h, GHC.Enum.Bounded i) => GHC.Enum.Bounded (a, b, c, d, e, f, g, h, i)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d, GHC.Enum.Bounded e, GHC.Enum.Bounded f, GHC.Enum.Bounded g, GHC.Enum.Bounded h, GHC.Enum.Bounded i, GHC.Enum.Bounded j) => GHC.Enum.Bounded (a, b, c, d, e, f, g, h, i, j)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d, GHC.Enum.Bounded e, GHC.Enum.Bounded f, GHC.Enum.Bounded g, GHC.Enum.Bounded h, GHC.Enum.Bounded i, GHC.Enum.Bounded j, GHC.Enum.Bounded k) => GHC.Enum.Bounded (a, b, c, d, e, f, g, h, i, j, k)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d, GHC.Enum.Bounded e, GHC.Enum.Bounded f, GHC.Enum.Bounded g, GHC.Enum.Bounded h, GHC.Enum.Bounded i, GHC.Enum.Bounded j, GHC.Enum.Bounded k, GHC.Enum.Bounded l) => GHC.Enum.Bounded (a, b, c, d, e, f, g, h, i, j, k, l)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d, GHC.Enum.Bounded e, GHC.Enum.Bounded f, GHC.Enum.Bounded g, GHC.Enum.Bounded h, GHC.Enum.Bounded i, GHC.Enum.Bounded j, GHC.Enum.Bounded k, GHC.Enum.Bounded l, GHC.Enum.Bounded m) => GHC.Enum.Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d, GHC.Enum.Bounded e, GHC.Enum.Bounded f, GHC.Enum.Bounded g, GHC.Enum.Bounded h, GHC.Enum.Bounded i, GHC.Enum.Bounded j, GHC.Enum.Bounded k, GHC.Enum.Bounded l, GHC.Enum.Bounded m, GHC.Enum.Bounded n) => GHC.Enum.Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m, n)
+ GHC.Enum: instance (GHC.Enum.Bounded a, GHC.Enum.Bounded b, GHC.Enum.Bounded c, GHC.Enum.Bounded d, GHC.Enum.Bounded e, GHC.Enum.Bounded f, GHC.Enum.Bounded g, GHC.Enum.Bounded h, GHC.Enum.Bounded i, GHC.Enum.Bounded j, GHC.Enum.Bounded k, GHC.Enum.Bounded l, GHC.Enum.Bounded m, GHC.Enum.Bounded n, GHC.Enum.Bounded o) => GHC.Enum.Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
+ GHC.Enum: instance GHC.Enum.Bounded ()
+ GHC.Enum: instance GHC.Enum.Bounded GHC.Types.Bool
+ GHC.Enum: instance GHC.Enum.Bounded GHC.Types.Char
+ GHC.Enum: instance GHC.Enum.Bounded GHC.Types.Int
+ GHC.Enum: instance GHC.Enum.Bounded GHC.Types.Ordering
+ GHC.Enum: instance GHC.Enum.Bounded GHC.Types.VecCount
+ GHC.Enum: instance GHC.Enum.Bounded GHC.Types.VecElem
+ GHC.Enum: instance GHC.Enum.Bounded GHC.Types.Word
+ GHC.Enum: instance GHC.Enum.Enum ()
+ GHC.Enum: instance GHC.Enum.Enum GHC.Integer.Type.Integer
+ GHC.Enum: instance GHC.Enum.Enum GHC.Natural.Natural
+ GHC.Enum: instance GHC.Enum.Enum GHC.Types.Bool
+ GHC.Enum: instance GHC.Enum.Enum GHC.Types.Char
+ GHC.Enum: instance GHC.Enum.Enum GHC.Types.Int
+ GHC.Enum: instance GHC.Enum.Enum GHC.Types.Ordering
+ GHC.Enum: instance GHC.Enum.Enum GHC.Types.VecCount
+ GHC.Enum: instance GHC.Enum.Enum GHC.Types.VecElem
+ GHC.Enum: instance GHC.Enum.Enum GHC.Types.Word
+ GHC.Enum: maxBound :: Bounded a => a
+ GHC.Enum: minBound :: Bounded a => a
+ GHC.Enum: pred :: Enum a => a -> a
+ GHC.Enum: predError :: String -> a
+ GHC.Enum: succ :: Enum a => a -> a
+ GHC.Enum: succError :: String -> a
+ GHC.Enum: toEnum :: Enum a => Int -> a
+ GHC.Enum: toEnumError :: Show a => String -> Int -> (a, a) -> b
+ GHC.Err: absentErr :: a
+ GHC.Err: error :: forall (r :: RuntimeRep). forall (a :: TYPE r). HasCallStack => [Char] -> a
+ GHC.Err: errorWithoutStackTrace :: forall (r :: RuntimeRep). forall (a :: TYPE r). [Char] -> a
+ GHC.Err: undefined :: forall (r :: RuntimeRep). forall (a :: TYPE r). HasCallStack => a
+ GHC.Exception: ErrorCallWithLocation :: String -> String -> ErrorCall
+ GHC.Exception: SrcLoc :: [Char] -> [Char] -> [Char] -> Int -> Int -> Int -> Int -> SrcLoc
+ GHC.Exception: [srcLocEndCol] :: SrcLoc -> Int
+ GHC.Exception: [srcLocEndLine] :: SrcLoc -> Int
+ GHC.Exception: [srcLocFile] :: SrcLoc -> [Char]
+ GHC.Exception: [srcLocModule] :: SrcLoc -> [Char]
+ GHC.Exception: [srcLocPackage] :: SrcLoc -> [Char]
+ GHC.Exception: [srcLocStartCol] :: SrcLoc -> Int
+ GHC.Exception: [srcLocStartLine] :: SrcLoc -> Int
+ GHC.Exception: data CallStack
+ GHC.Exception: data ErrorCall
+ GHC.Exception: data SrcLoc
+ GHC.Exception: errorCallException :: String -> SomeException
+ GHC.Exception: errorCallWithCallStackException :: String -> CallStack -> SomeException
+ GHC.Exception: fromCallSiteList :: [([Char], SrcLoc)] -> CallStack
+ GHC.Exception: getCallStack :: CallStack -> [([Char], SrcLoc)]
+ GHC.Exception: instance GHC.Classes.Eq GHC.Exception.ErrorCall
+ GHC.Exception: instance GHC.Classes.Ord GHC.Exception.ErrorCall
+ GHC.Exception: instance GHC.Exception.Type.Exception GHC.Exception.ErrorCall
+ GHC.Exception: instance GHC.Show.Show GHC.Exception.ErrorCall
+ GHC.Exception: pattern ErrorCall :: String -> ErrorCall
+ GHC.Exception: prettyCallStack :: CallStack -> String
+ GHC.Exception: prettyCallStackLines :: CallStack -> [String]
+ GHC.Exception: prettySrcLoc :: SrcLoc -> String
+ GHC.Exception: showCCSStack :: [String] -> [String]
+ GHC.Exception: throw :: forall (r :: RuntimeRep). forall (a :: TYPE r). forall e. Exception e => e -> a
+ GHC.Exception.Type: Denormal :: ArithException
+ GHC.Exception.Type: DivideByZero :: ArithException
+ GHC.Exception.Type: LossOfPrecision :: ArithException
+ GHC.Exception.Type: Overflow :: ArithException
+ GHC.Exception.Type: RatioZeroDenominator :: ArithException
+ GHC.Exception.Type: SomeException :: e -> SomeException
+ GHC.Exception.Type: Underflow :: ArithException
+ GHC.Exception.Type: class (Typeable e, Show e) => Exception e
+ GHC.Exception.Type: data ArithException
+ GHC.Exception.Type: data SomeException
+ GHC.Exception.Type: displayException :: Exception e => e -> String
+ GHC.Exception.Type: divZeroException :: SomeException
+ GHC.Exception.Type: fromException :: Exception e => SomeException -> Maybe e
+ GHC.Exception.Type: instance GHC.Classes.Eq GHC.Exception.Type.ArithException
+ GHC.Exception.Type: instance GHC.Classes.Ord GHC.Exception.Type.ArithException
+ GHC.Exception.Type: instance GHC.Exception.Type.Exception GHC.Exception.Type.ArithException
+ GHC.Exception.Type: instance GHC.Exception.Type.Exception GHC.Exception.Type.SomeException
+ GHC.Exception.Type: instance GHC.Show.Show GHC.Exception.Type.ArithException
+ GHC.Exception.Type: instance GHC.Show.Show GHC.Exception.Type.SomeException
+ GHC.Exception.Type: overflowException :: SomeException
+ GHC.Exception.Type: ratioZeroDenomException :: SomeException
+ GHC.Exception.Type: toException :: Exception e => e -> SomeException
+ GHC.Exception.Type: underflowException :: SomeException
+ GHC.Exts: Int16Rep :: RuntimeRep
+ GHC.Exts: Int8Rep :: RuntimeRep
+ GHC.Exts: Word16Rep :: RuntimeRep
+ GHC.Exts: Word8Rep :: RuntimeRep
+ GHC.Exts: acoshDouble# :: Double# -> Double#
+ GHC.Exts: acoshFloat# :: Float# -> Float#
+ GHC.Exts: asinhDouble# :: Double# -> Double#
+ GHC.Exts: asinhFloat# :: Float# -> Float#
+ GHC.Exts: atanhDouble# :: Double# -> Double#
+ GHC.Exts: atanhFloat# :: Float# -> Float#
+ GHC.Exts: atomicModifyMutVar2# :: MutVar# d a -> (a -> c) -> State# d -> (# State# d, a, c #)
+ GHC.Exts: atomicModifyMutVar_# :: MutVar# d a -> (a -> a) -> State# d -> (# State# d, a, a #)
+ GHC.Exts: data Int16# :: TYPE 'Int16Rep
+ GHC.Exts: data Int8# :: TYPE 'Int8Rep
+ GHC.Exts: data Proxy# (a :: k) :: TYPE 'TupleRep '[] :: [RuntimeRep]
+ GHC.Exts: data Word16# :: TYPE 'Word16Rep
+ GHC.Exts: data Word8# :: TYPE 'Word8Rep
+ GHC.Exts: eqInt16# :: Int16# -> Int16# -> Int#
+ GHC.Exts: eqInt8# :: Int8# -> Int8# -> Int#
+ GHC.Exts: eqWord16# :: Word16# -> Word16# -> Int#
+ GHC.Exts: eqWord8# :: Word8# -> Word8# -> Int#
+ GHC.Exts: extendInt16# :: Int16# -> Int#
+ GHC.Exts: extendInt8# :: Int8# -> Int#
+ GHC.Exts: extendWord16# :: Word16# -> Word#
+ GHC.Exts: extendWord8# :: Word8# -> Word#
+ GHC.Exts: geInt16# :: Int16# -> Int16# -> Int#
+ GHC.Exts: geInt8# :: Int8# -> Int8# -> Int#
+ GHC.Exts: geWord16# :: Word16# -> Word16# -> Int#
+ GHC.Exts: geWord8# :: Word8# -> Word8# -> Int#
+ GHC.Exts: gtInt16# :: Int16# -> Int16# -> Int#
+ GHC.Exts: gtInt8# :: Int8# -> Int8# -> Int#
+ GHC.Exts: gtWord16# :: Word16# -> Word16# -> Int#
+ GHC.Exts: gtWord8# :: Word8# -> Word8# -> Int#
+ GHC.Exts: infixr 0 `seq`
+ GHC.Exts: leInt16# :: Int16# -> Int16# -> Int#
+ GHC.Exts: leInt8# :: Int8# -> Int8# -> Int#
+ GHC.Exts: leWord16# :: Word16# -> Word16# -> Int#
+ GHC.Exts: leWord8# :: Word8# -> Word8# -> Int#
+ GHC.Exts: ltInt16# :: Int16# -> Int16# -> Int#
+ GHC.Exts: ltInt8# :: Int8# -> Int8# -> Int#
+ GHC.Exts: ltWord16# :: Word16# -> Word16# -> Int#
+ GHC.Exts: ltWord8# :: Word8# -> Word8# -> Int#
+ GHC.Exts: narrowInt16# :: Int# -> Int16#
+ GHC.Exts: narrowInt8# :: Int# -> Int8#
+ GHC.Exts: narrowWord16# :: Word# -> Word16#
+ GHC.Exts: narrowWord8# :: Word# -> Word8#
+ GHC.Exts: neInt16# :: Int16# -> Int16# -> Int#
+ GHC.Exts: neInt8# :: Int8# -> Int8# -> Int#
+ GHC.Exts: neWord16# :: Word16# -> Word16# -> Int#
+ GHC.Exts: neWord8# :: Word8# -> Word8# -> Int#
+ GHC.Exts: negateInt16# :: Int16# -> Int16#
+ GHC.Exts: negateInt8# :: Int8# -> Int8#
+ GHC.Exts: notWord16# :: Word16# -> Word16#
+ GHC.Exts: notWord8# :: Word8# -> Word8#
+ GHC.Exts: plusInt16# :: Int16# -> Int16# -> Int16#
+ GHC.Exts: plusInt8# :: Int8# -> Int8# -> Int8#
+ GHC.Exts: plusWord16# :: Word16# -> Word16# -> Word16#
+ GHC.Exts: plusWord8# :: Word8# -> Word8# -> Word8#
+ GHC.Exts: quotInt16# :: Int16# -> Int16# -> Int16#
+ GHC.Exts: quotInt8# :: Int8# -> Int8# -> Int8#
+ GHC.Exts: quotRemInt16# :: Int16# -> Int16# -> (# Int16#, Int16# #)
+ GHC.Exts: quotRemInt8# :: Int8# -> Int8# -> (# Int8#, Int8# #)
+ GHC.Exts: quotRemWord16# :: Word16# -> Word16# -> (# Word16#, Word16# #)
+ GHC.Exts: quotRemWord8# :: Word8# -> Word8# -> (# Word8#, Word8# #)
+ GHC.Exts: quotWord16# :: Word16# -> Word16# -> Word16#
+ GHC.Exts: quotWord8# :: Word8# -> Word8# -> Word8#
+ GHC.Exts: remInt16# :: Int16# -> Int16# -> Int16#
+ GHC.Exts: remInt8# :: Int8# -> Int8# -> Int8#
+ GHC.Exts: remWord16# :: Word16# -> Word16# -> Word16#
+ GHC.Exts: remWord8# :: Word8# -> Word8# -> Word8#
+ GHC.Exts: subInt16# :: Int16# -> Int16# -> Int16#
+ GHC.Exts: subInt8# :: Int8# -> Int8# -> Int8#
+ GHC.Exts: subWord16# :: Word16# -> Word16# -> Word16#
+ GHC.Exts: subWord8# :: Word8# -> Word8# -> Word8#
+ GHC.Exts: timesInt16# :: Int16# -> Int16# -> Int16#
+ GHC.Exts: timesInt8# :: Int8# -> Int8# -> Int8#
+ GHC.Exts: timesWord16# :: Word16# -> Word16# -> Word16#
+ GHC.Exts: timesWord8# :: Word8# -> Word8# -> Word8#
+ GHC.Exts: traceBinaryEvent# :: Addr# -> Int# -> State# d -> State# d
+ GHC.Float: (**) :: Floating a => a -> a -> a
+ GHC.Float: D# :: Double# -> Double
+ GHC.Float: F# :: Float# -> Float
+ GHC.Float: FFExponent :: FFFormat
+ GHC.Float: FFFixed :: FFFormat
+ GHC.Float: FFGeneric :: FFFormat
+ GHC.Float: acos :: Floating a => a -> a
+ GHC.Float: acosDouble :: Double -> Double
+ GHC.Float: acosFloat :: Float -> Float
+ GHC.Float: acosh :: Floating a => a -> a
+ GHC.Float: acoshDouble :: Double -> Double
+ GHC.Float: acoshFloat :: Float -> Float
+ GHC.Float: asin :: Floating a => a -> a
+ GHC.Float: asinDouble :: Double -> Double
+ GHC.Float: asinFloat :: Float -> Float
+ GHC.Float: asinh :: Floating a => a -> a
+ GHC.Float: asinhDouble :: Double -> Double
+ GHC.Float: asinhFloat :: Float -> Float
+ GHC.Float: atan :: Floating a => a -> a
+ GHC.Float: atan2 :: RealFloat a => a -> a -> a
+ GHC.Float: atanDouble :: Double -> Double
+ GHC.Float: atanFloat :: Float -> Float
+ GHC.Float: atanh :: Floating a => a -> a
+ GHC.Float: atanhDouble :: Double -> Double
+ GHC.Float: atanhFloat :: Float -> Float
+ GHC.Float: castDoubleToWord64 :: Double -> Word64
+ GHC.Float: castFloatToWord32 :: Float -> Word32
+ GHC.Float: castWord32ToFloat :: Word32 -> Float
+ GHC.Float: castWord64ToDouble :: Word64 -> Double
+ GHC.Float: clamp :: Int -> Int -> Int
+ GHC.Float: class (Fractional a) => Floating a
+ GHC.Float: class (RealFrac a, Floating a) => RealFloat a
+ GHC.Float: cos :: Floating a => a -> a
+ GHC.Float: cosDouble :: Double -> Double
+ GHC.Float: cosFloat :: Float -> Float
+ GHC.Float: cosh :: Floating a => a -> a
+ GHC.Float: coshDouble :: Double -> Double
+ GHC.Float: coshFloat :: Float -> Float
+ GHC.Float: data Double
+ GHC.Float: data Double# :: TYPE 'DoubleRep
+ GHC.Float: data FFFormat
+ GHC.Float: data Float
+ GHC.Float: data Float# :: TYPE 'FloatRep
+ GHC.Float: decodeFloat :: RealFloat a => a -> (Integer, Int)
+ GHC.Float: divideDouble :: Double -> Double -> Double
+ GHC.Float: divideFloat :: Float -> Float -> Float
+ GHC.Float: double2Float :: Double -> Float
+ GHC.Float: double2Int :: Double -> Int
+ GHC.Float: encodeFloat :: RealFloat a => Integer -> Int -> a
+ GHC.Float: eqDouble :: Double -> Double -> Bool
+ GHC.Float: eqFloat :: Float -> Float -> Bool
+ GHC.Float: exp :: Floating a => a -> a
+ GHC.Float: expDouble :: Double -> Double
+ GHC.Float: expFloat :: Float -> Float
+ GHC.Float: expm1 :: Floating a => a -> a
+ GHC.Float: expm1Double :: Double -> Double
+ GHC.Float: expm1Float :: Float -> Float
+ GHC.Float: exponent :: RealFloat a => a -> Int
+ GHC.Float: expt :: Integer -> Int -> Integer
+ GHC.Float: expts :: Array Int Integer
+ GHC.Float: expts10 :: Array Int Integer
+ GHC.Float: fabsDouble :: Double -> Double
+ GHC.Float: fabsFloat :: Float -> Float
+ GHC.Float: float2Double :: Float -> Double
+ GHC.Float: float2Int :: Float -> Int
+ GHC.Float: floatDigits :: RealFloat a => a -> Int
+ GHC.Float: floatRadix :: RealFloat a => a -> Integer
+ GHC.Float: floatRange :: RealFloat a => a -> (Int, Int)
+ GHC.Float: floatToDigits :: RealFloat a => Integer -> a -> ([Int], Int)
+ GHC.Float: formatRealFloat :: RealFloat a => FFFormat -> Maybe Int -> a -> String
+ GHC.Float: formatRealFloatAlt :: RealFloat a => FFFormat -> Maybe Int -> Bool -> a -> String
+ GHC.Float: fromRat :: RealFloat a => Rational -> a
+ GHC.Float: fromRat' :: RealFloat a => Rational -> a
+ GHC.Float: fromRat'' :: RealFloat a => Int -> Int -> Integer -> Integer -> a
+ GHC.Float: geDouble :: Double -> Double -> Bool
+ GHC.Float: geFloat :: Float -> Float -> Bool
+ GHC.Float: gtDouble :: Double -> Double -> Bool
+ GHC.Float: gtFloat :: Float -> Float -> Bool
+ GHC.Float: infixr 8 **
+ GHC.Float: instance GHC.Enum.Enum GHC.Types.Double
+ GHC.Float: instance GHC.Enum.Enum GHC.Types.Float
+ GHC.Float: instance GHC.Float.Floating GHC.Types.Double
+ GHC.Float: instance GHC.Float.Floating GHC.Types.Float
+ GHC.Float: instance GHC.Float.RealFloat GHC.Types.Double
+ GHC.Float: instance GHC.Float.RealFloat GHC.Types.Float
+ GHC.Float: instance GHC.Num.Num GHC.Types.Double
+ GHC.Float: instance GHC.Num.Num GHC.Types.Float
+ GHC.Float: instance GHC.Real.Fractional GHC.Types.Double
+ GHC.Float: instance GHC.Real.Fractional GHC.Types.Float
+ GHC.Float: instance GHC.Real.Real GHC.Types.Double
+ GHC.Float: instance GHC.Real.Real GHC.Types.Float
+ GHC.Float: instance GHC.Real.RealFrac GHC.Types.Double
+ GHC.Float: instance GHC.Real.RealFrac GHC.Types.Float
+ GHC.Float: instance GHC.Show.Show GHC.Types.Double
+ GHC.Float: instance GHC.Show.Show GHC.Types.Float
+ GHC.Float: int2Double :: Int -> Double
+ GHC.Float: int2Float :: Int -> Float
+ GHC.Float: integerLogBase :: Integer -> Integer -> Int
+ GHC.Float: isDenormalized :: RealFloat a => a -> Bool
+ GHC.Float: isDoubleDenormalized :: Double -> Int
+ GHC.Float: isDoubleFinite :: Double -> Int
+ GHC.Float: isDoubleInfinite :: Double -> Int
+ GHC.Float: isDoubleNaN :: Double -> Int
+ GHC.Float: isDoubleNegativeZero :: Double -> Int
+ GHC.Float: isFloatDenormalized :: Float -> Int
+ GHC.Float: isFloatFinite :: Float -> Int
+ GHC.Float: isFloatInfinite :: Float -> Int
+ GHC.Float: isFloatNaN :: Float -> Int
+ GHC.Float: isFloatNegativeZero :: Float -> Int
+ GHC.Float: isIEEE :: RealFloat a => a -> Bool
+ GHC.Float: isInfinite :: RealFloat a => a -> Bool
+ GHC.Float: isNaN :: RealFloat a => a -> Bool
+ GHC.Float: isNegativeZero :: RealFloat a => a -> Bool
+ GHC.Float: leDouble :: Double -> Double -> Bool
+ GHC.Float: leFloat :: Float -> Float -> Bool
+ GHC.Float: log :: Floating a => a -> a
+ GHC.Float: log1mexp :: Floating a => a -> a
+ GHC.Float: log1p :: Floating a => a -> a
+ GHC.Float: log1pDouble :: Double -> Double
+ GHC.Float: log1pFloat :: Float -> Float
+ GHC.Float: log1pexp :: Floating a => a -> a
+ GHC.Float: logBase :: Floating a => a -> a -> a
+ GHC.Float: logDouble :: Double -> Double
+ GHC.Float: logFloat :: Float -> Float
+ GHC.Float: ltDouble :: Double -> Double -> Bool
+ GHC.Float: ltFloat :: Float -> Float -> Bool
+ GHC.Float: maxExpt :: Int
+ GHC.Float: maxExpt10 :: Int
+ GHC.Float: minExpt :: Int
+ GHC.Float: minusDouble :: Double -> Double -> Double
+ GHC.Float: minusFloat :: Float -> Float -> Float
+ GHC.Float: negateDouble :: Double -> Double
+ GHC.Float: negateFloat :: Float -> Float
+ GHC.Float: pi :: Floating a => a
+ GHC.Float: plusDouble :: Double -> Double -> Double
+ GHC.Float: plusFloat :: Float -> Float -> Float
+ GHC.Float: powerDouble :: Double -> Double -> Double
+ GHC.Float: powerFloat :: Float -> Float -> Float
+ GHC.Float: rationalToDouble :: Integer -> Integer -> Double
+ GHC.Float: rationalToFloat :: Integer -> Integer -> Float
+ GHC.Float: roundTo :: Int -> Int -> [Int] -> (Int, [Int])
+ GHC.Float: scaleFloat :: RealFloat a => Int -> a -> a
+ GHC.Float: showFloat :: RealFloat a => a -> ShowS
+ GHC.Float: showSignedFloat :: RealFloat a => (a -> ShowS) -> Int -> a -> ShowS
+ GHC.Float: significand :: RealFloat a => a -> a
+ GHC.Float: sin :: Floating a => a -> a
+ GHC.Float: sinDouble :: Double -> Double
+ GHC.Float: sinFloat :: Float -> Float
+ GHC.Float: sinh :: Floating a => a -> a
+ GHC.Float: sinhDouble :: Double -> Double
+ GHC.Float: sinhFloat :: Float -> Float
+ GHC.Float: sqrt :: Floating a => a -> a
+ GHC.Float: sqrtDouble :: Double -> Double
+ GHC.Float: sqrtFloat :: Float -> Float
+ GHC.Float: stgDoubleToWord64 :: Double# -> Word#
+ GHC.Float: stgFloatToWord32 :: Float# -> Word#
+ GHC.Float: stgWord32ToFloat :: Word# -> Float#
+ GHC.Float: stgWord64ToDouble :: Word# -> Double#
+ GHC.Float: tan :: Floating a => a -> a
+ GHC.Float: tanDouble :: Double -> Double
+ GHC.Float: tanFloat :: Float -> Float
+ GHC.Float: tanh :: Floating a => a -> a
+ GHC.Float: tanhDouble :: Double -> Double
+ GHC.Float: tanhFloat :: Float -> Float
+ GHC.Float: timesDouble :: Double -> Double -> Double
+ GHC.Float: timesFloat :: Float -> Float -> Float
+ GHC.Float: word2Double :: Word -> Double
+ GHC.Float: word2Float :: Word -> Float
+ GHC.Float.ConversionUtils: elimZerosInt# :: Int# -> Int# -> (# Integer, Int# #)
+ GHC.Float.ConversionUtils: elimZerosInteger :: Integer -> Int# -> (# Integer, Int# #)
+ GHC.Float.RealFracMethods: ceilingDoubleInt :: Double -> Int
+ GHC.Float.RealFracMethods: ceilingDoubleInteger :: Double -> Integer
+ GHC.Float.RealFracMethods: ceilingFloatInt :: Float -> Int
+ GHC.Float.RealFracMethods: ceilingFloatInteger :: Float -> Integer
+ GHC.Float.RealFracMethods: double2Int :: Double -> Int
+ GHC.Float.RealFracMethods: float2Int :: Float -> Int
+ GHC.Float.RealFracMethods: floorDoubleInt :: Double -> Int
+ GHC.Float.RealFracMethods: floorDoubleInteger :: Double -> Integer
+ GHC.Float.RealFracMethods: floorFloatInt :: Float -> Int
+ GHC.Float.RealFracMethods: floorFloatInteger :: Float -> Integer
+ GHC.Float.RealFracMethods: int2Double :: Int -> Double
+ GHC.Float.RealFracMethods: int2Float :: Int -> Float
+ GHC.Float.RealFracMethods: properFractionDoubleInt :: Double -> (Int, Double)
+ GHC.Float.RealFracMethods: properFractionDoubleInteger :: Double -> (Integer, Double)
+ GHC.Float.RealFracMethods: properFractionFloatInt :: Float -> (Int, Float)
+ GHC.Float.RealFracMethods: properFractionFloatInteger :: Float -> (Integer, Float)
+ GHC.Float.RealFracMethods: roundDoubleInt :: Double -> Int
+ GHC.Float.RealFracMethods: roundDoubleInteger :: Double -> Integer
+ GHC.Float.RealFracMethods: roundFloatInt :: Float -> Int
+ GHC.Float.RealFracMethods: roundFloatInteger :: Float -> Integer
+ GHC.Float.RealFracMethods: truncateDoubleInteger :: Double -> Integer
+ GHC.Float.RealFracMethods: truncateFloatInteger :: Float -> Integer
+ GHC.ForeignPtr: ForeignPtr :: Addr# -> ForeignPtrContents -> ForeignPtr a
+ GHC.ForeignPtr: MallocPtr :: MutableByteArray# RealWorld -> !IORef Finalizers -> ForeignPtrContents
+ GHC.ForeignPtr: PlainForeignPtr :: !IORef Finalizers -> ForeignPtrContents
+ GHC.ForeignPtr: PlainPtr :: MutableByteArray# RealWorld -> ForeignPtrContents
+ GHC.ForeignPtr: addForeignPtrConcFinalizer :: ForeignPtr a -> IO () -> IO ()
+ GHC.ForeignPtr: addForeignPtrFinalizer :: FinalizerPtr a -> ForeignPtr a -> IO ()
+ GHC.ForeignPtr: addForeignPtrFinalizerEnv :: FinalizerEnvPtr env a -> Ptr env -> ForeignPtr a -> IO ()
+ GHC.ForeignPtr: castForeignPtr :: ForeignPtr a -> ForeignPtr b
+ GHC.ForeignPtr: data ForeignPtr a
+ GHC.ForeignPtr: data ForeignPtrContents
+ GHC.ForeignPtr: finalizeForeignPtr :: ForeignPtr a -> IO ()
+ GHC.ForeignPtr: instance GHC.Classes.Eq (GHC.ForeignPtr.ForeignPtr a)
+ GHC.ForeignPtr: instance GHC.Classes.Ord (GHC.ForeignPtr.ForeignPtr a)
+ GHC.ForeignPtr: instance GHC.Show.Show (GHC.ForeignPtr.ForeignPtr a)
+ GHC.ForeignPtr: mallocForeignPtr :: Storable a => IO (ForeignPtr a)
+ GHC.ForeignPtr: mallocForeignPtrAlignedBytes :: Int -> Int -> IO (ForeignPtr a)
+ GHC.ForeignPtr: mallocForeignPtrBytes :: Int -> IO (ForeignPtr a)
+ GHC.ForeignPtr: mallocPlainForeignPtr :: Storable a => IO (ForeignPtr a)
+ GHC.ForeignPtr: mallocPlainForeignPtrAlignedBytes :: Int -> Int -> IO (ForeignPtr a)
+ GHC.ForeignPtr: mallocPlainForeignPtrBytes :: Int -> IO (ForeignPtr a)
+ GHC.ForeignPtr: newConcForeignPtr :: Ptr a -> IO () -> IO (ForeignPtr a)
+ GHC.ForeignPtr: newForeignPtr_ :: Ptr a -> IO (ForeignPtr a)
+ GHC.ForeignPtr: plusForeignPtr :: ForeignPtr a -> Int -> ForeignPtr b
+ GHC.ForeignPtr: touchForeignPtr :: ForeignPtr a -> IO ()
+ GHC.ForeignPtr: type FinalizerEnvPtr env a = FunPtr (Ptr env -> Ptr a -> IO ())
+ GHC.ForeignPtr: type FinalizerPtr a = FunPtr (Ptr a -> IO ())
+ GHC.ForeignPtr: unsafeForeignPtrToPtr :: ForeignPtr a -> Ptr a
+ GHC.GHCi: class (Monad m) => GHCiSandboxIO m
+ GHC.GHCi: data NoIO a
+ GHC.GHCi: ghciStepIO :: GHCiSandboxIO m => m a -> IO a
+ GHC.GHCi: instance GHC.Base.Applicative GHC.GHCi.NoIO
+ GHC.GHCi: instance GHC.Base.Functor GHC.GHCi.NoIO
+ GHC.GHCi: instance GHC.Base.Monad GHC.GHCi.NoIO
+ GHC.GHCi: instance GHC.GHCi.GHCiSandboxIO GHC.GHCi.NoIO
+ GHC.GHCi: instance GHC.GHCi.GHCiSandboxIO GHC.Types.IO
+ GHC.GHCi.Helpers: disableBuffering :: IO ()
+ GHC.GHCi.Helpers: evalWrapper :: String -> [String] -> IO a -> IO a
+ GHC.GHCi.Helpers: flushAll :: IO ()
+ GHC.Generics: instance forall k2 k1 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1). GHC.Base.Monoid (f (g p)) => GHC.Base.Monoid ((GHC.Generics.:.:) f g p)
+ GHC.Generics: instance forall k2 k1 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1). GHC.Base.Semigroup (f (g p)) => GHC.Base.Semigroup ((GHC.Generics.:.:) f g p)
+ GHC.IO: IO :: (State# RealWorld -> (# State# RealWorld, a #)) -> IO a
+ GHC.IO: MaskedInterruptible :: MaskingState
+ GHC.IO: MaskedUninterruptible :: MaskingState
+ GHC.IO: Unmasked :: MaskingState
+ GHC.IO: bracket :: IO a -> (a -> IO b) -> (a -> IO c) -> IO c
+ GHC.IO: catch :: Exception e => IO a -> (e -> IO a) -> IO a
+ GHC.IO: catchAny :: IO a -> (forall e. Exception e => e -> IO a) -> IO a
+ GHC.IO: catchException :: Exception e => IO a -> (e -> IO a) -> IO a
+ GHC.IO: data MaskingState
+ GHC.IO: evaluate :: a -> IO a
+ GHC.IO: failIO :: String -> IO a
+ GHC.IO: finally :: IO a -> IO b -> IO a
+ GHC.IO: getMaskingState :: IO MaskingState
+ GHC.IO: instance GHC.Classes.Eq GHC.IO.MaskingState
+ GHC.IO: instance GHC.Show.Show GHC.IO.MaskingState
+ GHC.IO: interruptible :: IO a -> IO a
+ GHC.IO: ioToST :: IO a -> ST RealWorld a
+ GHC.IO: liftIO :: IO a -> State# RealWorld -> STret RealWorld a
+ GHC.IO: mask :: ((forall a. IO a -> IO a) -> IO b) -> IO b
+ GHC.IO: mask_ :: IO a -> IO a
+ GHC.IO: mplusIO :: IO a -> IO a -> IO a
+ GHC.IO: newtype IO a
+ GHC.IO: noDuplicate :: IO ()
+ GHC.IO: onException :: IO a -> IO b -> IO a
+ GHC.IO: stToIO :: ST RealWorld a -> IO a
+ GHC.IO: throwIO :: Exception e => e -> IO a
+ GHC.IO: type FilePath = String
+ GHC.IO: unIO :: IO a -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.IO: uninterruptibleMask :: ((forall a. IO a -> IO a) -> IO b) -> IO b
+ GHC.IO: uninterruptibleMask_ :: IO a -> IO a
+ GHC.IO: unsafeDupableInterleaveIO :: IO a -> IO a
+ GHC.IO: unsafeDupablePerformIO :: IO a -> a
+ GHC.IO: unsafeIOToST :: IO a -> ST s a
+ GHC.IO: unsafeInterleaveIO :: IO a -> IO a
+ GHC.IO: unsafePerformIO :: IO a -> a
+ GHC.IO: unsafeSTToIO :: ST s a -> IO a
+ GHC.IO: unsafeUnmask :: IO a -> IO a
+ GHC.IO.Encoding.Iconv: iconvEncoding :: String -> IO (Maybe TextEncoding)
+ GHC.IO.Encoding.Iconv: localeEncodingName :: String
+ GHC.IO.Encoding.Iconv: mkIconvEncoding :: CodingFailureMode -> String -> IO (Maybe TextEncoding)
+ GHC.IO.Exception: AllocationLimitExceeded :: AllocationLimitExceeded
+ GHC.IO.Exception: AlreadyExists :: IOErrorType
+ GHC.IO.Exception: AssertionFailed :: String -> AssertionFailed
+ GHC.IO.Exception: BlockedIndefinitelyOnMVar :: BlockedIndefinitelyOnMVar
+ GHC.IO.Exception: BlockedIndefinitelyOnSTM :: BlockedIndefinitelyOnSTM
+ GHC.IO.Exception: CompactionFailed :: String -> CompactionFailed
+ GHC.IO.Exception: Deadlock :: Deadlock
+ GHC.IO.Exception: EOF :: IOErrorType
+ GHC.IO.Exception: ExitFailure :: Int -> ExitCode
+ GHC.IO.Exception: ExitSuccess :: ExitCode
+ GHC.IO.Exception: FixIOException :: FixIOException
+ GHC.IO.Exception: HardwareFault :: IOErrorType
+ GHC.IO.Exception: HeapOverflow :: AsyncException
+ GHC.IO.Exception: IOError :: Maybe Handle -> IOErrorType -> String -> String -> Maybe CInt -> Maybe FilePath -> IOException
+ GHC.IO.Exception: IllegalOperation :: IOErrorType
+ GHC.IO.Exception: InappropriateType :: IOErrorType
+ GHC.IO.Exception: IndexOutOfBounds :: String -> ArrayException
+ GHC.IO.Exception: Interrupted :: IOErrorType
+ GHC.IO.Exception: InvalidArgument :: IOErrorType
+ GHC.IO.Exception: NoSuchThing :: IOErrorType
+ GHC.IO.Exception: OtherError :: IOErrorType
+ GHC.IO.Exception: PermissionDenied :: IOErrorType
+ GHC.IO.Exception: ProtocolError :: IOErrorType
+ GHC.IO.Exception: ResourceBusy :: IOErrorType
+ GHC.IO.Exception: ResourceExhausted :: IOErrorType
+ GHC.IO.Exception: ResourceVanished :: IOErrorType
+ GHC.IO.Exception: SomeAsyncException :: e -> SomeAsyncException
+ GHC.IO.Exception: StackOverflow :: AsyncException
+ GHC.IO.Exception: SystemError :: IOErrorType
+ GHC.IO.Exception: ThreadKilled :: AsyncException
+ GHC.IO.Exception: TimeExpired :: IOErrorType
+ GHC.IO.Exception: UndefinedElement :: String -> ArrayException
+ GHC.IO.Exception: UnsatisfiedConstraints :: IOErrorType
+ GHC.IO.Exception: UnsupportedOperation :: IOErrorType
+ GHC.IO.Exception: UserError :: IOErrorType
+ GHC.IO.Exception: UserInterrupt :: AsyncException
+ GHC.IO.Exception: [ioe_description] :: IOException -> String
+ GHC.IO.Exception: [ioe_errno] :: IOException -> Maybe CInt
+ GHC.IO.Exception: [ioe_filename] :: IOException -> Maybe FilePath
+ GHC.IO.Exception: [ioe_handle] :: IOException -> Maybe Handle
+ GHC.IO.Exception: [ioe_location] :: IOException -> String
+ GHC.IO.Exception: [ioe_type] :: IOException -> IOErrorType
+ GHC.IO.Exception: allocationLimitExceeded :: SomeException
+ GHC.IO.Exception: assertError :: (?callStack :: CallStack) => Bool -> a -> a
+ GHC.IO.Exception: asyncExceptionFromException :: Exception e => SomeException -> Maybe e
+ GHC.IO.Exception: asyncExceptionToException :: Exception e => e -> SomeException
+ GHC.IO.Exception: blockedIndefinitelyOnMVar :: SomeException
+ GHC.IO.Exception: blockedIndefinitelyOnSTM :: SomeException
+ GHC.IO.Exception: cannotCompactFunction :: SomeException
+ GHC.IO.Exception: cannotCompactMutable :: SomeException
+ GHC.IO.Exception: cannotCompactPinned :: SomeException
+ GHC.IO.Exception: data AllocationLimitExceeded
+ GHC.IO.Exception: data ArrayException
+ GHC.IO.Exception: data AsyncException
+ GHC.IO.Exception: data BlockedIndefinitelyOnMVar
+ GHC.IO.Exception: data BlockedIndefinitelyOnSTM
+ GHC.IO.Exception: data Deadlock
+ GHC.IO.Exception: data ExitCode
+ GHC.IO.Exception: data FixIOException
+ GHC.IO.Exception: data IOErrorType
+ GHC.IO.Exception: data IOException
+ GHC.IO.Exception: data SomeAsyncException
+ GHC.IO.Exception: heapOverflow :: SomeException
+ GHC.IO.Exception: instance GHC.Classes.Eq GHC.IO.Exception.ArrayException
+ GHC.IO.Exception: instance GHC.Classes.Eq GHC.IO.Exception.AsyncException
+ GHC.IO.Exception: instance GHC.Classes.Eq GHC.IO.Exception.ExitCode
+ GHC.IO.Exception: instance GHC.Classes.Eq GHC.IO.Exception.IOErrorType
+ GHC.IO.Exception: instance GHC.Classes.Eq GHC.IO.Exception.IOException
+ GHC.IO.Exception: instance GHC.Classes.Ord GHC.IO.Exception.ArrayException
+ GHC.IO.Exception: instance GHC.Classes.Ord GHC.IO.Exception.AsyncException
+ GHC.IO.Exception: instance GHC.Classes.Ord GHC.IO.Exception.ExitCode
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.AllocationLimitExceeded
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.ArrayException
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.AssertionFailed
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.AsyncException
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.BlockedIndefinitelyOnMVar
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.BlockedIndefinitelyOnSTM
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.CompactionFailed
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.Deadlock
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.ExitCode
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.FixIOException
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.IOException
+ GHC.IO.Exception: instance GHC.Exception.Type.Exception GHC.IO.Exception.SomeAsyncException
+ GHC.IO.Exception: instance GHC.Generics.Generic GHC.IO.Exception.ExitCode
+ GHC.IO.Exception: instance GHC.Read.Read GHC.IO.Exception.ExitCode
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.AllocationLimitExceeded
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.ArrayException
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.AssertionFailed
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.AsyncException
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.BlockedIndefinitelyOnMVar
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.BlockedIndefinitelyOnSTM
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.CompactionFailed
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.Deadlock
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.ExitCode
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.FixIOException
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.IOErrorType
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.IOException
+ GHC.IO.Exception: instance GHC.Show.Show GHC.IO.Exception.SomeAsyncException
+ GHC.IO.Exception: ioError :: IOError -> IO a
+ GHC.IO.Exception: ioException :: IOException -> IO a
+ GHC.IO.Exception: newtype AssertionFailed
+ GHC.IO.Exception: newtype CompactionFailed
+ GHC.IO.Exception: stackOverflow :: SomeException
+ GHC.IO.Exception: type IOError = IOException
+ GHC.IO.Exception: unsupportedOperation :: IOError
+ GHC.IO.Exception: untangle :: Addr# -> String -> String
+ GHC.IO.Exception: userError :: String -> IOError
+ GHC.IO.FD: FD :: {-# UNPACK #-} !CInt -> {-# UNPACK #-} !Int -> FD
+ GHC.IO.FD: [fdFD] :: FD -> {-# UNPACK #-} !CInt
+ GHC.IO.FD: [fdIsNonBlocking] :: FD -> {-# UNPACK #-} !Int
+ GHC.IO.FD: data FD
+ GHC.IO.FD: instance GHC.IO.BufferedIO.BufferedIO GHC.IO.FD.FD
+ GHC.IO.FD: instance GHC.IO.Device.IODevice GHC.IO.FD.FD
+ GHC.IO.FD: instance GHC.IO.Device.RawIO GHC.IO.FD.FD
+ GHC.IO.FD: instance GHC.Show.Show GHC.IO.FD.FD
+ GHC.IO.FD: mkFD :: CInt -> IOMode -> Maybe (IODeviceType, CDev, CIno) -> Bool -> Bool -> IO (FD, IODeviceType)
+ GHC.IO.FD: openFile :: FilePath -> IOMode -> Bool -> IO (FD, IODeviceType)
+ GHC.IO.FD: readRawBufferPtr :: String -> FD -> Ptr Word8 -> Int -> CSize -> IO Int
+ GHC.IO.FD: readRawBufferPtrNoBlock :: String -> FD -> Ptr Word8 -> Int -> CSize -> IO Int
+ GHC.IO.FD: release :: FD -> IO ()
+ GHC.IO.FD: setNonBlockingMode :: FD -> Bool -> IO FD
+ GHC.IO.FD: stderr :: FD
+ GHC.IO.FD: stdin :: FD
+ GHC.IO.FD: stdout :: FD
+ GHC.IO.FD: writeRawBufferPtr :: String -> FD -> Ptr Word8 -> Int -> CSize -> IO CInt
+ GHC.IO.Handle.Internals: augmentIOError :: IOException -> String -> Handle -> IOException
+ GHC.IO.Handle.Internals: closeTextCodecs :: Handle__ -> IO ()
+ GHC.IO.Handle.Internals: dEFAULT_CHAR_BUFFER_SIZE :: Int
+ GHC.IO.Handle.Internals: debugIO :: String -> IO ()
+ GHC.IO.Handle.Internals: decodeByteBuf :: Handle__ -> CharBuffer -> IO CharBuffer
+ GHC.IO.Handle.Internals: flushBuffer :: Handle__ -> IO ()
+ GHC.IO.Handle.Internals: flushByteReadBuffer :: Handle__ -> IO ()
+ GHC.IO.Handle.Internals: flushByteWriteBuffer :: Handle__ -> IO ()
+ GHC.IO.Handle.Internals: flushCharBuffer :: Handle__ -> IO ()
+ GHC.IO.Handle.Internals: flushCharReadBuffer :: Handle__ -> IO ()
+ GHC.IO.Handle.Internals: flushWriteBuffer :: Handle__ -> IO ()
+ GHC.IO.Handle.Internals: hClose_help :: Handle__ -> IO (Handle__, Maybe SomeException)
+ GHC.IO.Handle.Internals: hLookAhead_ :: Handle__ -> IO Char
+ GHC.IO.Handle.Internals: handleFinalizer :: FilePath -> MVar Handle__ -> IO ()
+ GHC.IO.Handle.Internals: initBufferState :: HandleType -> BufferState
+ GHC.IO.Handle.Internals: ioe_EOF :: IO a
+ GHC.IO.Handle.Internals: ioe_bufsiz :: Int -> IO a
+ GHC.IO.Handle.Internals: ioe_closedHandle :: IO a
+ GHC.IO.Handle.Internals: ioe_finalizedHandle :: FilePath -> Handle__
+ GHC.IO.Handle.Internals: ioe_notReadable :: IO a
+ GHC.IO.Handle.Internals: ioe_notWritable :: IO a
+ GHC.IO.Handle.Internals: ioe_semiclosedHandle :: IO a
+ GHC.IO.Handle.Internals: mkDuplexHandle :: (IODevice dev, BufferedIO dev, Typeable dev) => dev -> FilePath -> Maybe TextEncoding -> NewlineMode -> IO Handle
+ GHC.IO.Handle.Internals: mkFileHandle :: (IODevice dev, BufferedIO dev, Typeable dev) => dev -> FilePath -> IOMode -> Maybe TextEncoding -> NewlineMode -> IO Handle
+ GHC.IO.Handle.Internals: mkHandle :: (IODevice dev, BufferedIO dev, Typeable dev) => dev -> FilePath -> HandleType -> Bool -> Maybe TextEncoding -> NewlineMode -> Maybe HandleFinalizer -> Maybe (MVar Handle__) -> IO Handle
+ GHC.IO.Handle.Internals: openTextEncoding :: Maybe TextEncoding -> HandleType -> (forall es ds. Maybe (TextEncoder es) -> Maybe (TextDecoder ds) -> IO a) -> IO a
+ GHC.IO.Handle.Internals: readTextDevice :: Handle__ -> CharBuffer -> IO CharBuffer
+ GHC.IO.Handle.Internals: readTextDeviceNonBlocking :: Handle__ -> CharBuffer -> IO CharBuffer
+ GHC.IO.Handle.Internals: type HandleFinalizer = FilePath -> MVar Handle__ -> IO ()
+ GHC.IO.Handle.Internals: wantReadableHandle :: String -> Handle -> (Handle__ -> IO (Handle__, a)) -> IO a
+ GHC.IO.Handle.Internals: wantReadableHandle_ :: String -> Handle -> (Handle__ -> IO a) -> IO a
+ GHC.IO.Handle.Internals: wantSeekableHandle :: String -> Handle -> (Handle__ -> IO a) -> IO a
+ GHC.IO.Handle.Internals: wantWritableHandle :: String -> Handle -> (Handle__ -> IO a) -> IO a
+ GHC.IO.Handle.Internals: withAllHandles__ :: String -> Handle -> (Handle__ -> IO Handle__) -> IO ()
+ GHC.IO.Handle.Internals: withHandle :: String -> Handle -> (Handle__ -> IO (Handle__, a)) -> IO a
+ GHC.IO.Handle.Internals: withHandle' :: String -> Handle -> MVar Handle__ -> (Handle__ -> IO (Handle__, a)) -> IO a
+ GHC.IO.Handle.Internals: withHandle_ :: String -> Handle -> (Handle__ -> IO a) -> IO a
+ GHC.IO.Handle.Internals: withHandle_' :: String -> Handle -> MVar Handle__ -> (Handle__ -> IO a) -> IO a
+ GHC.IO.Handle.Internals: withHandle__' :: String -> Handle -> MVar Handle__ -> (Handle__ -> IO Handle__) -> IO ()
+ GHC.IO.Handle.Internals: writeCharBuffer :: Handle__ -> CharBuffer -> IO ()
+ GHC.IO.Handle.Text: commitBuffer' :: RawCharBuffer -> Int -> Int -> Bool -> Bool -> Handle__ -> IO CharBuffer
+ GHC.IO.Handle.Text: hGetBuf :: Handle -> Ptr a -> Int -> IO Int
+ GHC.IO.Handle.Text: hGetBufNonBlocking :: Handle -> Ptr a -> Int -> IO Int
+ GHC.IO.Handle.Text: hGetBufSome :: Handle -> Ptr a -> Int -> IO Int
+ GHC.IO.Handle.Text: hGetChar :: Handle -> IO Char
+ GHC.IO.Handle.Text: hGetContents :: Handle -> IO String
+ GHC.IO.Handle.Text: hGetLine :: Handle -> IO String
+ GHC.IO.Handle.Text: hPutBuf :: Handle -> Ptr a -> Int -> IO ()
+ GHC.IO.Handle.Text: hPutBufNonBlocking :: Handle -> Ptr a -> Int -> IO Int
+ GHC.IO.Handle.Text: hPutChar :: Handle -> Char -> IO ()
+ GHC.IO.Handle.Text: hPutStr :: Handle -> String -> IO ()
+ GHC.IO.Handle.Text: hPutStrLn :: Handle -> String -> IO ()
+ GHC.IO.Handle.Text: hWaitForInput :: Handle -> Int -> IO Bool
+ GHC.IO.Handle.Text: memcpy :: Ptr a -> Ptr a -> CSize -> IO (Ptr ())
+ GHC.IO.Handle.Types: AppendHandle :: HandleType
+ GHC.IO.Handle.Types: BlockBuffering :: Maybe Int -> BufferMode
+ GHC.IO.Handle.Types: BufferCodec :: CodeBuffer from to -> (Buffer from -> Buffer to -> IO (Buffer from, Buffer to)) -> IO () -> IO state -> (state -> IO ()) -> BufferCodec from to state
+ GHC.IO.Handle.Types: BufferListCons :: RawBuffer e -> BufferList e -> BufferList e
+ GHC.IO.Handle.Types: BufferListNil :: BufferList e
+ GHC.IO.Handle.Types: CRLF :: Newline
+ GHC.IO.Handle.Types: ClosedHandle :: HandleType
+ GHC.IO.Handle.Types: DuplexHandle :: FilePath -> !MVar Handle__ -> !MVar Handle__ -> Handle
+ GHC.IO.Handle.Types: FileHandle :: FilePath -> !MVar Handle__ -> Handle
+ GHC.IO.Handle.Types: Handle__ :: !dev -> HandleType -> !IORef (Buffer Word8) -> BufferMode -> !IORef (dec_state, Buffer Word8) -> !IORef (Buffer CharBufElem) -> !IORef (BufferList CharBufElem) -> Maybe (TextEncoder enc_state) -> Maybe (TextDecoder dec_state) -> Maybe TextEncoding -> Newline -> Newline -> Maybe (MVar Handle__) -> Handle__
+ GHC.IO.Handle.Types: LF :: Newline
+ GHC.IO.Handle.Types: LineBuffering :: BufferMode
+ GHC.IO.Handle.Types: NewlineMode :: Newline -> Newline -> NewlineMode
+ GHC.IO.Handle.Types: NoBuffering :: BufferMode
+ GHC.IO.Handle.Types: ReadHandle :: HandleType
+ GHC.IO.Handle.Types: ReadWriteHandle :: HandleType
+ GHC.IO.Handle.Types: SemiClosedHandle :: HandleType
+ GHC.IO.Handle.Types: WriteHandle :: HandleType
+ GHC.IO.Handle.Types: [close] :: BufferCodec from to state -> IO ()
+ GHC.IO.Handle.Types: [encode] :: BufferCodec from to state -> CodeBuffer from to
+ GHC.IO.Handle.Types: [getState] :: BufferCodec from to state -> IO state
+ GHC.IO.Handle.Types: [haBufferMode] :: Handle__ -> BufferMode
+ GHC.IO.Handle.Types: [haBuffers] :: Handle__ -> !IORef (BufferList CharBufElem)
+ GHC.IO.Handle.Types: [haByteBuffer] :: Handle__ -> !IORef (Buffer Word8)
+ GHC.IO.Handle.Types: [haCharBuffer] :: Handle__ -> !IORef (Buffer CharBufElem)
+ GHC.IO.Handle.Types: [haCodec] :: Handle__ -> Maybe TextEncoding
+ GHC.IO.Handle.Types: [haDecoder] :: Handle__ -> Maybe (TextDecoder dec_state)
+ GHC.IO.Handle.Types: [haDevice] :: Handle__ -> !dev
+ GHC.IO.Handle.Types: [haEncoder] :: Handle__ -> Maybe (TextEncoder enc_state)
+ GHC.IO.Handle.Types: [haInputNL] :: Handle__ -> Newline
+ GHC.IO.Handle.Types: [haLastDecode] :: Handle__ -> !IORef (dec_state, Buffer Word8)
+ GHC.IO.Handle.Types: [haOtherSide] :: Handle__ -> Maybe (MVar Handle__)
+ GHC.IO.Handle.Types: [haOutputNL] :: Handle__ -> Newline
+ GHC.IO.Handle.Types: [haType] :: Handle__ -> HandleType
+ GHC.IO.Handle.Types: [inputNL] :: NewlineMode -> Newline
+ GHC.IO.Handle.Types: [outputNL] :: NewlineMode -> Newline
+ GHC.IO.Handle.Types: [recover] :: BufferCodec from to state -> Buffer from -> Buffer to -> IO (Buffer from, Buffer to)
+ GHC.IO.Handle.Types: [setState] :: BufferCodec from to state -> state -> IO ()
+ GHC.IO.Handle.Types: checkHandleInvariants :: Handle__ -> IO ()
+ GHC.IO.Handle.Types: data BufferCodec from to state
+ GHC.IO.Handle.Types: data BufferList e
+ GHC.IO.Handle.Types: data BufferMode
+ GHC.IO.Handle.Types: data Handle
+ GHC.IO.Handle.Types: data HandleType
+ GHC.IO.Handle.Types: data Handle__
+ GHC.IO.Handle.Types: data Newline
+ GHC.IO.Handle.Types: data NewlineMode
+ GHC.IO.Handle.Types: instance GHC.Classes.Eq GHC.IO.Handle.Types.BufferMode
+ GHC.IO.Handle.Types: instance GHC.Classes.Eq GHC.IO.Handle.Types.Handle
+ GHC.IO.Handle.Types: instance GHC.Classes.Eq GHC.IO.Handle.Types.Newline
+ GHC.IO.Handle.Types: instance GHC.Classes.Eq GHC.IO.Handle.Types.NewlineMode
+ GHC.IO.Handle.Types: instance GHC.Classes.Ord GHC.IO.Handle.Types.BufferMode
+ GHC.IO.Handle.Types: instance GHC.Classes.Ord GHC.IO.Handle.Types.Newline
+ GHC.IO.Handle.Types: instance GHC.Classes.Ord GHC.IO.Handle.Types.NewlineMode
+ GHC.IO.Handle.Types: instance GHC.Read.Read GHC.IO.Handle.Types.BufferMode
+ GHC.IO.Handle.Types: instance GHC.Read.Read GHC.IO.Handle.Types.Newline
+ GHC.IO.Handle.Types: instance GHC.Read.Read GHC.IO.Handle.Types.NewlineMode
+ GHC.IO.Handle.Types: instance GHC.Show.Show GHC.IO.Handle.Types.BufferMode
+ GHC.IO.Handle.Types: instance GHC.Show.Show GHC.IO.Handle.Types.Handle
+ GHC.IO.Handle.Types: instance GHC.Show.Show GHC.IO.Handle.Types.HandleType
+ GHC.IO.Handle.Types: instance GHC.Show.Show GHC.IO.Handle.Types.Newline
+ GHC.IO.Handle.Types: instance GHC.Show.Show GHC.IO.Handle.Types.NewlineMode
+ GHC.IO.Handle.Types: isReadWriteHandleType :: HandleType -> Bool
+ GHC.IO.Handle.Types: isReadableHandleType :: HandleType -> Bool
+ GHC.IO.Handle.Types: isWritableHandleType :: HandleType -> Bool
+ GHC.IO.Handle.Types: nativeNewline :: Newline
+ GHC.IO.Handle.Types: nativeNewlineMode :: NewlineMode
+ GHC.IO.Handle.Types: noNewlineTranslation :: NewlineMode
+ GHC.IO.Handle.Types: showHandle :: FilePath -> String -> String
+ GHC.IO.Handle.Types: universalNewlineMode :: NewlineMode
+ GHC.IO.IOMode: AppendMode :: IOMode
+ GHC.IO.IOMode: ReadMode :: IOMode
+ GHC.IO.IOMode: ReadWriteMode :: IOMode
+ GHC.IO.IOMode: WriteMode :: IOMode
+ GHC.IO.IOMode: data IOMode
+ GHC.IO.IOMode: instance GHC.Arr.Ix GHC.IO.IOMode.IOMode
+ GHC.IO.IOMode: instance GHC.Classes.Eq GHC.IO.IOMode.IOMode
+ GHC.IO.IOMode: instance GHC.Classes.Ord GHC.IO.IOMode.IOMode
+ GHC.IO.IOMode: instance GHC.Enum.Enum GHC.IO.IOMode.IOMode
+ GHC.IO.IOMode: instance GHC.Read.Read GHC.IO.IOMode.IOMode
+ GHC.IO.IOMode: instance GHC.Show.Show GHC.IO.IOMode.IOMode
+ GHC.IO.Unsafe: noDuplicate :: IO ()
+ GHC.IO.Unsafe: unsafeDupableInterleaveIO :: IO a -> IO a
+ GHC.IO.Unsafe: unsafeDupablePerformIO :: IO a -> a
+ GHC.IO.Unsafe: unsafeInterleaveIO :: IO a -> IO a
+ GHC.IO.Unsafe: unsafePerformIO :: IO a -> a
+ GHC.IOArray: IOArray :: STArray RealWorld i e -> IOArray i e
+ GHC.IOArray: boundsIOArray :: IOArray i e -> (i, i)
+ GHC.IOArray: instance GHC.Classes.Eq (GHC.IOArray.IOArray i e)
+ GHC.IOArray: newIOArray :: Ix i => (i, i) -> e -> IO (IOArray i e)
+ GHC.IOArray: newtype IOArray i e
+ GHC.IOArray: readIOArray :: Ix i => IOArray i e -> i -> IO e
+ GHC.IOArray: unsafeReadIOArray :: IOArray i e -> Int -> IO e
+ GHC.IOArray: unsafeWriteIOArray :: IOArray i e -> Int -> e -> IO ()
+ GHC.IOArray: writeIOArray :: Ix i => IOArray i e -> i -> e -> IO ()
+ GHC.IORef: IORef :: STRef RealWorld a -> IORef a
+ GHC.IORef: atomicModifyIORef' :: IORef a -> (a -> (a, b)) -> IO b
+ GHC.IORef: atomicModifyIORef'_ :: IORef a -> (a -> a) -> IO (a, a)
+ GHC.IORef: atomicModifyIORef2 :: IORef a -> (a -> (a, b)) -> IO (a, (a, b))
+ GHC.IORef: atomicModifyIORef2Lazy :: IORef a -> (a -> (a, b)) -> IO (a, (a, b))
+ GHC.IORef: atomicModifyIORefLazy_ :: IORef a -> (a -> a) -> IO (a, a)
+ GHC.IORef: atomicModifyIORefP :: IORef a -> (a -> (a, b)) -> IO b
+ GHC.IORef: atomicSwapIORef :: IORef a -> a -> IO a
+ GHC.IORef: instance GHC.Classes.Eq (GHC.IORef.IORef a)
+ GHC.IORef: newIORef :: a -> IO (IORef a)
+ GHC.IORef: newtype IORef a
+ GHC.IORef: readIORef :: IORef a -> IO a
+ GHC.IORef: writeIORef :: IORef a -> a -> IO ()
+ GHC.Int: I# :: Int# -> Int
+ GHC.Int: I16# :: Int# -> Int16
+ GHC.Int: I32# :: Int# -> Int32
+ GHC.Int: I64# :: Int# -> Int64
+ GHC.Int: I8# :: Int# -> Int8
+ GHC.Int: data Int
+ GHC.Int: data {-# CTYPE "HsInt64" #-} Int64
+ GHC.Int: eqInt :: Int -> Int -> Bool
+ GHC.Int: eqInt16 :: Int16 -> Int16 -> Bool
+ GHC.Int: eqInt32 :: Int32 -> Int32 -> Bool
+ GHC.Int: eqInt64 :: Int64 -> Int64 -> Bool
+ GHC.Int: eqInt8 :: Int8 -> Int8 -> Bool
+ GHC.Int: geInt :: Int -> Int -> Bool
+ GHC.Int: geInt16 :: Int16 -> Int16 -> Bool
+ GHC.Int: geInt32 :: Int32 -> Int32 -> Bool
+ GHC.Int: geInt64 :: Int64 -> Int64 -> Bool
+ GHC.Int: geInt8 :: Int8 -> Int8 -> Bool
+ GHC.Int: gtInt :: Int -> Int -> Bool
+ GHC.Int: gtInt16 :: Int16 -> Int16 -> Bool
+ GHC.Int: gtInt32 :: Int32 -> Int32 -> Bool
+ GHC.Int: gtInt64 :: Int64 -> Int64 -> Bool
+ GHC.Int: gtInt8 :: Int8 -> Int8 -> Bool
+ GHC.Int: instance Data.Bits.Bits GHC.Int.Int16
+ GHC.Int: instance Data.Bits.Bits GHC.Int.Int32
+ GHC.Int: instance Data.Bits.Bits GHC.Int.Int64
+ GHC.Int: instance Data.Bits.Bits GHC.Int.Int8
+ GHC.Int: instance Data.Bits.FiniteBits GHC.Int.Int16
+ GHC.Int: instance Data.Bits.FiniteBits GHC.Int.Int32
+ GHC.Int: instance Data.Bits.FiniteBits GHC.Int.Int64
+ GHC.Int: instance Data.Bits.FiniteBits GHC.Int.Int8
+ GHC.Int: instance GHC.Arr.Ix GHC.Int.Int16
+ GHC.Int: instance GHC.Arr.Ix GHC.Int.Int32
+ GHC.Int: instance GHC.Arr.Ix GHC.Int.Int64
+ GHC.Int: instance GHC.Arr.Ix GHC.Int.Int8
+ GHC.Int: instance GHC.Classes.Eq GHC.Int.Int16
+ GHC.Int: instance GHC.Classes.Eq GHC.Int.Int32
+ GHC.Int: instance GHC.Classes.Eq GHC.Int.Int64
+ GHC.Int: instance GHC.Classes.Eq GHC.Int.Int8
+ GHC.Int: instance GHC.Classes.Ord GHC.Int.Int16
+ GHC.Int: instance GHC.Classes.Ord GHC.Int.Int32
+ GHC.Int: instance GHC.Classes.Ord GHC.Int.Int64
+ GHC.Int: instance GHC.Classes.Ord GHC.Int.Int8
+ GHC.Int: instance GHC.Enum.Bounded GHC.Int.Int16
+ GHC.Int: instance GHC.Enum.Bounded GHC.Int.Int32
+ GHC.Int: instance GHC.Enum.Bounded GHC.Int.Int64
+ GHC.Int: instance GHC.Enum.Bounded GHC.Int.Int8
+ GHC.Int: instance GHC.Enum.Enum GHC.Int.Int16
+ GHC.Int: instance GHC.Enum.Enum GHC.Int.Int32
+ GHC.Int: instance GHC.Enum.Enum GHC.Int.Int64
+ GHC.Int: instance GHC.Enum.Enum GHC.Int.Int8
+ GHC.Int: instance GHC.Num.Num GHC.Int.Int16
+ GHC.Int: instance GHC.Num.Num GHC.Int.Int32
+ GHC.Int: instance GHC.Num.Num GHC.Int.Int64
+ GHC.Int: instance GHC.Num.Num GHC.Int.Int8
+ GHC.Int: instance GHC.Read.Read GHC.Int.Int16
+ GHC.Int: instance GHC.Read.Read GHC.Int.Int32
+ GHC.Int: instance GHC.Read.Read GHC.Int.Int64
+ GHC.Int: instance GHC.Read.Read GHC.Int.Int8
+ GHC.Int: instance GHC.Real.Integral GHC.Int.Int16
+ GHC.Int: instance GHC.Real.Integral GHC.Int.Int32
+ GHC.Int: instance GHC.Real.Integral GHC.Int.Int64
+ GHC.Int: instance GHC.Real.Integral GHC.Int.Int8
+ GHC.Int: instance GHC.Real.Real GHC.Int.Int16
+ GHC.Int: instance GHC.Real.Real GHC.Int.Int32
+ GHC.Int: instance GHC.Real.Real GHC.Int.Int64
+ GHC.Int: instance GHC.Real.Real GHC.Int.Int8
+ GHC.Int: instance GHC.Show.Show GHC.Int.Int16
+ GHC.Int: instance GHC.Show.Show GHC.Int.Int32
+ GHC.Int: instance GHC.Show.Show GHC.Int.Int64
+ GHC.Int: instance GHC.Show.Show GHC.Int.Int8
+ GHC.Int: leInt :: Int -> Int -> Bool
+ GHC.Int: leInt16 :: Int16 -> Int16 -> Bool
+ GHC.Int: leInt32 :: Int32 -> Int32 -> Bool
+ GHC.Int: leInt64 :: Int64 -> Int64 -> Bool
+ GHC.Int: leInt8 :: Int8 -> Int8 -> Bool
+ GHC.Int: ltInt :: Int -> Int -> Bool
+ GHC.Int: ltInt16 :: Int16 -> Int16 -> Bool
+ GHC.Int: ltInt32 :: Int32 -> Int32 -> Bool
+ GHC.Int: ltInt64 :: Int64 -> Int64 -> Bool
+ GHC.Int: ltInt8 :: Int8 -> Int8 -> Bool
+ GHC.Int: neInt :: Int -> Int -> Bool
+ GHC.Int: neInt16 :: Int16 -> Int16 -> Bool
+ GHC.Int: neInt32 :: Int32 -> Int32 -> Bool
+ GHC.Int: neInt64 :: Int64 -> Int64 -> Bool
+ GHC.Int: neInt8 :: Int8 -> Int8 -> Bool
+ GHC.Int: uncheckedIShiftL64# :: Int# -> Int# -> Int#
+ GHC.Int: uncheckedIShiftRA64# :: Int# -> Int# -> Int#
+ GHC.MVar: MVar :: MVar# RealWorld a -> MVar a
+ GHC.MVar: addMVarFinalizer :: MVar a -> IO () -> IO ()
+ GHC.MVar: data MVar a
+ GHC.MVar: instance GHC.Classes.Eq (GHC.MVar.MVar a)
+ GHC.MVar: isEmptyMVar :: MVar a -> IO Bool
+ GHC.MVar: newEmptyMVar :: IO (MVar a)
+ GHC.MVar: newMVar :: a -> IO (MVar a)
+ GHC.MVar: putMVar :: MVar a -> a -> IO ()
+ GHC.MVar: readMVar :: MVar a -> IO a
+ GHC.MVar: takeMVar :: MVar a -> IO a
+ GHC.MVar: tryPutMVar :: MVar a -> a -> IO Bool
+ GHC.MVar: tryReadMVar :: MVar a -> IO (Maybe a)
+ GHC.MVar: tryTakeMVar :: MVar a -> IO (Maybe a)
+ GHC.Num: (*) :: Num a => a -> a -> a
+ GHC.Num: (+) :: Num a => a -> a -> a
+ GHC.Num: (-) :: Num a => a -> a -> a
+ GHC.Num: abs :: Num a => a -> a
+ GHC.Num: class Num a
+ GHC.Num: fromInteger :: Num a => Integer -> a
+ GHC.Num: infixl 6 -
+ GHC.Num: infixl 7 *
+ GHC.Num: instance GHC.Num.Num GHC.Integer.Type.Integer
+ GHC.Num: instance GHC.Num.Num GHC.Natural.Natural
+ GHC.Num: instance GHC.Num.Num GHC.Types.Int
+ GHC.Num: instance GHC.Num.Num GHC.Types.Word
+ GHC.Num: negate :: Num a => a -> a
+ GHC.Num: signum :: Num a => a -> a
+ GHC.Num: subtract :: Num a => a -> a -> a
+ GHC.Pack: packCString# :: [Char] -> ByteArray#
+ GHC.Pack: unpackAppendCString# :: Addr# -> [Char] -> [Char]
+ GHC.Pack: unpackCString :: Ptr a -> [Char]
+ GHC.Pack: unpackCString# :: Addr# -> [Char]
+ GHC.Pack: unpackFoldrCString# :: Addr# -> (Char -> a -> a) -> a -> a
+ GHC.Pack: unpackNBytes# :: Addr# -> Int# -> [Char]
+ GHC.Ptr: FunPtr :: Addr# -> FunPtr a
+ GHC.Ptr: Ptr :: Addr# -> Ptr a
+ GHC.Ptr: alignPtr :: Ptr a -> Int -> Ptr a
+ GHC.Ptr: castFunPtr :: FunPtr a -> FunPtr b
+ GHC.Ptr: castFunPtrToPtr :: FunPtr a -> Ptr b
+ GHC.Ptr: castPtr :: Ptr a -> Ptr b
+ GHC.Ptr: castPtrToFunPtr :: Ptr a -> FunPtr b
+ GHC.Ptr: data FunPtr a
+ GHC.Ptr: data Ptr a
+ GHC.Ptr: instance GHC.Classes.Eq (GHC.Ptr.FunPtr a)
+ GHC.Ptr: instance GHC.Classes.Eq (GHC.Ptr.Ptr a)
+ GHC.Ptr: instance GHC.Classes.Ord (GHC.Ptr.FunPtr a)
+ GHC.Ptr: instance GHC.Classes.Ord (GHC.Ptr.Ptr a)
+ GHC.Ptr: instance GHC.Show.Show (GHC.Ptr.FunPtr a)
+ GHC.Ptr: instance GHC.Show.Show (GHC.Ptr.Ptr a)
+ GHC.Ptr: minusPtr :: Ptr a -> Ptr b -> Int
+ GHC.Ptr: nullFunPtr :: FunPtr a
+ GHC.Ptr: nullPtr :: Ptr a
+ GHC.Ptr: plusPtr :: Ptr a -> Int -> Ptr b
+ GHC.Read: choose :: [(String, ReadPrec a)] -> ReadPrec a
+ GHC.Read: class Read a
+ GHC.Read: expectP :: Lexeme -> ReadPrec ()
+ GHC.Read: instance (GHC.Arr.Ix a, GHC.Read.Read a, GHC.Read.Read b) => GHC.Read.Read (GHC.Arr.Array a b)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b) => GHC.Read.Read (a, b)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c) => GHC.Read.Read (a, b, c)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d) => GHC.Read.Read (a, b, c, d)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e) => GHC.Read.Read (a, b, c, d, e)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f) => GHC.Read.Read (a, b, c, d, e, f)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g) => GHC.Read.Read (a, b, c, d, e, f, g)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g, GHC.Read.Read h) => GHC.Read.Read (a, b, c, d, e, f, g, h)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g, GHC.Read.Read h, GHC.Read.Read i) => GHC.Read.Read (a, b, c, d, e, f, g, h, i)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g, GHC.Read.Read h, GHC.Read.Read i, GHC.Read.Read j) => GHC.Read.Read (a, b, c, d, e, f, g, h, i, j)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g, GHC.Read.Read h, GHC.Read.Read i, GHC.Read.Read j, GHC.Read.Read k) => GHC.Read.Read (a, b, c, d, e, f, g, h, i, j, k)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g, GHC.Read.Read h, GHC.Read.Read i, GHC.Read.Read j, GHC.Read.Read k, GHC.Read.Read l) => GHC.Read.Read (a, b, c, d, e, f, g, h, i, j, k, l)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g, GHC.Read.Read h, GHC.Read.Read i, GHC.Read.Read j, GHC.Read.Read k, GHC.Read.Read l, GHC.Read.Read m) => GHC.Read.Read (a, b, c, d, e, f, g, h, i, j, k, l, m)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g, GHC.Read.Read h, GHC.Read.Read i, GHC.Read.Read j, GHC.Read.Read k, GHC.Read.Read l, GHC.Read.Read m, GHC.Read.Read n) => GHC.Read.Read (a, b, c, d, e, f, g, h, i, j, k, l, m, n)
+ GHC.Read: instance (GHC.Read.Read a, GHC.Read.Read b, GHC.Read.Read c, GHC.Read.Read d, GHC.Read.Read e, GHC.Read.Read f, GHC.Read.Read g, GHC.Read.Read h, GHC.Read.Read i, GHC.Read.Read j, GHC.Read.Read k, GHC.Read.Read l, GHC.Read.Read m, GHC.Read.Read n, GHC.Read.Read o) => GHC.Read.Read (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
+ GHC.Read: instance (GHC.Real.Integral a, GHC.Read.Read a) => GHC.Read.Read (GHC.Real.Ratio a)
+ GHC.Read: instance GHC.Read.Read ()
+ GHC.Read: instance GHC.Read.Read GHC.Integer.Type.Integer
+ GHC.Read: instance GHC.Read.Read GHC.Natural.Natural
+ GHC.Read: instance GHC.Read.Read GHC.Types.Bool
+ GHC.Read: instance GHC.Read.Read GHC.Types.Char
+ GHC.Read: instance GHC.Read.Read GHC.Types.Double
+ GHC.Read: instance GHC.Read.Read GHC.Types.Float
+ GHC.Read: instance GHC.Read.Read GHC.Types.Int
+ GHC.Read: instance GHC.Read.Read GHC.Types.Ordering
+ GHC.Read: instance GHC.Read.Read GHC.Types.Word
+ GHC.Read: instance GHC.Read.Read GHC.Unicode.GeneralCategory
+ GHC.Read: instance GHC.Read.Read GHC.Word.Word16
+ GHC.Read: instance GHC.Read.Read GHC.Word.Word32
+ GHC.Read: instance GHC.Read.Read GHC.Word.Word64
+ GHC.Read: instance GHC.Read.Read GHC.Word.Word8
+ GHC.Read: instance GHC.Read.Read Text.Read.Lex.Lexeme
+ GHC.Read: instance GHC.Read.Read a => GHC.Read.Read (GHC.Base.NonEmpty a)
+ GHC.Read: instance GHC.Read.Read a => GHC.Read.Read (GHC.Maybe.Maybe a)
+ GHC.Read: instance GHC.Read.Read a => GHC.Read.Read [a]
+ GHC.Read: lex :: ReadS String
+ GHC.Read: lexDigits :: ReadS String
+ GHC.Read: lexLitChar :: ReadS String
+ GHC.Read: lexP :: ReadPrec Lexeme
+ GHC.Read: list :: ReadPrec a -> ReadPrec [a]
+ GHC.Read: paren :: ReadPrec a -> ReadPrec a
+ GHC.Read: parens :: ReadPrec a -> ReadPrec a
+ GHC.Read: readField :: String -> ReadPrec a -> ReadPrec a
+ GHC.Read: readFieldHash :: String -> ReadPrec a -> ReadPrec a
+ GHC.Read: readList :: Read a => ReadS [a]
+ GHC.Read: readListDefault :: Read a => ReadS [a]
+ GHC.Read: readListPrec :: Read a => ReadPrec [a]
+ GHC.Read: readListPrecDefault :: Read a => ReadPrec [a]
+ GHC.Read: readLitChar :: ReadS Char
+ GHC.Read: readNumber :: Num a => (Lexeme -> ReadPrec a) -> ReadPrec a
+ GHC.Read: readParen :: Bool -> ReadS a -> ReadS a
+ GHC.Read: readPrec :: Read a => ReadPrec a
+ GHC.Read: readSymField :: String -> ReadPrec a -> ReadPrec a
+ GHC.Read: readsPrec :: Read a => Int -> ReadS a
+ GHC.Read: type ReadS a = String -> [(a, String)]
+ GHC.Real: (%) :: Integral a => a -> a -> Ratio a
+ GHC.Real: (/) :: Fractional a => a -> a -> a
+ GHC.Real: (:%) :: !a -> !a -> Ratio a
+ GHC.Real: (^%^) :: Integral a => Rational -> a -> Rational
+ GHC.Real: (^) :: (Num a, Integral b) => a -> b -> a
+ GHC.Real: (^^%^^) :: Integral a => Rational -> a -> Rational
+ GHC.Real: (^^) :: (Fractional a, Integral b) => a -> b -> a
+ GHC.Real: ceiling :: (RealFrac a, Integral b) => a -> b
+ GHC.Real: class (Num a) => Fractional a
+ GHC.Real: class (Real a, Enum a) => Integral a
+ GHC.Real: class (Num a, Ord a) => Real a
+ GHC.Real: class (Real a, Fractional a) => RealFrac a
+ GHC.Real: data Ratio a
+ GHC.Real: denominator :: Ratio a -> a
+ GHC.Real: div :: Integral a => a -> a -> a
+ GHC.Real: divMod :: Integral a => a -> a -> (a, a)
+ GHC.Real: divZeroError :: a
+ GHC.Real: even :: Integral a => a -> Bool
+ GHC.Real: floor :: (RealFrac a, Integral b) => a -> b
+ GHC.Real: fromIntegral :: (Integral a, Num b) => a -> b
+ GHC.Real: fromRational :: Fractional a => Rational -> a
+ GHC.Real: gcd :: Integral a => a -> a -> a
+ GHC.Real: gcdInt' :: Int -> Int -> Int
+ GHC.Real: gcdWord' :: Word -> Word -> Word
+ GHC.Real: infinity :: Rational
+ GHC.Real: infixl 7 /
+ GHC.Real: infixr 8 ^^
+ GHC.Real: instance GHC.Classes.Eq a => GHC.Classes.Eq (GHC.Real.Ratio a)
+ GHC.Real: instance GHC.Real.Integral GHC.Integer.Type.Integer
+ GHC.Real: instance GHC.Real.Integral GHC.Natural.Natural
+ GHC.Real: instance GHC.Real.Integral GHC.Types.Int
+ GHC.Real: instance GHC.Real.Integral GHC.Types.Word
+ GHC.Real: instance GHC.Real.Integral a => GHC.Classes.Ord (GHC.Real.Ratio a)
+ GHC.Real: instance GHC.Real.Integral a => GHC.Enum.Enum (GHC.Real.Ratio a)
+ GHC.Real: instance GHC.Real.Integral a => GHC.Num.Num (GHC.Real.Ratio a)
+ GHC.Real: instance GHC.Real.Integral a => GHC.Real.Fractional (GHC.Real.Ratio a)
+ GHC.Real: instance GHC.Real.Integral a => GHC.Real.Real (GHC.Real.Ratio a)
+ GHC.Real: instance GHC.Real.Integral a => GHC.Real.RealFrac (GHC.Real.Ratio a)
+ GHC.Real: instance GHC.Real.Real GHC.Integer.Type.Integer
+ GHC.Real: instance GHC.Real.Real GHC.Natural.Natural
+ GHC.Real: instance GHC.Real.Real GHC.Types.Int
+ GHC.Real: instance GHC.Real.Real GHC.Types.Word
+ GHC.Real: instance GHC.Show.Show a => GHC.Show.Show (GHC.Real.Ratio a)
+ GHC.Real: integralEnumFrom :: (Integral a, Bounded a) => a -> [a]
+ GHC.Real: integralEnumFromThen :: (Integral a, Bounded a) => a -> a -> [a]
+ GHC.Real: integralEnumFromThenTo :: Integral a => a -> a -> a -> [a]
+ GHC.Real: integralEnumFromTo :: Integral a => a -> a -> [a]
+ GHC.Real: lcm :: Integral a => a -> a -> a
+ GHC.Real: mod :: Integral a => a -> a -> a
+ GHC.Real: notANumber :: Rational
+ GHC.Real: numerator :: Ratio a -> a
+ GHC.Real: numericEnumFrom :: Fractional a => a -> [a]
+ GHC.Real: numericEnumFromThen :: Fractional a => a -> a -> [a]
+ GHC.Real: numericEnumFromThenTo :: (Ord a, Fractional a) => a -> a -> a -> [a]
+ GHC.Real: numericEnumFromTo :: (Ord a, Fractional a) => a -> a -> [a]
+ GHC.Real: odd :: Integral a => a -> Bool
+ GHC.Real: overflowError :: a
+ GHC.Real: properFraction :: (RealFrac a, Integral b) => a -> (b, a)
+ GHC.Real: quot :: Integral a => a -> a -> a
+ GHC.Real: quotRem :: Integral a => a -> a -> (a, a)
+ GHC.Real: ratioPrec :: Int
+ GHC.Real: ratioPrec1 :: Int
+ GHC.Real: ratioZeroDenominatorError :: a
+ GHC.Real: realToFrac :: (Real a, Fractional b) => a -> b
+ GHC.Real: recip :: Fractional a => a -> a
+ GHC.Real: reduce :: Integral a => a -> a -> Ratio a
+ GHC.Real: rem :: Integral a => a -> a -> a
+ GHC.Real: round :: (RealFrac a, Integral b) => a -> b
+ GHC.Real: showSigned :: Real a => (a -> ShowS) -> Int -> a -> ShowS
+ GHC.Real: toInteger :: Integral a => a -> Integer
+ GHC.Real: toRational :: Real a => a -> Rational
+ GHC.Real: truncate :: (RealFrac a, Integral b) => a -> b
+ GHC.Real: type Rational = Ratio Integer
+ GHC.Real: underflowError :: a
+ GHC.ST: ST :: STRep s a -> ST s a
+ GHC.ST: STret :: State# s -> a -> STret s a
+ GHC.ST: data STret s a
+ GHC.ST: instance Control.Monad.Fail.MonadFail (GHC.ST.ST s)
+ GHC.ST: instance GHC.Base.Applicative (GHC.ST.ST s)
+ GHC.ST: instance GHC.Base.Functor (GHC.ST.ST s)
+ GHC.ST: instance GHC.Base.Monad (GHC.ST.ST s)
+ GHC.ST: instance GHC.Base.Monoid a => GHC.Base.Monoid (GHC.ST.ST s a)
+ GHC.ST: instance GHC.Base.Semigroup a => GHC.Base.Semigroup (GHC.ST.ST s a)
+ GHC.ST: instance GHC.Show.Show (GHC.ST.ST s a)
+ GHC.ST: liftST :: ST s a -> State# s -> STret s a
+ GHC.ST: newtype ST s a
+ GHC.ST: runST :: (forall s. ST s a) -> a
+ GHC.ST: type STRep s a = State# s -> (# State# s, a #)
+ GHC.ST: unsafeDupableInterleaveST :: ST s a -> ST s a
+ GHC.ST: unsafeInterleaveST :: ST s a -> ST s a
+ GHC.STRef: STRef :: MutVar# s a -> STRef s a
+ GHC.STRef: data STRef s a
+ GHC.STRef: instance GHC.Classes.Eq (GHC.STRef.STRef s a)
+ GHC.STRef: newSTRef :: a -> ST s (STRef s a)
+ GHC.STRef: readSTRef :: STRef s a -> ST s a
+ GHC.STRef: writeSTRef :: STRef s a -> a -> ST s ()
+ GHC.Show: appPrec :: Int
+ GHC.Show: appPrec1 :: Int
+ GHC.Show: asciiTab :: [String]
+ GHC.Show: class Show a
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (a, b)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c) => GHC.Show.Show (a, b, c)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d) => GHC.Show.Show (a, b, c, d)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e) => GHC.Show.Show (a, b, c, d, e)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f) => GHC.Show.Show (a, b, c, d, e, f)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g) => GHC.Show.Show (a, b, c, d, e, f, g)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g, GHC.Show.Show h) => GHC.Show.Show (a, b, c, d, e, f, g, h)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g, GHC.Show.Show h, GHC.Show.Show i) => GHC.Show.Show (a, b, c, d, e, f, g, h, i)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g, GHC.Show.Show h, GHC.Show.Show i, GHC.Show.Show j) => GHC.Show.Show (a, b, c, d, e, f, g, h, i, j)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g, GHC.Show.Show h, GHC.Show.Show i, GHC.Show.Show j, GHC.Show.Show k) => GHC.Show.Show (a, b, c, d, e, f, g, h, i, j, k)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g, GHC.Show.Show h, GHC.Show.Show i, GHC.Show.Show j, GHC.Show.Show k, GHC.Show.Show l) => GHC.Show.Show (a, b, c, d, e, f, g, h, i, j, k, l)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g, GHC.Show.Show h, GHC.Show.Show i, GHC.Show.Show j, GHC.Show.Show k, GHC.Show.Show l, GHC.Show.Show m) => GHC.Show.Show (a, b, c, d, e, f, g, h, i, j, k, l, m)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g, GHC.Show.Show h, GHC.Show.Show i, GHC.Show.Show j, GHC.Show.Show k, GHC.Show.Show l, GHC.Show.Show m, GHC.Show.Show n) => GHC.Show.Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n)
+ GHC.Show: instance (GHC.Show.Show a, GHC.Show.Show b, GHC.Show.Show c, GHC.Show.Show d, GHC.Show.Show e, GHC.Show.Show f, GHC.Show.Show g, GHC.Show.Show h, GHC.Show.Show i, GHC.Show.Show j, GHC.Show.Show k, GHC.Show.Show l, GHC.Show.Show m, GHC.Show.Show n, GHC.Show.Show o) => GHC.Show.Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
+ GHC.Show: instance GHC.Show.Show ()
+ GHC.Show: instance GHC.Show.Show GHC.Integer.Type.Integer
+ GHC.Show: instance GHC.Show.Show GHC.Natural.Natural
+ GHC.Show: instance GHC.Show.Show GHC.Stack.Types.CallStack
+ GHC.Show: instance GHC.Show.Show GHC.Stack.Types.SrcLoc
+ GHC.Show: instance GHC.Show.Show GHC.Types.Bool
+ GHC.Show: instance GHC.Show.Show GHC.Types.Char
+ GHC.Show: instance GHC.Show.Show GHC.Types.Int
+ GHC.Show: instance GHC.Show.Show GHC.Types.KindRep
+ GHC.Show: instance GHC.Show.Show GHC.Types.Module
+ GHC.Show: instance GHC.Show.Show GHC.Types.Ordering
+ GHC.Show: instance GHC.Show.Show GHC.Types.RuntimeRep
+ GHC.Show: instance GHC.Show.Show GHC.Types.TrName
+ GHC.Show: instance GHC.Show.Show GHC.Types.TyCon
+ GHC.Show: instance GHC.Show.Show GHC.Types.TypeLitSort
+ GHC.Show: instance GHC.Show.Show GHC.Types.VecCount
+ GHC.Show: instance GHC.Show.Show GHC.Types.VecElem
+ GHC.Show: instance GHC.Show.Show GHC.Types.Word
+ GHC.Show: instance GHC.Show.Show a => GHC.Show.Show (GHC.Base.NonEmpty a)
+ GHC.Show: instance GHC.Show.Show a => GHC.Show.Show (GHC.Maybe.Maybe a)
+ GHC.Show: instance GHC.Show.Show a => GHC.Show.Show [a]
+ GHC.Show: intToDigit :: Int -> Char
+ GHC.Show: protectEsc :: (Char -> Bool) -> ShowS -> ShowS
+ GHC.Show: show :: Show a => a -> String
+ GHC.Show: showChar :: Char -> ShowS
+ GHC.Show: showCommaSpace :: ShowS
+ GHC.Show: showList :: Show a => [a] -> ShowS
+ GHC.Show: showList__ :: (a -> ShowS) -> [a] -> ShowS
+ GHC.Show: showLitChar :: Char -> ShowS
+ GHC.Show: showLitString :: String -> ShowS
+ GHC.Show: showMultiLineString :: String -> [String]
+ GHC.Show: showParen :: Bool -> ShowS -> ShowS
+ GHC.Show: showSignedInt :: Int -> Int -> ShowS
+ GHC.Show: showSpace :: ShowS
+ GHC.Show: showString :: String -> ShowS
+ GHC.Show: shows :: Show a => a -> ShowS
+ GHC.Show: showsPrec :: Show a => Int -> a -> ShowS
+ GHC.Show: type ShowS = String -> String
+ GHC.Stable: StablePtr :: StablePtr# a -> StablePtr a
+ GHC.Stable: castPtrToStablePtr :: Ptr () -> StablePtr a
+ GHC.Stable: castStablePtrToPtr :: StablePtr a -> Ptr ()
+ GHC.Stable: data {-# CTYPE "HsStablePtr" #-} StablePtr a
+ GHC.Stable: deRefStablePtr :: StablePtr a -> IO a
+ GHC.Stable: freeStablePtr :: StablePtr a -> IO ()
+ GHC.Stable: instance GHC.Classes.Eq (GHC.Stable.StablePtr a)
+ GHC.Stable: newStablePtr :: a -> IO (StablePtr a)
+ GHC.Stack.Types: EmptyCallStack :: CallStack
+ GHC.Stack.Types: FreezeCallStack :: CallStack -> CallStack
+ GHC.Stack.Types: PushCallStack :: [Char] -> SrcLoc -> CallStack -> CallStack
+ GHC.Stack.Types: SrcLoc :: [Char] -> [Char] -> [Char] -> Int -> Int -> Int -> Int -> SrcLoc
+ GHC.Stack.Types: [srcLocEndCol] :: SrcLoc -> Int
+ GHC.Stack.Types: [srcLocEndLine] :: SrcLoc -> Int
+ GHC.Stack.Types: [srcLocFile] :: SrcLoc -> [Char]
+ GHC.Stack.Types: [srcLocModule] :: SrcLoc -> [Char]
+ GHC.Stack.Types: [srcLocPackage] :: SrcLoc -> [Char]
+ GHC.Stack.Types: [srcLocStartCol] :: SrcLoc -> Int
+ GHC.Stack.Types: [srcLocStartLine] :: SrcLoc -> Int
+ GHC.Stack.Types: data CallStack
+ GHC.Stack.Types: data SrcLoc
+ GHC.Stack.Types: emptyCallStack :: CallStack
+ GHC.Stack.Types: freezeCallStack :: CallStack -> CallStack
+ GHC.Stack.Types: fromCallSiteList :: [([Char], SrcLoc)] -> CallStack
+ GHC.Stack.Types: getCallStack :: CallStack -> [([Char], SrcLoc)]
+ GHC.Stack.Types: instance GHC.Classes.Eq GHC.Stack.Types.SrcLoc
+ GHC.Stack.Types: pushCallStack :: ([Char], SrcLoc) -> CallStack -> CallStack
+ GHC.Stack.Types: type HasCallStack = (?callStack :: CallStack)
+ GHC.Storable: readDoubleOffPtr :: Ptr Double -> Int -> IO Double
+ GHC.Storable: readFloatOffPtr :: Ptr Float -> Int -> IO Float
+ GHC.Storable: readFunPtrOffPtr :: Ptr (FunPtr a) -> Int -> IO (FunPtr a)
+ GHC.Storable: readInt16OffPtr :: Ptr Int16 -> Int -> IO Int16
+ GHC.Storable: readInt32OffPtr :: Ptr Int32 -> Int -> IO Int32
+ GHC.Storable: readInt64OffPtr :: Ptr Int64 -> Int -> IO Int64
+ GHC.Storable: readInt8OffPtr :: Ptr Int8 -> Int -> IO Int8
+ GHC.Storable: readIntOffPtr :: Ptr Int -> Int -> IO Int
+ GHC.Storable: readPtrOffPtr :: Ptr (Ptr a) -> Int -> IO (Ptr a)
+ GHC.Storable: readStablePtrOffPtr :: Ptr (StablePtr a) -> Int -> IO (StablePtr a)
+ GHC.Storable: readWideCharOffPtr :: Ptr Char -> Int -> IO Char
+ GHC.Storable: readWord16OffPtr :: Ptr Word16 -> Int -> IO Word16
+ GHC.Storable: readWord32OffPtr :: Ptr Word32 -> Int -> IO Word32
+ GHC.Storable: readWord64OffPtr :: Ptr Word64 -> Int -> IO Word64
+ GHC.Storable: readWord8OffPtr :: Ptr Word8 -> Int -> IO Word8
+ GHC.Storable: readWordOffPtr :: Ptr Word -> Int -> IO Word
+ GHC.Storable: writeDoubleOffPtr :: Ptr Double -> Int -> Double -> IO ()
+ GHC.Storable: writeFloatOffPtr :: Ptr Float -> Int -> Float -> IO ()
+ GHC.Storable: writeFunPtrOffPtr :: Ptr (FunPtr a) -> Int -> FunPtr a -> IO ()
+ GHC.Storable: writeInt16OffPtr :: Ptr Int16 -> Int -> Int16 -> IO ()
+ GHC.Storable: writeInt32OffPtr :: Ptr Int32 -> Int -> Int32 -> IO ()
+ GHC.Storable: writeInt64OffPtr :: Ptr Int64 -> Int -> Int64 -> IO ()
+ GHC.Storable: writeInt8OffPtr :: Ptr Int8 -> Int -> Int8 -> IO ()
+ GHC.Storable: writeIntOffPtr :: Ptr Int -> Int -> Int -> IO ()
+ GHC.Storable: writePtrOffPtr :: Ptr (Ptr a) -> Int -> Ptr a -> IO ()
+ GHC.Storable: writeStablePtrOffPtr :: Ptr (StablePtr a) -> Int -> StablePtr a -> IO ()
+ GHC.Storable: writeWideCharOffPtr :: Ptr Char -> Int -> Char -> IO ()
+ GHC.Storable: writeWord16OffPtr :: Ptr Word16 -> Int -> Word16 -> IO ()
+ GHC.Storable: writeWord32OffPtr :: Ptr Word32 -> Int -> Word32 -> IO ()
+ GHC.Storable: writeWord64OffPtr :: Ptr Word64 -> Int -> Word64 -> IO ()
+ GHC.Storable: writeWord8OffPtr :: Ptr Word8 -> Int -> Word8 -> IO ()
+ GHC.Storable: writeWordOffPtr :: Ptr Word -> Int -> Word -> IO ()
+ GHC.TopHandler: flushStdHandles :: IO ()
+ GHC.TopHandler: reportError :: SomeException -> IO ()
+ GHC.TopHandler: reportStackOverflow :: IO ()
+ GHC.TopHandler: runIO :: IO a -> IO a
+ GHC.TopHandler: runIOFastExit :: IO a -> IO a
+ GHC.TopHandler: runMainIO :: IO a -> IO a
+ GHC.TopHandler: runNonIO :: a -> IO a
+ GHC.TopHandler: topHandler :: SomeException -> IO a
+ GHC.TopHandler: topHandlerFastExit :: SomeException -> IO a
+ GHC.Unicode: ClosePunctuation :: GeneralCategory
+ GHC.Unicode: ConnectorPunctuation :: GeneralCategory
+ GHC.Unicode: Control :: GeneralCategory
+ GHC.Unicode: CurrencySymbol :: GeneralCategory
+ GHC.Unicode: DashPunctuation :: GeneralCategory
+ GHC.Unicode: DecimalNumber :: GeneralCategory
+ GHC.Unicode: EnclosingMark :: GeneralCategory
+ GHC.Unicode: FinalQuote :: GeneralCategory
+ GHC.Unicode: Format :: GeneralCategory
+ GHC.Unicode: InitialQuote :: GeneralCategory
+ GHC.Unicode: LetterNumber :: GeneralCategory
+ GHC.Unicode: LineSeparator :: GeneralCategory
+ GHC.Unicode: LowercaseLetter :: GeneralCategory
+ GHC.Unicode: MathSymbol :: GeneralCategory
+ GHC.Unicode: ModifierLetter :: GeneralCategory
+ GHC.Unicode: ModifierSymbol :: GeneralCategory
+ GHC.Unicode: NonSpacingMark :: GeneralCategory
+ GHC.Unicode: NotAssigned :: GeneralCategory
+ GHC.Unicode: OpenPunctuation :: GeneralCategory
+ GHC.Unicode: OtherLetter :: GeneralCategory
+ GHC.Unicode: OtherNumber :: GeneralCategory
+ GHC.Unicode: OtherPunctuation :: GeneralCategory
+ GHC.Unicode: OtherSymbol :: GeneralCategory
+ GHC.Unicode: ParagraphSeparator :: GeneralCategory
+ GHC.Unicode: PrivateUse :: GeneralCategory
+ GHC.Unicode: Space :: GeneralCategory
+ GHC.Unicode: SpacingCombiningMark :: GeneralCategory
+ GHC.Unicode: Surrogate :: GeneralCategory
+ GHC.Unicode: TitlecaseLetter :: GeneralCategory
+ GHC.Unicode: UppercaseLetter :: GeneralCategory
+ GHC.Unicode: data GeneralCategory
+ GHC.Unicode: generalCategory :: Char -> GeneralCategory
+ GHC.Unicode: instance GHC.Arr.Ix GHC.Unicode.GeneralCategory
+ GHC.Unicode: instance GHC.Classes.Eq GHC.Unicode.GeneralCategory
+ GHC.Unicode: instance GHC.Classes.Ord GHC.Unicode.GeneralCategory
+ GHC.Unicode: instance GHC.Enum.Bounded GHC.Unicode.GeneralCategory
+ GHC.Unicode: instance GHC.Enum.Enum GHC.Unicode.GeneralCategory
+ GHC.Unicode: instance GHC.Show.Show GHC.Unicode.GeneralCategory
+ GHC.Unicode: isAlpha :: Char -> Bool
+ GHC.Unicode: isAlphaNum :: Char -> Bool
+ GHC.Unicode: isAscii :: Char -> Bool
+ GHC.Unicode: isAsciiLower :: Char -> Bool
+ GHC.Unicode: isAsciiUpper :: Char -> Bool
+ GHC.Unicode: isControl :: Char -> Bool
+ GHC.Unicode: isDigit :: Char -> Bool
+ GHC.Unicode: isHexDigit :: Char -> Bool
+ GHC.Unicode: isLatin1 :: Char -> Bool
+ GHC.Unicode: isLower :: Char -> Bool
+ GHC.Unicode: isOctDigit :: Char -> Bool
+ GHC.Unicode: isPrint :: Char -> Bool
+ GHC.Unicode: isPunctuation :: Char -> Bool
+ GHC.Unicode: isSpace :: Char -> Bool
+ GHC.Unicode: isSymbol :: Char -> Bool
+ GHC.Unicode: isUpper :: Char -> Bool
+ GHC.Unicode: toLower :: Char -> Char
+ GHC.Unicode: toTitle :: Char -> Char
+ GHC.Unicode: toUpper :: Char -> Char
+ GHC.Unicode: wgencat :: Int -> Int
+ GHC.Weak: Weak :: Weak# v -> Weak v
+ GHC.Weak: data Weak v
+ GHC.Weak: deRefWeak :: Weak v -> IO (Maybe v)
+ GHC.Weak: finalize :: Weak v -> IO ()
+ GHC.Weak: mkWeak :: k -> v -> Maybe (IO ()) -> IO (Weak v)
+ GHC.Weak: runFinalizerBatch :: Int -> Array# (State# RealWorld -> State# RealWorld) -> IO ()
+ GHC.Word: W# :: Word# -> Word
+ GHC.Word: W16# :: Word# -> Word16
+ GHC.Word: W32# :: Word# -> Word32
+ GHC.Word: W64# :: Word# -> Word64
+ GHC.Word: W8# :: Word# -> Word8
+ GHC.Word: byteSwap16 :: Word16 -> Word16
+ GHC.Word: byteSwap32 :: Word32 -> Word32
+ GHC.Word: byteSwap64 :: Word64 -> Word64
+ GHC.Word: data Word
+ GHC.Word: data {-# CTYPE "HsWord64" #-} Word64
+ GHC.Word: eqWord :: Word -> Word -> Bool
+ GHC.Word: eqWord16 :: Word16 -> Word16 -> Bool
+ GHC.Word: eqWord32 :: Word32 -> Word32 -> Bool
+ GHC.Word: eqWord64 :: Word64 -> Word64 -> Bool
+ GHC.Word: eqWord8 :: Word8 -> Word8 -> Bool
+ GHC.Word: geWord :: Word -> Word -> Bool
+ GHC.Word: geWord16 :: Word16 -> Word16 -> Bool
+ GHC.Word: geWord32 :: Word32 -> Word32 -> Bool
+ GHC.Word: geWord64 :: Word64 -> Word64 -> Bool
+ GHC.Word: geWord8 :: Word8 -> Word8 -> Bool
+ GHC.Word: gtWord :: Word -> Word -> Bool
+ GHC.Word: gtWord16 :: Word16 -> Word16 -> Bool
+ GHC.Word: gtWord32 :: Word32 -> Word32 -> Bool
+ GHC.Word: gtWord64 :: Word64 -> Word64 -> Bool
+ GHC.Word: gtWord8 :: Word8 -> Word8 -> Bool
+ GHC.Word: instance Data.Bits.Bits GHC.Word.Word16
+ GHC.Word: instance Data.Bits.Bits GHC.Word.Word32
+ GHC.Word: instance Data.Bits.Bits GHC.Word.Word64
+ GHC.Word: instance Data.Bits.Bits GHC.Word.Word8
+ GHC.Word: instance Data.Bits.FiniteBits GHC.Word.Word16
+ GHC.Word: instance Data.Bits.FiniteBits GHC.Word.Word32
+ GHC.Word: instance Data.Bits.FiniteBits GHC.Word.Word64
+ GHC.Word: instance Data.Bits.FiniteBits GHC.Word.Word8
+ GHC.Word: instance GHC.Arr.Ix GHC.Word.Word16
+ GHC.Word: instance GHC.Arr.Ix GHC.Word.Word32
+ GHC.Word: instance GHC.Arr.Ix GHC.Word.Word64
+ GHC.Word: instance GHC.Arr.Ix GHC.Word.Word8
+ GHC.Word: instance GHC.Classes.Eq GHC.Word.Word16
+ GHC.Word: instance GHC.Classes.Eq GHC.Word.Word32
+ GHC.Word: instance GHC.Classes.Eq GHC.Word.Word64
+ GHC.Word: instance GHC.Classes.Eq GHC.Word.Word8
+ GHC.Word: instance GHC.Classes.Ord GHC.Word.Word16
+ GHC.Word: instance GHC.Classes.Ord GHC.Word.Word32
+ GHC.Word: instance GHC.Classes.Ord GHC.Word.Word64
+ GHC.Word: instance GHC.Classes.Ord GHC.Word.Word8
+ GHC.Word: instance GHC.Enum.Bounded GHC.Word.Word16
+ GHC.Word: instance GHC.Enum.Bounded GHC.Word.Word32
+ GHC.Word: instance GHC.Enum.Bounded GHC.Word.Word64
+ GHC.Word: instance GHC.Enum.Bounded GHC.Word.Word8
+ GHC.Word: instance GHC.Enum.Enum GHC.Word.Word16
+ GHC.Word: instance GHC.Enum.Enum GHC.Word.Word32
+ GHC.Word: instance GHC.Enum.Enum GHC.Word.Word64
+ GHC.Word: instance GHC.Enum.Enum GHC.Word.Word8
+ GHC.Word: instance GHC.Num.Num GHC.Word.Word16
+ GHC.Word: instance GHC.Num.Num GHC.Word.Word32
+ GHC.Word: instance GHC.Num.Num GHC.Word.Word64
+ GHC.Word: instance GHC.Num.Num GHC.Word.Word8
+ GHC.Word: instance GHC.Real.Integral GHC.Word.Word16
+ GHC.Word: instance GHC.Real.Integral GHC.Word.Word32
+ GHC.Word: instance GHC.Real.Integral GHC.Word.Word64
+ GHC.Word: instance GHC.Real.Integral GHC.Word.Word8
+ GHC.Word: instance GHC.Real.Real GHC.Word.Word16
+ GHC.Word: instance GHC.Real.Real GHC.Word.Word32
+ GHC.Word: instance GHC.Real.Real GHC.Word.Word64
+ GHC.Word: instance GHC.Real.Real GHC.Word.Word8
+ GHC.Word: instance GHC.Show.Show GHC.Word.Word16
+ GHC.Word: instance GHC.Show.Show GHC.Word.Word32
+ GHC.Word: instance GHC.Show.Show GHC.Word.Word64
+ GHC.Word: instance GHC.Show.Show GHC.Word.Word8
+ GHC.Word: leWord :: Word -> Word -> Bool
+ GHC.Word: leWord16 :: Word16 -> Word16 -> Bool
+ GHC.Word: leWord32 :: Word32 -> Word32 -> Bool
+ GHC.Word: leWord64 :: Word64 -> Word64 -> Bool
+ GHC.Word: leWord8 :: Word8 -> Word8 -> Bool
+ GHC.Word: ltWord :: Word -> Word -> Bool
+ GHC.Word: ltWord16 :: Word16 -> Word16 -> Bool
+ GHC.Word: ltWord32 :: Word32 -> Word32 -> Bool
+ GHC.Word: ltWord64 :: Word64 -> Word64 -> Bool
+ GHC.Word: ltWord8 :: Word8 -> Word8 -> Bool
+ GHC.Word: neWord :: Word -> Word -> Bool
+ GHC.Word: neWord16 :: Word16 -> Word16 -> Bool
+ GHC.Word: neWord32 :: Word32 -> Word32 -> Bool
+ GHC.Word: neWord64 :: Word64 -> Word64 -> Bool
+ GHC.Word: neWord8 :: Word8 -> Word8 -> Bool
+ GHC.Word: uncheckedShiftL64# :: Word# -> Int# -> Word#
+ GHC.Word: uncheckedShiftRL64# :: Word# -> Int# -> Word#
+ Prelude: class Monad m => MonadFail m
+ System.Posix.Internals: c_access :: CString -> CInt -> IO CInt
+ System.Posix.Internals: c_chmod :: CString -> CMode -> IO CInt
+ System.Posix.Internals: c_close :: CInt -> IO CInt
+ System.Posix.Internals: c_creat :: CString -> CMode -> IO CInt
+ System.Posix.Internals: c_dup :: CInt -> IO CInt
+ System.Posix.Internals: c_dup2 :: CInt -> CInt -> IO CInt
+ System.Posix.Internals: c_fcntl_lock :: CInt -> CInt -> Ptr CFLock -> IO CInt
+ System.Posix.Internals: c_fcntl_read :: CInt -> CInt -> IO CInt
+ System.Posix.Internals: c_fcntl_write :: CInt -> CInt -> CLong -> IO CInt
+ System.Posix.Internals: c_fork :: IO CPid
+ System.Posix.Internals: c_fstat :: CInt -> Ptr CStat -> IO CInt
+ System.Posix.Internals: c_ftruncate :: CInt -> COff -> IO CInt
+ System.Posix.Internals: c_getpid :: IO CPid
+ System.Posix.Internals: c_isatty :: CInt -> IO CInt
+ System.Posix.Internals: c_lflag :: Ptr CTermios -> IO CTcflag
+ System.Posix.Internals: c_link :: CString -> CString -> IO CInt
+ System.Posix.Internals: c_lseek :: CInt -> COff -> CInt -> IO COff
+ System.Posix.Internals: c_mkfifo :: CString -> CMode -> IO CInt
+ System.Posix.Internals: c_open :: CFilePath -> CInt -> CMode -> IO CInt
+ System.Posix.Internals: c_pipe :: Ptr CInt -> IO CInt
+ System.Posix.Internals: c_read :: CInt -> Ptr Word8 -> CSize -> IO CSsize
+ System.Posix.Internals: c_s_isblk :: CMode -> CInt
+ System.Posix.Internals: c_s_ischr :: CMode -> CInt
+ System.Posix.Internals: c_s_isdir :: CMode -> CInt
+ System.Posix.Internals: c_s_isfifo :: CMode -> CInt
+ System.Posix.Internals: c_s_isreg :: CMode -> CInt
+ System.Posix.Internals: c_s_issock :: CMode -> CInt
+ System.Posix.Internals: c_safe_open :: CFilePath -> CInt -> CMode -> IO CInt
+ System.Posix.Internals: c_safe_read :: CInt -> Ptr Word8 -> CSize -> IO CSsize
+ System.Posix.Internals: c_safe_write :: CInt -> Ptr Word8 -> CSize -> IO CSsize
+ System.Posix.Internals: c_sigaddset :: Ptr CSigset -> CInt -> IO CInt
+ System.Posix.Internals: c_sigemptyset :: Ptr CSigset -> IO CInt
+ System.Posix.Internals: c_sigprocmask :: CInt -> Ptr CSigset -> Ptr CSigset -> IO CInt
+ System.Posix.Internals: c_stat :: CFilePath -> Ptr CStat -> IO CInt
+ System.Posix.Internals: c_tcgetattr :: CInt -> Ptr CTermios -> IO CInt
+ System.Posix.Internals: c_tcsetattr :: CInt -> CInt -> Ptr CTermios -> IO CInt
+ System.Posix.Internals: c_umask :: CMode -> IO CMode
+ System.Posix.Internals: c_unlink :: CString -> IO CInt
+ System.Posix.Internals: c_utime :: CString -> Ptr CUtimbuf -> IO CInt
+ System.Posix.Internals: c_waitpid :: CPid -> Ptr CInt -> CInt -> IO CPid
+ System.Posix.Internals: c_write :: CInt -> Ptr Word8 -> CSize -> IO CSsize
+ System.Posix.Internals: const_echo :: CInt
+ System.Posix.Internals: const_f_getfl :: CInt
+ System.Posix.Internals: const_f_setfd :: CInt
+ System.Posix.Internals: const_f_setfl :: CInt
+ System.Posix.Internals: const_fd_cloexec :: CLong
+ System.Posix.Internals: const_icanon :: CInt
+ System.Posix.Internals: const_sig_block :: CInt
+ System.Posix.Internals: const_sig_setmask :: CInt
+ System.Posix.Internals: const_sigttou :: CInt
+ System.Posix.Internals: const_tcsanow :: CInt
+ System.Posix.Internals: const_vmin :: CInt
+ System.Posix.Internals: const_vtime :: CInt
+ System.Posix.Internals: dEFAULT_BUFFER_SIZE :: Int
+ System.Posix.Internals: data {-# CTYPE "struct utsname" #-} CUtsname
+ System.Posix.Internals: fdFileSize :: FD -> IO Integer
+ System.Posix.Internals: fdGetMode :: FD -> IO IOMode
+ System.Posix.Internals: fdStat :: FD -> IO (IODeviceType, CDev, CIno)
+ System.Posix.Internals: fdType :: FD -> IO IODeviceType
+ System.Posix.Internals: fileType :: FilePath -> IO IODeviceType
+ System.Posix.Internals: getEcho :: FD -> IO Bool
+ System.Posix.Internals: get_saved_termios :: CInt -> IO (Ptr CTermios)
+ System.Posix.Internals: ioe_unknownfiletype :: IOException
+ System.Posix.Internals: lstat :: CFilePath -> Ptr CStat -> IO CInt
+ System.Posix.Internals: newFilePath :: FilePath -> IO CString
+ System.Posix.Internals: o_APPEND :: CInt
+ System.Posix.Internals: o_BINARY :: CInt
+ System.Posix.Internals: o_CREAT :: CInt
+ System.Posix.Internals: o_EXCL :: CInt
+ System.Posix.Internals: o_NOCTTY :: CInt
+ System.Posix.Internals: o_NONBLOCK :: CInt
+ System.Posix.Internals: o_RDONLY :: CInt
+ System.Posix.Internals: o_RDWR :: CInt
+ System.Posix.Internals: o_TRUNC :: CInt
+ System.Posix.Internals: o_WRONLY :: CInt
+ System.Posix.Internals: peekFilePath :: CString -> IO FilePath
+ System.Posix.Internals: peekFilePathLen :: CStringLen -> IO FilePath
+ System.Posix.Internals: poke_c_lflag :: Ptr CTermios -> CTcflag -> IO ()
+ System.Posix.Internals: ptr_c_cc :: Ptr CTermios -> IO (Ptr Word8)
+ System.Posix.Internals: puts :: String -> IO ()
+ System.Posix.Internals: sEEK_CUR :: CInt
+ System.Posix.Internals: sEEK_END :: CInt
+ System.Posix.Internals: sEEK_SET :: CInt
+ System.Posix.Internals: s_isblk :: CMode -> Bool
+ System.Posix.Internals: s_ischr :: CMode -> Bool
+ System.Posix.Internals: s_isdir :: CMode -> Bool
+ System.Posix.Internals: s_isfifo :: CMode -> Bool
+ System.Posix.Internals: s_isreg :: CMode -> Bool
+ System.Posix.Internals: s_issock :: CMode -> Bool
+ System.Posix.Internals: setCloseOnExec :: FD -> IO ()
+ System.Posix.Internals: setCooked :: FD -> Bool -> IO ()
+ System.Posix.Internals: setEcho :: FD -> Bool -> IO ()
+ System.Posix.Internals: setNonBlockingFD :: FD -> Bool -> IO ()
+ System.Posix.Internals: set_saved_termios :: CInt -> Ptr CTermios -> IO ()
+ System.Posix.Internals: sizeof_sigset_t :: Int
+ System.Posix.Internals: sizeof_stat :: Int
+ System.Posix.Internals: sizeof_termios :: Int
+ System.Posix.Internals: st_dev :: Ptr CStat -> IO CDev
+ System.Posix.Internals: st_ino :: Ptr CStat -> IO CIno
+ System.Posix.Internals: st_mode :: Ptr CStat -> IO CMode
+ System.Posix.Internals: st_mtime :: Ptr CStat -> IO CTime
+ System.Posix.Internals: st_size :: Ptr CStat -> IO COff
+ System.Posix.Internals: statGetType :: Ptr CStat -> IO IODeviceType
+ System.Posix.Internals: tcSetAttr :: FD -> (Ptr CTermios -> IO a) -> IO a
+ System.Posix.Internals: type CFilePath = CString
+ System.Posix.Internals: type FD = CInt
+ System.Posix.Internals: withFilePath :: FilePath -> (CString -> IO a) -> IO a
+ Text.Printf: instance (a GHC.Types.~ ()) => Text.Printf.HPrintfType (GHC.Types.IO a)
+ Text.Printf: instance (a GHC.Types.~ ()) => Text.Printf.PrintfType (GHC.Types.IO a)
+ Type.Reflection: pattern Con' :: forall k (a :: k). () => IsApplication a ~ "" => TyCon -> [SomeTypeRep] -> TypeRep a
+ Type.Reflection: pattern Fun :: forall k (fun :: k). () => forall (r1 :: RuntimeRep) (r2 :: RuntimeRep) (arg :: TYPE r1) (res :: TYPE r2). (k ~ Type, fun ~~ (arg -> res)) => TypeRep arg -> TypeRep res -> TypeRep fun
+ Type.Reflection.Unsafe: pattern KindRepTypeLit :: TypeLitSort -> String -> KindRep
- Control.Monad: fail :: Monad m => String -> m a
+ Control.Monad: fail :: MonadFail m => String -> m a
- Control.Monad.Instances: infixl 1 >>
+ Control.Monad.Instances: infixl 1 >>=
- Control.Monad.ST: data RealWorld :: Type
+ Control.Monad.ST: data RealWorld
- Control.Monad.ST.Lazy: data RealWorld :: Type
+ Control.Monad.ST.Lazy: data RealWorld
- Control.Monad.ST.Lazy.Safe: data RealWorld :: Type
+ Control.Monad.ST.Lazy.Safe: data RealWorld
- Control.Monad.ST.Safe: data RealWorld :: Type
+ Control.Monad.ST.Safe: data RealWorld
- Data.Coerce: class a ~R# b => Coercible (a :: k0) (b :: k0)
+ Data.Coerce: class a ~R# b => Coercible (a :: k) (b :: k)
- Data.Maybe: fromJust :: Maybe a -> a
+ Data.Maybe: fromJust :: HasCallStack => Maybe a -> a
- Data.Proxy: KProxy :: KProxy
+ Data.Proxy: KProxy :: KProxy (t :: Type)
- Data.Type.Equality: class a ~# b => (~~) (a :: k0) (b :: k1)
+ Data.Type.Equality: class a ~# b => (a :: k0) ~~ (b :: k1)
- Foreign.Marshal.Array: advancePtr :: Storable a => Ptr a -> Int -> Ptr a
+ Foreign.Marshal.Array: advancePtr :: forall a. Storable a => Ptr a -> Int -> Ptr a
- Foreign.Marshal.Array: allocaArray :: Storable a => Int -> (Ptr a -> IO b) -> IO b
+ Foreign.Marshal.Array: allocaArray :: forall a b. Storable a => Int -> (Ptr a -> IO b) -> IO b
- Foreign.Marshal.Array: callocArray :: Storable a => Int -> IO (Ptr a)
+ Foreign.Marshal.Array: callocArray :: forall a. Storable a => Int -> IO (Ptr a)
- Foreign.Marshal.Array: copyArray :: Storable a => Ptr a -> Ptr a -> Int -> IO ()
+ Foreign.Marshal.Array: copyArray :: forall a. Storable a => Ptr a -> Ptr a -> Int -> IO ()
- Foreign.Marshal.Array: mallocArray :: Storable a => Int -> IO (Ptr a)
+ Foreign.Marshal.Array: mallocArray :: forall a. Storable a => Int -> IO (Ptr a)
- Foreign.Marshal.Array: moveArray :: Storable a => Ptr a -> Ptr a -> Int -> IO ()
+ Foreign.Marshal.Array: moveArray :: forall a. Storable a => Ptr a -> Ptr a -> Int -> IO ()
- Foreign.Marshal.Array: reallocArray :: Storable a => Ptr a -> Int -> IO (Ptr a)
+ Foreign.Marshal.Array: reallocArray :: forall a. Storable a => Ptr a -> Int -> IO (Ptr a)
- Foreign.Marshal.Pool: pooledMalloc :: Storable a => Pool -> IO (Ptr a)
+ Foreign.Marshal.Pool: pooledMalloc :: forall a. Storable a => Pool -> IO (Ptr a)
- Foreign.Marshal.Pool: pooledMallocArray :: Storable a => Pool -> Int -> IO (Ptr a)
+ Foreign.Marshal.Pool: pooledMallocArray :: forall a. Storable a => Pool -> Int -> IO (Ptr a)
- Foreign.Marshal.Pool: pooledRealloc :: Storable a => Pool -> Ptr a -> IO (Ptr a)
+ Foreign.Marshal.Pool: pooledRealloc :: forall a. Storable a => Pool -> Ptr a -> IO (Ptr a)
- Foreign.Marshal.Pool: pooledReallocArray :: Storable a => Pool -> Ptr a -> Int -> IO (Ptr a)
+ Foreign.Marshal.Pool: pooledReallocArray :: forall a. Storable a => Pool -> Ptr a -> Int -> IO (Ptr a)
- GHC.Exts: addCFinalizerToWeak# :: () => Addr# -> Addr# -> Int# -> Addr# -> Weak# b -> State# RealWorld -> (# State# RealWorld, Int# #)
+ GHC.Exts: addCFinalizerToWeak# :: Addr# -> Addr# -> Int# -> Addr# -> Weak# b -> State# RealWorld -> (# State# RealWorld, Int# #)
- GHC.Exts: addrToAny# :: () => Addr# -> (# a #)
+ GHC.Exts: addrToAny# :: Addr# -> (# a #)
- GHC.Exts: anyToAddr# :: () => a -> State# RealWorld -> (# State# RealWorld, Addr# #)
+ GHC.Exts: anyToAddr# :: a -> State# RealWorld -> (# State# RealWorld, Addr# #)
- GHC.Exts: atomicModifyMutVar# :: () => MutVar# d a -> (a -> b) -> State# d -> (# State# d, c #)
+ GHC.Exts: atomicModifyMutVar# :: MutVar# s a -> (a -> b) -> State# s -> (# State# s, c #)
- GHC.Exts: atomicReadIntArray# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: atomicReadIntArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: atomicWriteIntArray# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: atomicWriteIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: atomically# :: () => (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: atomically# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
- GHC.Exts: casArray# :: () => MutableArray# d a -> Int# -> a -> a -> State# d -> (# State# d, Int#, a #)
+ GHC.Exts: casArray# :: MutableArray# d a -> Int# -> a -> a -> State# d -> (# State# d, Int#, a #)
- GHC.Exts: casIntArray# :: () => MutableByteArray# d -> Int# -> Int# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: casIntArray# :: MutableByteArray# d -> Int# -> Int# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: casMutVar# :: () => MutVar# d a -> a -> a -> State# d -> (# State# d, Int#, a #)
+ GHC.Exts: casMutVar# :: MutVar# d a -> a -> a -> State# d -> (# State# d, Int#, a #)
- GHC.Exts: casSmallArray# :: () => SmallMutableArray# d a -> Int# -> a -> a -> State# d -> (# State# d, Int#, a #)
+ GHC.Exts: casSmallArray# :: SmallMutableArray# d a -> Int# -> a -> a -> State# d -> (# State# d, Int#, a #)
- GHC.Exts: catch# :: () => (State# RealWorld -> (# State# RealWorld, a #)) -> (b -> State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: catch# :: (State# RealWorld -> (# State# RealWorld, a #)) -> (b -> State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
- GHC.Exts: catchRetry# :: () => (State# RealWorld -> (# State# RealWorld, a #)) -> (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: catchRetry# :: (State# RealWorld -> (# State# RealWorld, a #)) -> (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
- GHC.Exts: catchSTM# :: () => (State# RealWorld -> (# State# RealWorld, a #)) -> (b -> State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: catchSTM# :: (State# RealWorld -> (# State# RealWorld, a #)) -> (b -> State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
- GHC.Exts: class a ~# b => (~~) (a :: k0) (b :: k1)
+ GHC.Exts: class a ~# b => (a :: k0) ~~ (b :: k1)
- GHC.Exts: class a ~R# b => Coercible (a :: k0) (b :: k0)
+ GHC.Exts: class a ~R# b => Coercible (a :: k) (b :: k)
- GHC.Exts: clearCCS# :: () => (State# d -> (# State# d, a #)) -> State# d -> (# State# d, a #)
+ GHC.Exts: clearCCS# :: (State# d -> (# State# d, a #)) -> State# d -> (# State# d, a #)
- GHC.Exts: cloneArray# :: () => Array# a -> Int# -> Int# -> Array# a
+ GHC.Exts: cloneArray# :: Array# a -> Int# -> Int# -> Array# a
- GHC.Exts: cloneMutableArray# :: () => MutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, MutableArray# d a #)
+ GHC.Exts: cloneMutableArray# :: MutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, MutableArray# d a #)
- GHC.Exts: cloneSmallArray# :: () => SmallArray# a -> Int# -> Int# -> SmallArray# a
+ GHC.Exts: cloneSmallArray# :: SmallArray# a -> Int# -> Int# -> SmallArray# a
- GHC.Exts: cloneSmallMutableArray# :: () => SmallMutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, SmallMutableArray# d a #)
+ GHC.Exts: cloneSmallMutableArray# :: SmallMutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, SmallMutableArray# d a #)
- GHC.Exts: compactAdd# :: () => Compact# -> a -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: compactAdd# :: Compact# -> a -> State# RealWorld -> (# State# RealWorld, a #)
- GHC.Exts: compactAddWithSharing# :: () => Compact# -> a -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: compactAddWithSharing# :: Compact# -> a -> State# RealWorld -> (# State# RealWorld, a #)
- GHC.Exts: compactContains# :: () => Compact# -> a -> State# RealWorld -> (# State# RealWorld, Int# #)
+ GHC.Exts: compactContains# :: Compact# -> a -> State# RealWorld -> (# State# RealWorld, Int# #)
- GHC.Exts: compactContainsAny# :: () => a -> State# RealWorld -> (# State# RealWorld, Int# #)
+ GHC.Exts: compactContainsAny# :: a -> State# RealWorld -> (# State# RealWorld, Int# #)
- GHC.Exts: copyAddrToByteArray# :: () => Addr# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: copyAddrToByteArray# :: Addr# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: copyArray# :: () => Array# a -> Int# -> MutableArray# d a -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: copyArray# :: Array# a -> Int# -> MutableArray# d a -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: copyArrayArray# :: () => ArrayArray# -> Int# -> MutableArrayArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: copyArrayArray# :: ArrayArray# -> Int# -> MutableArrayArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: copyByteArray# :: () => ByteArray# -> Int# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: copyByteArray# :: ByteArray# -> Int# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: copyByteArrayToAddr# :: () => ByteArray# -> Int# -> Addr# -> Int# -> State# d -> State# d
+ GHC.Exts: copyByteArrayToAddr# :: ByteArray# -> Int# -> Addr# -> Int# -> State# d -> State# d
- GHC.Exts: copyMutableArray# :: () => MutableArray# d a -> Int# -> MutableArray# d a -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: copyMutableArray# :: MutableArray# d a -> Int# -> MutableArray# d a -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: copyMutableArrayArray# :: () => MutableArrayArray# d -> Int# -> MutableArrayArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: copyMutableArrayArray# :: MutableArrayArray# d -> Int# -> MutableArrayArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: copyMutableByteArray# :: () => MutableByteArray# d -> Int# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: copyMutableByteArray# :: MutableByteArray# d -> Int# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: copyMutableByteArrayToAddr# :: () => MutableByteArray# d -> Int# -> Addr# -> Int# -> State# d -> State# d
+ GHC.Exts: copyMutableByteArrayToAddr# :: MutableByteArray# d -> Int# -> Addr# -> Int# -> State# d -> State# d
- GHC.Exts: copySmallArray# :: () => SmallArray# a -> Int# -> SmallMutableArray# d a -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: copySmallArray# :: SmallArray# a -> Int# -> SmallMutableArray# d a -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: copySmallMutableArray# :: () => SmallMutableArray# d a -> Int# -> SmallMutableArray# d a -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: copySmallMutableArray# :: SmallMutableArray# d a -> Int# -> SmallMutableArray# d a -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: data Addr# :: TYPE AddrRep
+ GHC.Exts: data Addr# :: TYPE 'AddrRep
- GHC.Exts: data Array# (a :: Type) :: Type -> TYPE UnliftedRep
+ GHC.Exts: data Array# a :: TYPE 'UnliftedRep
- GHC.Exts: data ArrayArray# :: TYPE UnliftedRep
+ GHC.Exts: data ArrayArray# :: TYPE 'UnliftedRep
- GHC.Exts: data BCO# :: TYPE UnliftedRep
+ GHC.Exts: data BCO# :: TYPE 'UnliftedRep
- GHC.Exts: data ByteArray# :: TYPE UnliftedRep
+ GHC.Exts: data ByteArray# :: TYPE 'UnliftedRep
- GHC.Exts: data Char# :: TYPE WordRep
+ GHC.Exts: data Char# :: TYPE 'WordRep
- GHC.Exts: data Compact# :: TYPE UnliftedRep
+ GHC.Exts: data Compact# :: TYPE 'UnliftedRep
- GHC.Exts: data Double# :: TYPE DoubleRep
+ GHC.Exts: data Double# :: TYPE 'DoubleRep
- GHC.Exts: data DoubleX2# :: TYPE VecRep Vec2 DoubleElemRep
+ GHC.Exts: data DoubleX2# :: TYPE 'VecRep 'Vec2 'DoubleElemRep
- GHC.Exts: data DoubleX4# :: TYPE VecRep Vec4 DoubleElemRep
+ GHC.Exts: data DoubleX4# :: TYPE 'VecRep 'Vec4 'DoubleElemRep
- GHC.Exts: data DoubleX8# :: TYPE VecRep Vec8 DoubleElemRep
+ GHC.Exts: data DoubleX8# :: TYPE 'VecRep 'Vec8 'DoubleElemRep
- GHC.Exts: data Float# :: TYPE FloatRep
+ GHC.Exts: data Float# :: TYPE 'FloatRep
- GHC.Exts: data FloatX16# :: TYPE VecRep Vec16 FloatElemRep
+ GHC.Exts: data FloatX16# :: TYPE 'VecRep 'Vec16 'FloatElemRep
- GHC.Exts: data FloatX4# :: TYPE VecRep Vec4 FloatElemRep
+ GHC.Exts: data FloatX4# :: TYPE 'VecRep 'Vec4 'FloatElemRep
- GHC.Exts: data FloatX8# :: TYPE VecRep Vec8 FloatElemRep
+ GHC.Exts: data FloatX8# :: TYPE 'VecRep 'Vec8 'FloatElemRep
- GHC.Exts: data Int# :: TYPE IntRep
+ GHC.Exts: data Int# :: TYPE 'IntRep
- GHC.Exts: data Int16X16# :: TYPE VecRep Vec16 Int16ElemRep
+ GHC.Exts: data Int16X16# :: TYPE 'VecRep 'Vec16 'Int16ElemRep
- GHC.Exts: data Int16X32# :: TYPE VecRep Vec32 Int16ElemRep
+ GHC.Exts: data Int16X32# :: TYPE 'VecRep 'Vec32 'Int16ElemRep
- GHC.Exts: data Int16X8# :: TYPE VecRep Vec8 Int16ElemRep
+ GHC.Exts: data Int16X8# :: TYPE 'VecRep 'Vec8 'Int16ElemRep
- GHC.Exts: data Int32# :: TYPE IntRep
+ GHC.Exts: data Int32# :: TYPE 'IntRep
- GHC.Exts: data Int32X16# :: TYPE VecRep Vec16 Int32ElemRep
+ GHC.Exts: data Int32X16# :: TYPE 'VecRep 'Vec16 'Int32ElemRep
- GHC.Exts: data Int32X4# :: TYPE VecRep Vec4 Int32ElemRep
+ GHC.Exts: data Int32X4# :: TYPE 'VecRep 'Vec4 'Int32ElemRep
- GHC.Exts: data Int32X8# :: TYPE VecRep Vec8 Int32ElemRep
+ GHC.Exts: data Int32X8# :: TYPE 'VecRep 'Vec8 'Int32ElemRep
- GHC.Exts: data Int64# :: TYPE Int64Rep
+ GHC.Exts: data Int64# :: TYPE 'Int64Rep
- GHC.Exts: data Int64X2# :: TYPE VecRep Vec2 Int64ElemRep
+ GHC.Exts: data Int64X2# :: TYPE 'VecRep 'Vec2 'Int64ElemRep
- GHC.Exts: data Int64X4# :: TYPE VecRep Vec4 Int64ElemRep
+ GHC.Exts: data Int64X4# :: TYPE 'VecRep 'Vec4 'Int64ElemRep
- GHC.Exts: data Int64X8# :: TYPE VecRep Vec8 Int64ElemRep
+ GHC.Exts: data Int64X8# :: TYPE 'VecRep 'Vec8 'Int64ElemRep
- GHC.Exts: data Int8X16# :: TYPE VecRep Vec16 Int8ElemRep
+ GHC.Exts: data Int8X16# :: TYPE 'VecRep 'Vec16 'Int8ElemRep
- GHC.Exts: data Int8X32# :: TYPE VecRep Vec32 Int8ElemRep
+ GHC.Exts: data Int8X32# :: TYPE 'VecRep 'Vec32 'Int8ElemRep
- GHC.Exts: data Int8X64# :: TYPE VecRep Vec64 Int8ElemRep
+ GHC.Exts: data Int8X64# :: TYPE 'VecRep 'Vec64 'Int8ElemRep
- GHC.Exts: data MVar# (a :: Type) (b :: Type) :: Type -> Type -> TYPE UnliftedRep
+ GHC.Exts: data MVar# a b :: TYPE 'UnliftedRep
- GHC.Exts: data MutVar# (a :: Type) (b :: Type) :: Type -> Type -> TYPE UnliftedRep
+ GHC.Exts: data MutVar# a b :: TYPE 'UnliftedRep
- GHC.Exts: data MutableArray# (a :: Type) (b :: Type) :: Type -> Type -> TYPE UnliftedRep
+ GHC.Exts: data MutableArray# a b :: TYPE 'UnliftedRep
- GHC.Exts: data MutableArrayArray# (a :: Type) :: Type -> TYPE UnliftedRep
+ GHC.Exts: data MutableArrayArray# a :: TYPE 'UnliftedRep
- GHC.Exts: data MutableByteArray# (a :: Type) :: Type -> TYPE UnliftedRep
+ GHC.Exts: data MutableByteArray# a :: TYPE 'UnliftedRep
- GHC.Exts: data RealWorld :: Type
+ GHC.Exts: data RealWorld
- GHC.Exts: data SmallArray# (a :: Type) :: Type -> TYPE UnliftedRep
+ GHC.Exts: data SmallArray# a :: TYPE 'UnliftedRep
- GHC.Exts: data SmallMutableArray# (a :: Type) (b :: Type) :: Type -> Type -> TYPE UnliftedRep
+ GHC.Exts: data SmallMutableArray# a b :: TYPE 'UnliftedRep
- GHC.Exts: data StableName# (a :: Type) :: Type -> TYPE UnliftedRep
+ GHC.Exts: data StableName# a :: TYPE 'UnliftedRep
- GHC.Exts: data StablePtr# (a :: Type) :: Type -> TYPE AddrRep
+ GHC.Exts: data StablePtr# a :: TYPE 'AddrRep
- GHC.Exts: data State# (a :: Type) :: Type -> TYPE TupleRep ([] :: [RuntimeRep])
+ GHC.Exts: data State# a :: TYPE 'TupleRep '[] :: [RuntimeRep]
- GHC.Exts: data TVar# (a :: Type) (b :: Type) :: Type -> Type -> TYPE UnliftedRep
+ GHC.Exts: data TVar# a b :: TYPE 'UnliftedRep
- GHC.Exts: data TYPE (a :: RuntimeRep) :: RuntimeRep -> Type
+ GHC.Exts: data TYPE (a :: RuntimeRep)
- GHC.Exts: data ThreadId# :: TYPE UnliftedRep
+ GHC.Exts: data ThreadId# :: TYPE 'UnliftedRep
- GHC.Exts: data Void# :: TYPE TupleRep ([] :: [RuntimeRep])
+ GHC.Exts: data Void# :: TYPE 'TupleRep '[] :: [RuntimeRep]
- GHC.Exts: data Weak# (a :: Type) :: Type -> TYPE UnliftedRep
+ GHC.Exts: data Weak# a :: TYPE 'UnliftedRep
- GHC.Exts: data Word# :: TYPE WordRep
+ GHC.Exts: data Word# :: TYPE 'WordRep
- GHC.Exts: data Word16X16# :: TYPE VecRep Vec16 Word16ElemRep
+ GHC.Exts: data Word16X16# :: TYPE 'VecRep 'Vec16 'Word16ElemRep
- GHC.Exts: data Word16X32# :: TYPE VecRep Vec32 Word16ElemRep
+ GHC.Exts: data Word16X32# :: TYPE 'VecRep 'Vec32 'Word16ElemRep
- GHC.Exts: data Word16X8# :: TYPE VecRep Vec8 Word16ElemRep
+ GHC.Exts: data Word16X8# :: TYPE 'VecRep 'Vec8 'Word16ElemRep
- GHC.Exts: data Word32# :: TYPE WordRep
+ GHC.Exts: data Word32# :: TYPE 'WordRep
- GHC.Exts: data Word32X16# :: TYPE VecRep Vec16 Word32ElemRep
+ GHC.Exts: data Word32X16# :: TYPE 'VecRep 'Vec16 'Word32ElemRep
- GHC.Exts: data Word32X4# :: TYPE VecRep Vec4 Word32ElemRep
+ GHC.Exts: data Word32X4# :: TYPE 'VecRep 'Vec4 'Word32ElemRep
- GHC.Exts: data Word32X8# :: TYPE VecRep Vec8 Word32ElemRep
+ GHC.Exts: data Word32X8# :: TYPE 'VecRep 'Vec8 'Word32ElemRep
- GHC.Exts: data Word64# :: TYPE Word64Rep
+ GHC.Exts: data Word64# :: TYPE 'Word64Rep
- GHC.Exts: data Word64X2# :: TYPE VecRep Vec2 Word64ElemRep
+ GHC.Exts: data Word64X2# :: TYPE 'VecRep 'Vec2 'Word64ElemRep
- GHC.Exts: data Word64X4# :: TYPE VecRep Vec4 Word64ElemRep
+ GHC.Exts: data Word64X4# :: TYPE 'VecRep 'Vec4 'Word64ElemRep
- GHC.Exts: data Word64X8# :: TYPE VecRep Vec8 Word64ElemRep
+ GHC.Exts: data Word64X8# :: TYPE 'VecRep 'Vec8 'Word64ElemRep
- GHC.Exts: data Word8X16# :: TYPE VecRep Vec16 Word8ElemRep
+ GHC.Exts: data Word8X16# :: TYPE 'VecRep 'Vec16 'Word8ElemRep
- GHC.Exts: data Word8X32# :: TYPE VecRep Vec32 Word8ElemRep
+ GHC.Exts: data Word8X32# :: TYPE 'VecRep 'Vec32 'Word8ElemRep
- GHC.Exts: data Word8X64# :: TYPE VecRep Vec64 Word8ElemRep
+ GHC.Exts: data Word8X64# :: TYPE 'VecRep 'Vec64 'Word8ElemRep
- GHC.Exts: dataToTag# :: () => a -> Int#
+ GHC.Exts: dataToTag# :: a -> Int#
- GHC.Exts: deRefStablePtr# :: () => StablePtr# a -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: deRefStablePtr# :: StablePtr# a -> State# RealWorld -> (# State# RealWorld, a #)
- GHC.Exts: deRefWeak# :: () => Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, a #)
+ GHC.Exts: deRefWeak# :: Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, a #)
- GHC.Exts: delay# :: () => Int# -> State# d -> State# d
+ GHC.Exts: delay# :: Int# -> State# d -> State# d
- GHC.Exts: eqStableName# :: () => StableName# a -> StableName# b -> Int#
+ GHC.Exts: eqStableName# :: StableName# a -> StableName# b -> Int#
- GHC.Exts: eqStablePtr# :: () => StablePtr# a -> StablePtr# a -> Int#
+ GHC.Exts: eqStablePtr# :: StablePtr# a -> StablePtr# a -> Int#
- GHC.Exts: fetchAddIntArray# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: fetchAddIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: fetchAndIntArray# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: fetchAndIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: fetchNandIntArray# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: fetchNandIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: fetchOrIntArray# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: fetchOrIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: fetchSubIntArray# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: fetchSubIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: fetchXorIntArray# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: fetchXorIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: finalizeWeak# :: () => Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, State# RealWorld -> (# State# RealWorld, b #) #)
+ GHC.Exts: finalizeWeak# :: Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, State# RealWorld -> (# State# RealWorld, b #) #)
- GHC.Exts: fork# :: () => a -> State# RealWorld -> (# State# RealWorld, ThreadId# #)
+ GHC.Exts: fork# :: a -> State# RealWorld -> (# State# RealWorld, ThreadId# #)
- GHC.Exts: forkOn# :: () => Int# -> a -> State# RealWorld -> (# State# RealWorld, ThreadId# #)
+ GHC.Exts: forkOn# :: Int# -> a -> State# RealWorld -> (# State# RealWorld, ThreadId# #)
- GHC.Exts: freezeArray# :: () => MutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, Array# a #)
+ GHC.Exts: freezeArray# :: MutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, Array# a #)
- GHC.Exts: freezeSmallArray# :: () => SmallMutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, SmallArray# a #)
+ GHC.Exts: freezeSmallArray# :: SmallMutableArray# d a -> Int# -> Int# -> State# d -> (# State# d, SmallArray# a #)
- GHC.Exts: getApStackVal# :: () => a -> Int# -> (# Int#, b #)
+ GHC.Exts: getApStackVal# :: a -> Int# -> (# Int#, b #)
- GHC.Exts: getCCSOf# :: () => a -> State# d -> (# State# d, Addr# #)
+ GHC.Exts: getCCSOf# :: a -> State# d -> (# State# d, Addr# #)
- GHC.Exts: getCurrentCCS# :: () => a -> State# d -> (# State# d, Addr# #)
+ GHC.Exts: getCurrentCCS# :: a -> State# d -> (# State# d, Addr# #)
- GHC.Exts: getSizeofMutableByteArray# :: () => MutableByteArray# d -> State# d -> (# State# d, Int# #)
+ GHC.Exts: getSizeofMutableByteArray# :: MutableByteArray# d -> State# d -> (# State# d, Int# #)
- GHC.Exts: getSpark# :: () => State# d -> (# State# d, Int#, a #)
+ GHC.Exts: getSpark# :: State# d -> (# State# d, Int#, a #)
- GHC.Exts: indexArray# :: () => Array# a -> Int# -> (# a #)
+ GHC.Exts: indexArray# :: Array# a -> Int# -> (# a #)
- GHC.Exts: indexSmallArray# :: () => SmallArray# a -> Int# -> (# a #)
+ GHC.Exts: indexSmallArray# :: SmallArray# a -> Int# -> (# a #)
- GHC.Exts: indexStablePtrArray# :: () => ByteArray# -> Int# -> StablePtr# a
+ GHC.Exts: indexStablePtrArray# :: ByteArray# -> Int# -> StablePtr# a
- GHC.Exts: indexStablePtrOffAddr# :: () => Addr# -> Int# -> StablePtr# a
+ GHC.Exts: indexStablePtrOffAddr# :: Addr# -> Int# -> StablePtr# a
- GHC.Exts: indexWord8ArrayAsStablePtr# :: () => ByteArray# -> Int# -> StablePtr# a
+ GHC.Exts: indexWord8ArrayAsStablePtr# :: ByteArray# -> Int# -> StablePtr# a
- GHC.Exts: inline :: () => a -> a
+ GHC.Exts: inline :: a -> a
- GHC.Exts: isEmptyMVar# :: () => MVar# d a -> State# d -> (# State# d, Int# #)
+ GHC.Exts: isEmptyMVar# :: MVar# d a -> State# d -> (# State# d, Int# #)
- GHC.Exts: isMutableByteArrayPinned# :: () => MutableByteArray# d -> Int#
+ GHC.Exts: isMutableByteArrayPinned# :: MutableByteArray# d -> Int#
- GHC.Exts: killThread# :: () => ThreadId# -> a -> State# RealWorld -> State# RealWorld
+ GHC.Exts: killThread# :: ThreadId# -> a -> State# RealWorld -> State# RealWorld
- GHC.Exts: lazy :: () => a -> a
+ GHC.Exts: lazy :: a -> a
- GHC.Exts: magicDict :: () => a
+ GHC.Exts: magicDict :: a
- GHC.Exts: makeStableName# :: () => a -> State# RealWorld -> (# State# RealWorld, StableName# a #)
+ GHC.Exts: makeStableName# :: a -> State# RealWorld -> (# State# RealWorld, StableName# a #)
- GHC.Exts: makeStablePtr# :: () => a -> State# RealWorld -> (# State# RealWorld, StablePtr# a #)
+ GHC.Exts: makeStablePtr# :: a -> State# RealWorld -> (# State# RealWorld, StablePtr# a #)
- GHC.Exts: maskAsyncExceptions# :: () => (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: maskAsyncExceptions# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
- GHC.Exts: maskUninterruptible# :: () => (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: maskUninterruptible# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
- GHC.Exts: mkApUpd0# :: () => BCO# -> (# a #)
+ GHC.Exts: mkApUpd0# :: BCO# -> (# a #)
- GHC.Exts: mkWeak# :: () => a -> b -> (State# RealWorld -> (# State# RealWorld, c #)) -> State# RealWorld -> (# State# RealWorld, Weak# b #)
+ GHC.Exts: mkWeak# :: forall (q :: RuntimeRep) (a :: TYPE q) b c. a -> b -> (State# RealWorld -> (# State# RealWorld, c #)) -> State# RealWorld -> (# State# RealWorld, Weak# b #)
- GHC.Exts: mkWeakNoFinalizer# :: () => a -> b -> State# RealWorld -> (# State# RealWorld, Weak# b #)
+ GHC.Exts: mkWeakNoFinalizer# :: forall (q :: RuntimeRep) (a :: TYPE q) b. a -> b -> State# RealWorld -> (# State# RealWorld, Weak# b #)
- GHC.Exts: newAlignedPinnedByteArray# :: () => Int# -> Int# -> State# d -> (# State# d, MutableByteArray# d #)
+ GHC.Exts: newAlignedPinnedByteArray# :: Int# -> Int# -> State# d -> (# State# d, MutableByteArray# d #)
- GHC.Exts: newArray# :: () => Int# -> a -> State# d -> (# State# d, MutableArray# d a #)
+ GHC.Exts: newArray# :: Int# -> a -> State# d -> (# State# d, MutableArray# d a #)
- GHC.Exts: newArrayArray# :: () => Int# -> State# d -> (# State# d, MutableArrayArray# d #)
+ GHC.Exts: newArrayArray# :: Int# -> State# d -> (# State# d, MutableArrayArray# d #)
- GHC.Exts: newBCO# :: () => ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# d -> (# State# d, BCO# #)
+ GHC.Exts: newBCO# :: ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# d -> (# State# d, BCO# #)
- GHC.Exts: newByteArray# :: () => Int# -> State# d -> (# State# d, MutableByteArray# d #)
+ GHC.Exts: newByteArray# :: Int# -> State# d -> (# State# d, MutableByteArray# d #)
- GHC.Exts: newMVar# :: () => State# d -> (# State# d, MVar# d a #)
+ GHC.Exts: newMVar# :: State# d -> (# State# d, MVar# d a #)
- GHC.Exts: newMutVar# :: () => a -> State# d -> (# State# d, MutVar# d a #)
+ GHC.Exts: newMutVar# :: a -> State# d -> (# State# d, MutVar# d a #)
- GHC.Exts: newPinnedByteArray# :: () => Int# -> State# d -> (# State# d, MutableByteArray# d #)
+ GHC.Exts: newPinnedByteArray# :: Int# -> State# d -> (# State# d, MutableByteArray# d #)
- GHC.Exts: newSmallArray# :: () => Int# -> a -> State# d -> (# State# d, SmallMutableArray# d a #)
+ GHC.Exts: newSmallArray# :: Int# -> a -> State# d -> (# State# d, SmallMutableArray# d a #)
- GHC.Exts: newTVar# :: () => a -> State# d -> (# State# d, TVar# d a #)
+ GHC.Exts: newTVar# :: a -> State# d -> (# State# d, TVar# d a #)
- GHC.Exts: noDuplicate# :: () => State# d -> State# d
+ GHC.Exts: noDuplicate# :: State# d -> State# d
- GHC.Exts: numSparks# :: () => State# d -> (# State# d, Int# #)
+ GHC.Exts: numSparks# :: State# d -> (# State# d, Int# #)
- GHC.Exts: oneShot :: () => (a -> b) -> a -> b
+ GHC.Exts: oneShot :: forall (q :: RuntimeRep) (r :: RuntimeRep) (a :: TYPE q) (b :: TYPE r). (a -> b) -> a -> b
- GHC.Exts: par# :: () => a -> Int#
+ GHC.Exts: par# :: a -> Int#
- GHC.Exts: prefetchAddr0# :: () => Addr# -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchAddr0# :: Addr# -> Int# -> State# d -> State# d
- GHC.Exts: prefetchAddr1# :: () => Addr# -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchAddr1# :: Addr# -> Int# -> State# d -> State# d
- GHC.Exts: prefetchAddr2# :: () => Addr# -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchAddr2# :: Addr# -> Int# -> State# d -> State# d
- GHC.Exts: prefetchAddr3# :: () => Addr# -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchAddr3# :: Addr# -> Int# -> State# d -> State# d
- GHC.Exts: prefetchByteArray0# :: () => ByteArray# -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchByteArray0# :: ByteArray# -> Int# -> State# d -> State# d
- GHC.Exts: prefetchByteArray1# :: () => ByteArray# -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchByteArray1# :: ByteArray# -> Int# -> State# d -> State# d
- GHC.Exts: prefetchByteArray2# :: () => ByteArray# -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchByteArray2# :: ByteArray# -> Int# -> State# d -> State# d
- GHC.Exts: prefetchByteArray3# :: () => ByteArray# -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchByteArray3# :: ByteArray# -> Int# -> State# d -> State# d
- GHC.Exts: prefetchMutableByteArray0# :: () => MutableByteArray# d -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchMutableByteArray0# :: MutableByteArray# d -> Int# -> State# d -> State# d
- GHC.Exts: prefetchMutableByteArray1# :: () => MutableByteArray# d -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchMutableByteArray1# :: MutableByteArray# d -> Int# -> State# d -> State# d
- GHC.Exts: prefetchMutableByteArray2# :: () => MutableByteArray# d -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchMutableByteArray2# :: MutableByteArray# d -> Int# -> State# d -> State# d
- GHC.Exts: prefetchMutableByteArray3# :: () => MutableByteArray# d -> Int# -> State# d -> State# d
+ GHC.Exts: prefetchMutableByteArray3# :: MutableByteArray# d -> Int# -> State# d -> State# d
- GHC.Exts: prefetchValue0# :: () => a -> State# d -> State# d
+ GHC.Exts: prefetchValue0# :: a -> State# d -> State# d
- GHC.Exts: prefetchValue1# :: () => a -> State# d -> State# d
+ GHC.Exts: prefetchValue1# :: a -> State# d -> State# d
- GHC.Exts: prefetchValue2# :: () => a -> State# d -> State# d
+ GHC.Exts: prefetchValue2# :: a -> State# d -> State# d
- GHC.Exts: prefetchValue3# :: () => a -> State# d -> State# d
+ GHC.Exts: prefetchValue3# :: a -> State# d -> State# d
- GHC.Exts: proxy# :: () => Proxy# a
+ GHC.Exts: proxy# :: forall k (a :: k). Proxy# a
- GHC.Exts: putMVar# :: () => MVar# d a -> a -> State# d -> State# d
+ GHC.Exts: putMVar# :: MVar# d a -> a -> State# d -> State# d
- GHC.Exts: raise# :: () => b -> a
+ GHC.Exts: raise# :: forall b (q :: RuntimeRep) (a :: TYPE q). b -> a
- GHC.Exts: raiseIO# :: () => a -> State# RealWorld -> (# State# RealWorld, b #)
+ GHC.Exts: raiseIO# :: a -> State# RealWorld -> (# State# RealWorld, b #)
- GHC.Exts: readAddrArray# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Addr# #)
+ GHC.Exts: readAddrArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Addr# #)
- GHC.Exts: readAddrOffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Addr# #)
+ GHC.Exts: readAddrOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Addr# #)
- GHC.Exts: readArray# :: () => MutableArray# d a -> Int# -> State# d -> (# State# d, a #)
+ GHC.Exts: readArray# :: MutableArray# d a -> Int# -> State# d -> (# State# d, a #)
- GHC.Exts: readArrayArrayArray# :: () => MutableArrayArray# d -> Int# -> State# d -> (# State# d, ArrayArray# #)
+ GHC.Exts: readArrayArrayArray# :: MutableArrayArray# d -> Int# -> State# d -> (# State# d, ArrayArray# #)
- GHC.Exts: readByteArrayArray# :: () => MutableArrayArray# d -> Int# -> State# d -> (# State# d, ByteArray# #)
+ GHC.Exts: readByteArrayArray# :: MutableArrayArray# d -> Int# -> State# d -> (# State# d, ByteArray# #)
- GHC.Exts: readCharArray# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #)
+ GHC.Exts: readCharArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #)
- GHC.Exts: readCharOffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Char# #)
+ GHC.Exts: readCharOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Char# #)
- GHC.Exts: readDoubleArray# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Double# #)
+ GHC.Exts: readDoubleArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Double# #)
- GHC.Exts: readDoubleArrayAsDoubleX2# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX2# #)
+ GHC.Exts: readDoubleArrayAsDoubleX2# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX2# #)
- GHC.Exts: readDoubleArrayAsDoubleX4# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX4# #)
+ GHC.Exts: readDoubleArrayAsDoubleX4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX4# #)
- GHC.Exts: readDoubleArrayAsDoubleX8# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX8# #)
+ GHC.Exts: readDoubleArrayAsDoubleX8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX8# #)
- GHC.Exts: readDoubleOffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Double# #)
+ GHC.Exts: readDoubleOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Double# #)
- GHC.Exts: readDoubleOffAddrAsDoubleX2# :: () => Addr# -> Int# -> State# d -> (# State# d, DoubleX2# #)
+ GHC.Exts: readDoubleOffAddrAsDoubleX2# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX2# #)
- GHC.Exts: readDoubleOffAddrAsDoubleX4# :: () => Addr# -> Int# -> State# d -> (# State# d, DoubleX4# #)
+ GHC.Exts: readDoubleOffAddrAsDoubleX4# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX4# #)
- GHC.Exts: readDoubleOffAddrAsDoubleX8# :: () => Addr# -> Int# -> State# d -> (# State# d, DoubleX8# #)
+ GHC.Exts: readDoubleOffAddrAsDoubleX8# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX8# #)
- GHC.Exts: readDoubleX2Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX2# #)
+ GHC.Exts: readDoubleX2Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX2# #)
- GHC.Exts: readDoubleX2OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, DoubleX2# #)
+ GHC.Exts: readDoubleX2OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX2# #)
- GHC.Exts: readDoubleX4Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX4# #)
+ GHC.Exts: readDoubleX4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX4# #)
- GHC.Exts: readDoubleX4OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, DoubleX4# #)
+ GHC.Exts: readDoubleX4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX4# #)
- GHC.Exts: readDoubleX8Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX8# #)
+ GHC.Exts: readDoubleX8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, DoubleX8# #)
- GHC.Exts: readDoubleX8OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, DoubleX8# #)
+ GHC.Exts: readDoubleX8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, DoubleX8# #)
- GHC.Exts: readFloatArray# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Float# #)
+ GHC.Exts: readFloatArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Float# #)
- GHC.Exts: readFloatArrayAsFloatX16# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX16# #)
+ GHC.Exts: readFloatArrayAsFloatX16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX16# #)
- GHC.Exts: readFloatArrayAsFloatX4# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX4# #)
+ GHC.Exts: readFloatArrayAsFloatX4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX4# #)
- GHC.Exts: readFloatArrayAsFloatX8# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX8# #)
+ GHC.Exts: readFloatArrayAsFloatX8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX8# #)
- GHC.Exts: readFloatOffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Float# #)
+ GHC.Exts: readFloatOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Float# #)
- GHC.Exts: readFloatOffAddrAsFloatX16# :: () => Addr# -> Int# -> State# d -> (# State# d, FloatX16# #)
+ GHC.Exts: readFloatOffAddrAsFloatX16# :: Addr# -> Int# -> State# d -> (# State# d, FloatX16# #)
- GHC.Exts: readFloatOffAddrAsFloatX4# :: () => Addr# -> Int# -> State# d -> (# State# d, FloatX4# #)
+ GHC.Exts: readFloatOffAddrAsFloatX4# :: Addr# -> Int# -> State# d -> (# State# d, FloatX4# #)
- GHC.Exts: readFloatOffAddrAsFloatX8# :: () => Addr# -> Int# -> State# d -> (# State# d, FloatX8# #)
+ GHC.Exts: readFloatOffAddrAsFloatX8# :: Addr# -> Int# -> State# d -> (# State# d, FloatX8# #)
- GHC.Exts: readFloatX16Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX16# #)
+ GHC.Exts: readFloatX16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX16# #)
- GHC.Exts: readFloatX16OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, FloatX16# #)
+ GHC.Exts: readFloatX16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, FloatX16# #)
- GHC.Exts: readFloatX4Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX4# #)
+ GHC.Exts: readFloatX4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX4# #)
- GHC.Exts: readFloatX4OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, FloatX4# #)
+ GHC.Exts: readFloatX4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, FloatX4# #)
- GHC.Exts: readFloatX8Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX8# #)
+ GHC.Exts: readFloatX8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, FloatX8# #)
- GHC.Exts: readFloatX8OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, FloatX8# #)
+ GHC.Exts: readFloatX8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, FloatX8# #)
- GHC.Exts: readInt16Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readInt16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readInt16ArrayAsInt16X16# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X16# #)
+ GHC.Exts: readInt16ArrayAsInt16X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X16# #)
- GHC.Exts: readInt16ArrayAsInt16X32# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X32# #)
+ GHC.Exts: readInt16ArrayAsInt16X32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X32# #)
- GHC.Exts: readInt16ArrayAsInt16X8# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X8# #)
+ GHC.Exts: readInt16ArrayAsInt16X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X8# #)
- GHC.Exts: readInt16OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readInt16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readInt16OffAddrAsInt16X16# :: () => Addr# -> Int# -> State# d -> (# State# d, Int16X16# #)
+ GHC.Exts: readInt16OffAddrAsInt16X16# :: Addr# -> Int# -> State# d -> (# State# d, Int16X16# #)
- GHC.Exts: readInt16OffAddrAsInt16X32# :: () => Addr# -> Int# -> State# d -> (# State# d, Int16X32# #)
+ GHC.Exts: readInt16OffAddrAsInt16X32# :: Addr# -> Int# -> State# d -> (# State# d, Int16X32# #)
- GHC.Exts: readInt16OffAddrAsInt16X8# :: () => Addr# -> Int# -> State# d -> (# State# d, Int16X8# #)
+ GHC.Exts: readInt16OffAddrAsInt16X8# :: Addr# -> Int# -> State# d -> (# State# d, Int16X8# #)
- GHC.Exts: readInt16X16Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X16# #)
+ GHC.Exts: readInt16X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X16# #)
- GHC.Exts: readInt16X16OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int16X16# #)
+ GHC.Exts: readInt16X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int16X16# #)
- GHC.Exts: readInt16X32Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X32# #)
+ GHC.Exts: readInt16X32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X32# #)
- GHC.Exts: readInt16X32OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int16X32# #)
+ GHC.Exts: readInt16X32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int16X32# #)
- GHC.Exts: readInt16X8Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X8# #)
+ GHC.Exts: readInt16X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16X8# #)
- GHC.Exts: readInt16X8OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int16X8# #)
+ GHC.Exts: readInt16X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int16X8# #)
- GHC.Exts: readInt32Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readInt32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readInt32ArrayAsInt32X16# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X16# #)
+ GHC.Exts: readInt32ArrayAsInt32X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X16# #)
- GHC.Exts: readInt32ArrayAsInt32X4# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X4# #)
+ GHC.Exts: readInt32ArrayAsInt32X4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X4# #)
- GHC.Exts: readInt32ArrayAsInt32X8# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X8# #)
+ GHC.Exts: readInt32ArrayAsInt32X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X8# #)
- GHC.Exts: readInt32OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readInt32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readInt32OffAddrAsInt32X16# :: () => Addr# -> Int# -> State# d -> (# State# d, Int32X16# #)
+ GHC.Exts: readInt32OffAddrAsInt32X16# :: Addr# -> Int# -> State# d -> (# State# d, Int32X16# #)
- GHC.Exts: readInt32OffAddrAsInt32X4# :: () => Addr# -> Int# -> State# d -> (# State# d, Int32X4# #)
+ GHC.Exts: readInt32OffAddrAsInt32X4# :: Addr# -> Int# -> State# d -> (# State# d, Int32X4# #)
- GHC.Exts: readInt32OffAddrAsInt32X8# :: () => Addr# -> Int# -> State# d -> (# State# d, Int32X8# #)
+ GHC.Exts: readInt32OffAddrAsInt32X8# :: Addr# -> Int# -> State# d -> (# State# d, Int32X8# #)
- GHC.Exts: readInt32X16Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X16# #)
+ GHC.Exts: readInt32X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X16# #)
- GHC.Exts: readInt32X16OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int32X16# #)
+ GHC.Exts: readInt32X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int32X16# #)
- GHC.Exts: readInt32X4Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X4# #)
+ GHC.Exts: readInt32X4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X4# #)
- GHC.Exts: readInt32X4OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int32X4# #)
+ GHC.Exts: readInt32X4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int32X4# #)
- GHC.Exts: readInt32X8Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X8# #)
+ GHC.Exts: readInt32X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32X8# #)
- GHC.Exts: readInt32X8OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int32X8# #)
+ GHC.Exts: readInt32X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int32X8# #)
- GHC.Exts: readInt64Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readInt64Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readInt64ArrayAsInt64X2# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X2# #)
+ GHC.Exts: readInt64ArrayAsInt64X2# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X2# #)
- GHC.Exts: readInt64ArrayAsInt64X4# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X4# #)
+ GHC.Exts: readInt64ArrayAsInt64X4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X4# #)
- GHC.Exts: readInt64ArrayAsInt64X8# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X8# #)
+ GHC.Exts: readInt64ArrayAsInt64X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X8# #)
- GHC.Exts: readInt64OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readInt64OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readInt64OffAddrAsInt64X2# :: () => Addr# -> Int# -> State# d -> (# State# d, Int64X2# #)
+ GHC.Exts: readInt64OffAddrAsInt64X2# :: Addr# -> Int# -> State# d -> (# State# d, Int64X2# #)
- GHC.Exts: readInt64OffAddrAsInt64X4# :: () => Addr# -> Int# -> State# d -> (# State# d, Int64X4# #)
+ GHC.Exts: readInt64OffAddrAsInt64X4# :: Addr# -> Int# -> State# d -> (# State# d, Int64X4# #)
- GHC.Exts: readInt64OffAddrAsInt64X8# :: () => Addr# -> Int# -> State# d -> (# State# d, Int64X8# #)
+ GHC.Exts: readInt64OffAddrAsInt64X8# :: Addr# -> Int# -> State# d -> (# State# d, Int64X8# #)
- GHC.Exts: readInt64X2Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X2# #)
+ GHC.Exts: readInt64X2Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X2# #)
- GHC.Exts: readInt64X2OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int64X2# #)
+ GHC.Exts: readInt64X2OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int64X2# #)
- GHC.Exts: readInt64X4Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X4# #)
+ GHC.Exts: readInt64X4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X4# #)
- GHC.Exts: readInt64X4OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int64X4# #)
+ GHC.Exts: readInt64X4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int64X4# #)
- GHC.Exts: readInt64X8Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X8# #)
+ GHC.Exts: readInt64X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64X8# #)
- GHC.Exts: readInt64X8OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int64X8# #)
+ GHC.Exts: readInt64X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int64X8# #)
- GHC.Exts: readInt8Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readInt8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readInt8ArrayAsInt8X16# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X16# #)
+ GHC.Exts: readInt8ArrayAsInt8X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X16# #)
- GHC.Exts: readInt8ArrayAsInt8X32# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X32# #)
+ GHC.Exts: readInt8ArrayAsInt8X32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X32# #)
- GHC.Exts: readInt8ArrayAsInt8X64# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X64# #)
+ GHC.Exts: readInt8ArrayAsInt8X64# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X64# #)
- GHC.Exts: readInt8OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readInt8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readInt8OffAddrAsInt8X16# :: () => Addr# -> Int# -> State# d -> (# State# d, Int8X16# #)
+ GHC.Exts: readInt8OffAddrAsInt8X16# :: Addr# -> Int# -> State# d -> (# State# d, Int8X16# #)
- GHC.Exts: readInt8OffAddrAsInt8X32# :: () => Addr# -> Int# -> State# d -> (# State# d, Int8X32# #)
+ GHC.Exts: readInt8OffAddrAsInt8X32# :: Addr# -> Int# -> State# d -> (# State# d, Int8X32# #)
- GHC.Exts: readInt8OffAddrAsInt8X64# :: () => Addr# -> Int# -> State# d -> (# State# d, Int8X64# #)
+ GHC.Exts: readInt8OffAddrAsInt8X64# :: Addr# -> Int# -> State# d -> (# State# d, Int8X64# #)
- GHC.Exts: readInt8X16Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X16# #)
+ GHC.Exts: readInt8X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X16# #)
- GHC.Exts: readInt8X16OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int8X16# #)
+ GHC.Exts: readInt8X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int8X16# #)
- GHC.Exts: readInt8X32Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X32# #)
+ GHC.Exts: readInt8X32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X32# #)
- GHC.Exts: readInt8X32OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int8X32# #)
+ GHC.Exts: readInt8X32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int8X32# #)
- GHC.Exts: readInt8X64Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X64# #)
+ GHC.Exts: readInt8X64Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int8X64# #)
- GHC.Exts: readInt8X64OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int8X64# #)
+ GHC.Exts: readInt8X64OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int8X64# #)
- GHC.Exts: readIntArray# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readIntArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readIntOffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readIntOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readMVar# :: () => MVar# d a -> State# d -> (# State# d, a #)
+ GHC.Exts: readMVar# :: MVar# d a -> State# d -> (# State# d, a #)
- GHC.Exts: readMutVar# :: () => MutVar# d a -> State# d -> (# State# d, a #)
+ GHC.Exts: readMutVar# :: MutVar# d a -> State# d -> (# State# d, a #)
- GHC.Exts: readMutableArrayArrayArray# :: () => MutableArrayArray# d -> Int# -> State# d -> (# State# d, MutableArrayArray# d #)
+ GHC.Exts: readMutableArrayArrayArray# :: MutableArrayArray# d -> Int# -> State# d -> (# State# d, MutableArrayArray# d #)
- GHC.Exts: readMutableByteArrayArray# :: () => MutableArrayArray# d -> Int# -> State# d -> (# State# d, MutableByteArray# d #)
+ GHC.Exts: readMutableByteArrayArray# :: MutableArrayArray# d -> Int# -> State# d -> (# State# d, MutableByteArray# d #)
- GHC.Exts: readSmallArray# :: () => SmallMutableArray# d a -> Int# -> State# d -> (# State# d, a #)
+ GHC.Exts: readSmallArray# :: SmallMutableArray# d a -> Int# -> State# d -> (# State# d, a #)
- GHC.Exts: readStablePtrArray# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, StablePtr# a #)
+ GHC.Exts: readStablePtrArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, StablePtr# a #)
- GHC.Exts: readStablePtrOffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, StablePtr# a #)
+ GHC.Exts: readStablePtrOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, StablePtr# a #)
- GHC.Exts: readTVar# :: () => TVar# d a -> State# d -> (# State# d, a #)
+ GHC.Exts: readTVar# :: TVar# d a -> State# d -> (# State# d, a #)
- GHC.Exts: readTVarIO# :: () => TVar# d a -> State# d -> (# State# d, a #)
+ GHC.Exts: readTVarIO# :: TVar# d a -> State# d -> (# State# d, a #)
- GHC.Exts: readWideCharArray# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #)
+ GHC.Exts: readWideCharArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #)
- GHC.Exts: readWideCharOffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Char# #)
+ GHC.Exts: readWideCharOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Char# #)
- GHC.Exts: readWord16Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord16ArrayAsWord16X16# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X16# #)
+ GHC.Exts: readWord16ArrayAsWord16X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X16# #)
- GHC.Exts: readWord16ArrayAsWord16X32# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X32# #)
+ GHC.Exts: readWord16ArrayAsWord16X32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X32# #)
- GHC.Exts: readWord16ArrayAsWord16X8# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X8# #)
+ GHC.Exts: readWord16ArrayAsWord16X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X8# #)
- GHC.Exts: readWord16OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord16OffAddrAsWord16X16# :: () => Addr# -> Int# -> State# d -> (# State# d, Word16X16# #)
+ GHC.Exts: readWord16OffAddrAsWord16X16# :: Addr# -> Int# -> State# d -> (# State# d, Word16X16# #)
- GHC.Exts: readWord16OffAddrAsWord16X32# :: () => Addr# -> Int# -> State# d -> (# State# d, Word16X32# #)
+ GHC.Exts: readWord16OffAddrAsWord16X32# :: Addr# -> Int# -> State# d -> (# State# d, Word16X32# #)
- GHC.Exts: readWord16OffAddrAsWord16X8# :: () => Addr# -> Int# -> State# d -> (# State# d, Word16X8# #)
+ GHC.Exts: readWord16OffAddrAsWord16X8# :: Addr# -> Int# -> State# d -> (# State# d, Word16X8# #)
- GHC.Exts: readWord16X16Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X16# #)
+ GHC.Exts: readWord16X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X16# #)
- GHC.Exts: readWord16X16OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word16X16# #)
+ GHC.Exts: readWord16X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word16X16# #)
- GHC.Exts: readWord16X32Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X32# #)
+ GHC.Exts: readWord16X32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X32# #)
- GHC.Exts: readWord16X32OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word16X32# #)
+ GHC.Exts: readWord16X32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word16X32# #)
- GHC.Exts: readWord16X8Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X8# #)
+ GHC.Exts: readWord16X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16X8# #)
- GHC.Exts: readWord16X8OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word16X8# #)
+ GHC.Exts: readWord16X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word16X8# #)
- GHC.Exts: readWord32Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord32ArrayAsWord32X16# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X16# #)
+ GHC.Exts: readWord32ArrayAsWord32X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X16# #)
- GHC.Exts: readWord32ArrayAsWord32X4# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X4# #)
+ GHC.Exts: readWord32ArrayAsWord32X4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X4# #)
- GHC.Exts: readWord32ArrayAsWord32X8# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X8# #)
+ GHC.Exts: readWord32ArrayAsWord32X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X8# #)
- GHC.Exts: readWord32OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord32OffAddrAsWord32X16# :: () => Addr# -> Int# -> State# d -> (# State# d, Word32X16# #)
+ GHC.Exts: readWord32OffAddrAsWord32X16# :: Addr# -> Int# -> State# d -> (# State# d, Word32X16# #)
- GHC.Exts: readWord32OffAddrAsWord32X4# :: () => Addr# -> Int# -> State# d -> (# State# d, Word32X4# #)
+ GHC.Exts: readWord32OffAddrAsWord32X4# :: Addr# -> Int# -> State# d -> (# State# d, Word32X4# #)
- GHC.Exts: readWord32OffAddrAsWord32X8# :: () => Addr# -> Int# -> State# d -> (# State# d, Word32X8# #)
+ GHC.Exts: readWord32OffAddrAsWord32X8# :: Addr# -> Int# -> State# d -> (# State# d, Word32X8# #)
- GHC.Exts: readWord32X16Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X16# #)
+ GHC.Exts: readWord32X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X16# #)
- GHC.Exts: readWord32X16OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word32X16# #)
+ GHC.Exts: readWord32X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word32X16# #)
- GHC.Exts: readWord32X4Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X4# #)
+ GHC.Exts: readWord32X4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X4# #)
- GHC.Exts: readWord32X4OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word32X4# #)
+ GHC.Exts: readWord32X4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word32X4# #)
- GHC.Exts: readWord32X8Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X8# #)
+ GHC.Exts: readWord32X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32X8# #)
- GHC.Exts: readWord32X8OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word32X8# #)
+ GHC.Exts: readWord32X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word32X8# #)
- GHC.Exts: readWord64Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord64Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord64ArrayAsWord64X2# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X2# #)
+ GHC.Exts: readWord64ArrayAsWord64X2# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X2# #)
- GHC.Exts: readWord64ArrayAsWord64X4# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X4# #)
+ GHC.Exts: readWord64ArrayAsWord64X4# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X4# #)
- GHC.Exts: readWord64ArrayAsWord64X8# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X8# #)
+ GHC.Exts: readWord64ArrayAsWord64X8# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X8# #)
- GHC.Exts: readWord64OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord64OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord64OffAddrAsWord64X2# :: () => Addr# -> Int# -> State# d -> (# State# d, Word64X2# #)
+ GHC.Exts: readWord64OffAddrAsWord64X2# :: Addr# -> Int# -> State# d -> (# State# d, Word64X2# #)
- GHC.Exts: readWord64OffAddrAsWord64X4# :: () => Addr# -> Int# -> State# d -> (# State# d, Word64X4# #)
+ GHC.Exts: readWord64OffAddrAsWord64X4# :: Addr# -> Int# -> State# d -> (# State# d, Word64X4# #)
- GHC.Exts: readWord64OffAddrAsWord64X8# :: () => Addr# -> Int# -> State# d -> (# State# d, Word64X8# #)
+ GHC.Exts: readWord64OffAddrAsWord64X8# :: Addr# -> Int# -> State# d -> (# State# d, Word64X8# #)
- GHC.Exts: readWord64X2Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X2# #)
+ GHC.Exts: readWord64X2Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X2# #)
- GHC.Exts: readWord64X2OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word64X2# #)
+ GHC.Exts: readWord64X2OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word64X2# #)
- GHC.Exts: readWord64X4Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X4# #)
+ GHC.Exts: readWord64X4Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X4# #)
- GHC.Exts: readWord64X4OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word64X4# #)
+ GHC.Exts: readWord64X4OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word64X4# #)
- GHC.Exts: readWord64X8Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X8# #)
+ GHC.Exts: readWord64X8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64X8# #)
- GHC.Exts: readWord64X8OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word64X8# #)
+ GHC.Exts: readWord64X8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word64X8# #)
- GHC.Exts: readWord8Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord8Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord8ArrayAsAddr# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Addr# #)
+ GHC.Exts: readWord8ArrayAsAddr# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Addr# #)
- GHC.Exts: readWord8ArrayAsChar# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #)
+ GHC.Exts: readWord8ArrayAsChar# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #)
- GHC.Exts: readWord8ArrayAsDouble# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Double# #)
+ GHC.Exts: readWord8ArrayAsDouble# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Double# #)
- GHC.Exts: readWord8ArrayAsFloat# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Float# #)
+ GHC.Exts: readWord8ArrayAsFloat# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Float# #)
- GHC.Exts: readWord8ArrayAsInt# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readWord8ArrayAsInt# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readWord8ArrayAsInt16# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readWord8ArrayAsInt16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readWord8ArrayAsInt32# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readWord8ArrayAsInt32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readWord8ArrayAsInt64# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
+ GHC.Exts: readWord8ArrayAsInt64# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
- GHC.Exts: readWord8ArrayAsStablePtr# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, StablePtr# a #)
+ GHC.Exts: readWord8ArrayAsStablePtr# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, StablePtr# a #)
- GHC.Exts: readWord8ArrayAsWideChar# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #)
+ GHC.Exts: readWord8ArrayAsWideChar# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Char# #)
- GHC.Exts: readWord8ArrayAsWord# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord8ArrayAsWord# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord8ArrayAsWord16# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord8ArrayAsWord16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord8ArrayAsWord32# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord8ArrayAsWord32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord8ArrayAsWord64# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord8ArrayAsWord64# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord8ArrayAsWord8X16# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X16# #)
+ GHC.Exts: readWord8ArrayAsWord8X16# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X16# #)
- GHC.Exts: readWord8ArrayAsWord8X32# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X32# #)
+ GHC.Exts: readWord8ArrayAsWord8X32# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X32# #)
- GHC.Exts: readWord8ArrayAsWord8X64# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X64# #)
+ GHC.Exts: readWord8ArrayAsWord8X64# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X64# #)
- GHC.Exts: readWord8OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWord8OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWord8OffAddrAsWord8X16# :: () => Addr# -> Int# -> State# d -> (# State# d, Word8X16# #)
+ GHC.Exts: readWord8OffAddrAsWord8X16# :: Addr# -> Int# -> State# d -> (# State# d, Word8X16# #)
- GHC.Exts: readWord8OffAddrAsWord8X32# :: () => Addr# -> Int# -> State# d -> (# State# d, Word8X32# #)
+ GHC.Exts: readWord8OffAddrAsWord8X32# :: Addr# -> Int# -> State# d -> (# State# d, Word8X32# #)
- GHC.Exts: readWord8OffAddrAsWord8X64# :: () => Addr# -> Int# -> State# d -> (# State# d, Word8X64# #)
+ GHC.Exts: readWord8OffAddrAsWord8X64# :: Addr# -> Int# -> State# d -> (# State# d, Word8X64# #)
- GHC.Exts: readWord8X16Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X16# #)
+ GHC.Exts: readWord8X16Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X16# #)
- GHC.Exts: readWord8X16OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word8X16# #)
+ GHC.Exts: readWord8X16OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word8X16# #)
- GHC.Exts: readWord8X32Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X32# #)
+ GHC.Exts: readWord8X32Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X32# #)
- GHC.Exts: readWord8X32OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word8X32# #)
+ GHC.Exts: readWord8X32OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word8X32# #)
- GHC.Exts: readWord8X64Array# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X64# #)
+ GHC.Exts: readWord8X64Array# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word8X64# #)
- GHC.Exts: readWord8X64OffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word8X64# #)
+ GHC.Exts: readWord8X64OffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word8X64# #)
- GHC.Exts: readWordArray# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWordArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: readWordOffAddr# :: () => Addr# -> Int# -> State# d -> (# State# d, Word# #)
+ GHC.Exts: readWordOffAddr# :: Addr# -> Int# -> State# d -> (# State# d, Word# #)
- GHC.Exts: reallyUnsafePtrEquality# :: () => a -> a -> Int#
+ GHC.Exts: reallyUnsafePtrEquality# :: a -> a -> Int#
- GHC.Exts: resizeMutableByteArray# :: () => MutableByteArray# d -> Int# -> State# d -> (# State# d, MutableByteArray# d #)
+ GHC.Exts: resizeMutableByteArray# :: MutableByteArray# d -> Int# -> State# d -> (# State# d, MutableByteArray# d #)
- GHC.Exts: retry# :: () => State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: retry# :: State# RealWorld -> (# State# RealWorld, a #)
- GHC.Exts: runRW# :: () => (State# RealWorld -> o) -> o
+ GHC.Exts: runRW# :: forall (r :: RuntimeRep) (o :: TYPE r). (State# RealWorld -> o) -> o
- GHC.Exts: sameMVar# :: () => MVar# d a -> MVar# d a -> Int#
+ GHC.Exts: sameMVar# :: MVar# d a -> MVar# d a -> Int#
- GHC.Exts: sameMutVar# :: () => MutVar# d a -> MutVar# d a -> Int#
+ GHC.Exts: sameMutVar# :: MutVar# d a -> MutVar# d a -> Int#
- GHC.Exts: sameMutableArray# :: () => MutableArray# d a -> MutableArray# d a -> Int#
+ GHC.Exts: sameMutableArray# :: MutableArray# d a -> MutableArray# d a -> Int#
- GHC.Exts: sameMutableArrayArray# :: () => MutableArrayArray# d -> MutableArrayArray# d -> Int#
+ GHC.Exts: sameMutableArrayArray# :: MutableArrayArray# d -> MutableArrayArray# d -> Int#
- GHC.Exts: sameMutableByteArray# :: () => MutableByteArray# d -> MutableByteArray# d -> Int#
+ GHC.Exts: sameMutableByteArray# :: MutableByteArray# d -> MutableByteArray# d -> Int#
- GHC.Exts: sameSmallMutableArray# :: () => SmallMutableArray# d a -> SmallMutableArray# d a -> Int#
+ GHC.Exts: sameSmallMutableArray# :: SmallMutableArray# d a -> SmallMutableArray# d a -> Int#
- GHC.Exts: sameTVar# :: () => TVar# d a -> TVar# d a -> Int#
+ GHC.Exts: sameTVar# :: TVar# d a -> TVar# d a -> Int#
- GHC.Exts: seq :: () => a -> b -> b
+ GHC.Exts: seq :: a -> b -> b
- GHC.Exts: seq# :: () => a -> State# d -> (# State# d, a #)
+ GHC.Exts: seq# :: a -> State# d -> (# State# d, a #)
- GHC.Exts: setByteArray# :: () => MutableByteArray# d -> Int# -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: setByteArray# :: MutableByteArray# d -> Int# -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: shrinkMutableByteArray# :: () => MutableByteArray# d -> Int# -> State# d -> State# d
+ GHC.Exts: shrinkMutableByteArray# :: MutableByteArray# d -> Int# -> State# d -> State# d
- GHC.Exts: sizeofArray# :: () => Array# a -> Int#
+ GHC.Exts: sizeofArray# :: Array# a -> Int#
- GHC.Exts: sizeofMutableArray# :: () => MutableArray# d a -> Int#
+ GHC.Exts: sizeofMutableArray# :: MutableArray# d a -> Int#
- GHC.Exts: sizeofMutableArrayArray# :: () => MutableArrayArray# d -> Int#
+ GHC.Exts: sizeofMutableArrayArray# :: MutableArrayArray# d -> Int#
- GHC.Exts: sizeofMutableByteArray# :: () => MutableByteArray# d -> Int#
+ GHC.Exts: sizeofMutableByteArray# :: MutableByteArray# d -> Int#
- GHC.Exts: sizeofSmallArray# :: () => SmallArray# a -> Int#
+ GHC.Exts: sizeofSmallArray# :: SmallArray# a -> Int#
- GHC.Exts: sizeofSmallMutableArray# :: () => SmallMutableArray# d a -> Int#
+ GHC.Exts: sizeofSmallMutableArray# :: SmallMutableArray# d a -> Int#
- GHC.Exts: spark# :: () => a -> State# d -> (# State# d, a #)
+ GHC.Exts: spark# :: a -> State# d -> (# State# d, a #)
- GHC.Exts: stableNameToInt# :: () => StableName# a -> Int#
+ GHC.Exts: stableNameToInt# :: StableName# a -> Int#
- GHC.Exts: tagToEnum# :: () => Int# -> a
+ GHC.Exts: tagToEnum# :: Int# -> a
- GHC.Exts: takeMVar# :: () => MVar# d a -> State# d -> (# State# d, a #)
+ GHC.Exts: takeMVar# :: MVar# d a -> State# d -> (# State# d, a #)
- GHC.Exts: thawArray# :: () => Array# a -> Int# -> Int# -> State# d -> (# State# d, MutableArray# d a #)
+ GHC.Exts: thawArray# :: Array# a -> Int# -> Int# -> State# d -> (# State# d, MutableArray# d a #)
- GHC.Exts: thawSmallArray# :: () => SmallArray# a -> Int# -> Int# -> State# d -> (# State# d, SmallMutableArray# d a #)
+ GHC.Exts: thawSmallArray# :: SmallArray# a -> Int# -> Int# -> State# d -> (# State# d, SmallMutableArray# d a #)
- GHC.Exts: touch# :: () => a -> State# RealWorld -> State# RealWorld
+ GHC.Exts: touch# :: forall (q :: RuntimeRep) (a :: TYPE q). a -> State# RealWorld -> State# RealWorld
- GHC.Exts: traceEvent# :: () => Addr# -> State# d -> State# d
+ GHC.Exts: traceEvent# :: Addr# -> State# d -> State# d
- GHC.Exts: traceMarker# :: () => Addr# -> State# d -> State# d
+ GHC.Exts: traceMarker# :: Addr# -> State# d -> State# d
- GHC.Exts: tryPutMVar# :: () => MVar# d a -> a -> State# d -> (# State# d, Int# #)
+ GHC.Exts: tryPutMVar# :: MVar# d a -> a -> State# d -> (# State# d, Int# #)
- GHC.Exts: tryReadMVar# :: () => MVar# d a -> State# d -> (# State# d, Int#, a #)
+ GHC.Exts: tryReadMVar# :: MVar# d a -> State# d -> (# State# d, Int#, a #)
- GHC.Exts: tryTakeMVar# :: () => MVar# d a -> State# d -> (# State# d, Int#, a #)
+ GHC.Exts: tryTakeMVar# :: MVar# d a -> State# d -> (# State# d, Int#, a #)
- GHC.Exts: unmaskAsyncExceptions# :: () => (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
+ GHC.Exts: unmaskAsyncExceptions# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, a #)
- GHC.Exts: unpackClosure# :: () => a -> (# Addr#, ByteArray#, Array# b #)
+ GHC.Exts: unpackClosure# :: a -> (# Addr#, ByteArray#, Array# b #)
- GHC.Exts: unsafeCoerce# :: () => a -> b
+ GHC.Exts: unsafeCoerce# :: forall (k0 :: RuntimeRep) (k1 :: RuntimeRep) (a :: TYPE k0) (b :: TYPE k1). a -> b
- GHC.Exts: unsafeFreezeArray# :: () => MutableArray# d a -> State# d -> (# State# d, Array# a #)
+ GHC.Exts: unsafeFreezeArray# :: MutableArray# d a -> State# d -> (# State# d, Array# a #)
- GHC.Exts: unsafeFreezeArrayArray# :: () => MutableArrayArray# d -> State# d -> (# State# d, ArrayArray# #)
+ GHC.Exts: unsafeFreezeArrayArray# :: MutableArrayArray# d -> State# d -> (# State# d, ArrayArray# #)
- GHC.Exts: unsafeFreezeByteArray# :: () => MutableByteArray# d -> State# d -> (# State# d, ByteArray# #)
+ GHC.Exts: unsafeFreezeByteArray# :: MutableByteArray# d -> State# d -> (# State# d, ByteArray# #)
- GHC.Exts: unsafeFreezeSmallArray# :: () => SmallMutableArray# d a -> State# d -> (# State# d, SmallArray# a #)
+ GHC.Exts: unsafeFreezeSmallArray# :: SmallMutableArray# d a -> State# d -> (# State# d, SmallArray# a #)
- GHC.Exts: unsafeThawArray# :: () => Array# a -> State# d -> (# State# d, MutableArray# d a #)
+ GHC.Exts: unsafeThawArray# :: Array# a -> State# d -> (# State# d, MutableArray# d a #)
- GHC.Exts: unsafeThawSmallArray# :: () => SmallArray# a -> State# d -> (# State# d, SmallMutableArray# d a #)
+ GHC.Exts: unsafeThawSmallArray# :: SmallArray# a -> State# d -> (# State# d, SmallMutableArray# d a #)
- GHC.Exts: waitRead# :: () => Int# -> State# d -> State# d
+ GHC.Exts: waitRead# :: Int# -> State# d -> State# d
- GHC.Exts: waitWrite# :: () => Int# -> State# d -> State# d
+ GHC.Exts: waitWrite# :: Int# -> State# d -> State# d
- GHC.Exts: writeAddrArray# :: () => MutableByteArray# d -> Int# -> Addr# -> State# d -> State# d
+ GHC.Exts: writeAddrArray# :: MutableByteArray# d -> Int# -> Addr# -> State# d -> State# d
- GHC.Exts: writeAddrOffAddr# :: () => Addr# -> Int# -> Addr# -> State# d -> State# d
+ GHC.Exts: writeAddrOffAddr# :: Addr# -> Int# -> Addr# -> State# d -> State# d
- GHC.Exts: writeArray# :: () => MutableArray# d a -> Int# -> a -> State# d -> State# d
+ GHC.Exts: writeArray# :: MutableArray# d a -> Int# -> a -> State# d -> State# d
- GHC.Exts: writeArrayArrayArray# :: () => MutableArrayArray# d -> Int# -> ArrayArray# -> State# d -> State# d
+ GHC.Exts: writeArrayArrayArray# :: MutableArrayArray# d -> Int# -> ArrayArray# -> State# d -> State# d
- GHC.Exts: writeByteArrayArray# :: () => MutableArrayArray# d -> Int# -> ByteArray# -> State# d -> State# d
+ GHC.Exts: writeByteArrayArray# :: MutableArrayArray# d -> Int# -> ByteArray# -> State# d -> State# d
- GHC.Exts: writeCharArray# :: () => MutableByteArray# d -> Int# -> Char# -> State# d -> State# d
+ GHC.Exts: writeCharArray# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d
- GHC.Exts: writeCharOffAddr# :: () => Addr# -> Int# -> Char# -> State# d -> State# d
+ GHC.Exts: writeCharOffAddr# :: Addr# -> Int# -> Char# -> State# d -> State# d
- GHC.Exts: writeDoubleArray# :: () => MutableByteArray# d -> Int# -> Double# -> State# d -> State# d
+ GHC.Exts: writeDoubleArray# :: MutableByteArray# d -> Int# -> Double# -> State# d -> State# d
- GHC.Exts: writeDoubleArrayAsDoubleX2# :: () => MutableByteArray# d -> Int# -> DoubleX2# -> State# d -> State# d
+ GHC.Exts: writeDoubleArrayAsDoubleX2# :: MutableByteArray# d -> Int# -> DoubleX2# -> State# d -> State# d
- GHC.Exts: writeDoubleArrayAsDoubleX4# :: () => MutableByteArray# d -> Int# -> DoubleX4# -> State# d -> State# d
+ GHC.Exts: writeDoubleArrayAsDoubleX4# :: MutableByteArray# d -> Int# -> DoubleX4# -> State# d -> State# d
- GHC.Exts: writeDoubleArrayAsDoubleX8# :: () => MutableByteArray# d -> Int# -> DoubleX8# -> State# d -> State# d
+ GHC.Exts: writeDoubleArrayAsDoubleX8# :: MutableByteArray# d -> Int# -> DoubleX8# -> State# d -> State# d
- GHC.Exts: writeDoubleOffAddr# :: () => Addr# -> Int# -> Double# -> State# d -> State# d
+ GHC.Exts: writeDoubleOffAddr# :: Addr# -> Int# -> Double# -> State# d -> State# d
- GHC.Exts: writeDoubleOffAddrAsDoubleX2# :: () => Addr# -> Int# -> DoubleX2# -> State# d -> State# d
+ GHC.Exts: writeDoubleOffAddrAsDoubleX2# :: Addr# -> Int# -> DoubleX2# -> State# d -> State# d
- GHC.Exts: writeDoubleOffAddrAsDoubleX4# :: () => Addr# -> Int# -> DoubleX4# -> State# d -> State# d
+ GHC.Exts: writeDoubleOffAddrAsDoubleX4# :: Addr# -> Int# -> DoubleX4# -> State# d -> State# d
- GHC.Exts: writeDoubleOffAddrAsDoubleX8# :: () => Addr# -> Int# -> DoubleX8# -> State# d -> State# d
+ GHC.Exts: writeDoubleOffAddrAsDoubleX8# :: Addr# -> Int# -> DoubleX8# -> State# d -> State# d
- GHC.Exts: writeDoubleX2Array# :: () => MutableByteArray# d -> Int# -> DoubleX2# -> State# d -> State# d
+ GHC.Exts: writeDoubleX2Array# :: MutableByteArray# d -> Int# -> DoubleX2# -> State# d -> State# d
- GHC.Exts: writeDoubleX2OffAddr# :: () => Addr# -> Int# -> DoubleX2# -> State# d -> State# d
+ GHC.Exts: writeDoubleX2OffAddr# :: Addr# -> Int# -> DoubleX2# -> State# d -> State# d
- GHC.Exts: writeDoubleX4Array# :: () => MutableByteArray# d -> Int# -> DoubleX4# -> State# d -> State# d
+ GHC.Exts: writeDoubleX4Array# :: MutableByteArray# d -> Int# -> DoubleX4# -> State# d -> State# d
- GHC.Exts: writeDoubleX4OffAddr# :: () => Addr# -> Int# -> DoubleX4# -> State# d -> State# d
+ GHC.Exts: writeDoubleX4OffAddr# :: Addr# -> Int# -> DoubleX4# -> State# d -> State# d
- GHC.Exts: writeDoubleX8Array# :: () => MutableByteArray# d -> Int# -> DoubleX8# -> State# d -> State# d
+ GHC.Exts: writeDoubleX8Array# :: MutableByteArray# d -> Int# -> DoubleX8# -> State# d -> State# d
- GHC.Exts: writeDoubleX8OffAddr# :: () => Addr# -> Int# -> DoubleX8# -> State# d -> State# d
+ GHC.Exts: writeDoubleX8OffAddr# :: Addr# -> Int# -> DoubleX8# -> State# d -> State# d
- GHC.Exts: writeFloatArray# :: () => MutableByteArray# d -> Int# -> Float# -> State# d -> State# d
+ GHC.Exts: writeFloatArray# :: MutableByteArray# d -> Int# -> Float# -> State# d -> State# d
- GHC.Exts: writeFloatArrayAsFloatX16# :: () => MutableByteArray# d -> Int# -> FloatX16# -> State# d -> State# d
+ GHC.Exts: writeFloatArrayAsFloatX16# :: MutableByteArray# d -> Int# -> FloatX16# -> State# d -> State# d
- GHC.Exts: writeFloatArrayAsFloatX4# :: () => MutableByteArray# d -> Int# -> FloatX4# -> State# d -> State# d
+ GHC.Exts: writeFloatArrayAsFloatX4# :: MutableByteArray# d -> Int# -> FloatX4# -> State# d -> State# d
- GHC.Exts: writeFloatArrayAsFloatX8# :: () => MutableByteArray# d -> Int# -> FloatX8# -> State# d -> State# d
+ GHC.Exts: writeFloatArrayAsFloatX8# :: MutableByteArray# d -> Int# -> FloatX8# -> State# d -> State# d
- GHC.Exts: writeFloatOffAddr# :: () => Addr# -> Int# -> Float# -> State# d -> State# d
+ GHC.Exts: writeFloatOffAddr# :: Addr# -> Int# -> Float# -> State# d -> State# d
- GHC.Exts: writeFloatOffAddrAsFloatX16# :: () => Addr# -> Int# -> FloatX16# -> State# d -> State# d
+ GHC.Exts: writeFloatOffAddrAsFloatX16# :: Addr# -> Int# -> FloatX16# -> State# d -> State# d
- GHC.Exts: writeFloatOffAddrAsFloatX4# :: () => Addr# -> Int# -> FloatX4# -> State# d -> State# d
+ GHC.Exts: writeFloatOffAddrAsFloatX4# :: Addr# -> Int# -> FloatX4# -> State# d -> State# d
- GHC.Exts: writeFloatOffAddrAsFloatX8# :: () => Addr# -> Int# -> FloatX8# -> State# d -> State# d
+ GHC.Exts: writeFloatOffAddrAsFloatX8# :: Addr# -> Int# -> FloatX8# -> State# d -> State# d
- GHC.Exts: writeFloatX16Array# :: () => MutableByteArray# d -> Int# -> FloatX16# -> State# d -> State# d
+ GHC.Exts: writeFloatX16Array# :: MutableByteArray# d -> Int# -> FloatX16# -> State# d -> State# d
- GHC.Exts: writeFloatX16OffAddr# :: () => Addr# -> Int# -> FloatX16# -> State# d -> State# d
+ GHC.Exts: writeFloatX16OffAddr# :: Addr# -> Int# -> FloatX16# -> State# d -> State# d
- GHC.Exts: writeFloatX4Array# :: () => MutableByteArray# d -> Int# -> FloatX4# -> State# d -> State# d
+ GHC.Exts: writeFloatX4Array# :: MutableByteArray# d -> Int# -> FloatX4# -> State# d -> State# d
- GHC.Exts: writeFloatX4OffAddr# :: () => Addr# -> Int# -> FloatX4# -> State# d -> State# d
+ GHC.Exts: writeFloatX4OffAddr# :: Addr# -> Int# -> FloatX4# -> State# d -> State# d
- GHC.Exts: writeFloatX8Array# :: () => MutableByteArray# d -> Int# -> FloatX8# -> State# d -> State# d
+ GHC.Exts: writeFloatX8Array# :: MutableByteArray# d -> Int# -> FloatX8# -> State# d -> State# d
- GHC.Exts: writeFloatX8OffAddr# :: () => Addr# -> Int# -> FloatX8# -> State# d -> State# d
+ GHC.Exts: writeFloatX8OffAddr# :: Addr# -> Int# -> FloatX8# -> State# d -> State# d
- GHC.Exts: writeInt16Array# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeInt16Array# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeInt16ArrayAsInt16X16# :: () => MutableByteArray# d -> Int# -> Int16X16# -> State# d -> State# d
+ GHC.Exts: writeInt16ArrayAsInt16X16# :: MutableByteArray# d -> Int# -> Int16X16# -> State# d -> State# d
- GHC.Exts: writeInt16ArrayAsInt16X32# :: () => MutableByteArray# d -> Int# -> Int16X32# -> State# d -> State# d
+ GHC.Exts: writeInt16ArrayAsInt16X32# :: MutableByteArray# d -> Int# -> Int16X32# -> State# d -> State# d
- GHC.Exts: writeInt16ArrayAsInt16X8# :: () => MutableByteArray# d -> Int# -> Int16X8# -> State# d -> State# d
+ GHC.Exts: writeInt16ArrayAsInt16X8# :: MutableByteArray# d -> Int# -> Int16X8# -> State# d -> State# d
- GHC.Exts: writeInt16OffAddr# :: () => Addr# -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeInt16OffAddr# :: Addr# -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeInt16OffAddrAsInt16X16# :: () => Addr# -> Int# -> Int16X16# -> State# d -> State# d
+ GHC.Exts: writeInt16OffAddrAsInt16X16# :: Addr# -> Int# -> Int16X16# -> State# d -> State# d
- GHC.Exts: writeInt16OffAddrAsInt16X32# :: () => Addr# -> Int# -> Int16X32# -> State# d -> State# d
+ GHC.Exts: writeInt16OffAddrAsInt16X32# :: Addr# -> Int# -> Int16X32# -> State# d -> State# d
- GHC.Exts: writeInt16OffAddrAsInt16X8# :: () => Addr# -> Int# -> Int16X8# -> State# d -> State# d
+ GHC.Exts: writeInt16OffAddrAsInt16X8# :: Addr# -> Int# -> Int16X8# -> State# d -> State# d
- GHC.Exts: writeInt16X16Array# :: () => MutableByteArray# d -> Int# -> Int16X16# -> State# d -> State# d
+ GHC.Exts: writeInt16X16Array# :: MutableByteArray# d -> Int# -> Int16X16# -> State# d -> State# d
- GHC.Exts: writeInt16X16OffAddr# :: () => Addr# -> Int# -> Int16X16# -> State# d -> State# d
+ GHC.Exts: writeInt16X16OffAddr# :: Addr# -> Int# -> Int16X16# -> State# d -> State# d
- GHC.Exts: writeInt16X32Array# :: () => MutableByteArray# d -> Int# -> Int16X32# -> State# d -> State# d
+ GHC.Exts: writeInt16X32Array# :: MutableByteArray# d -> Int# -> Int16X32# -> State# d -> State# d
- GHC.Exts: writeInt16X32OffAddr# :: () => Addr# -> Int# -> Int16X32# -> State# d -> State# d
+ GHC.Exts: writeInt16X32OffAddr# :: Addr# -> Int# -> Int16X32# -> State# d -> State# d
- GHC.Exts: writeInt16X8Array# :: () => MutableByteArray# d -> Int# -> Int16X8# -> State# d -> State# d
+ GHC.Exts: writeInt16X8Array# :: MutableByteArray# d -> Int# -> Int16X8# -> State# d -> State# d
- GHC.Exts: writeInt16X8OffAddr# :: () => Addr# -> Int# -> Int16X8# -> State# d -> State# d
+ GHC.Exts: writeInt16X8OffAddr# :: Addr# -> Int# -> Int16X8# -> State# d -> State# d
- GHC.Exts: writeInt32Array# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeInt32Array# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeInt32ArrayAsInt32X16# :: () => MutableByteArray# d -> Int# -> Int32X16# -> State# d -> State# d
+ GHC.Exts: writeInt32ArrayAsInt32X16# :: MutableByteArray# d -> Int# -> Int32X16# -> State# d -> State# d
- GHC.Exts: writeInt32ArrayAsInt32X4# :: () => MutableByteArray# d -> Int# -> Int32X4# -> State# d -> State# d
+ GHC.Exts: writeInt32ArrayAsInt32X4# :: MutableByteArray# d -> Int# -> Int32X4# -> State# d -> State# d
- GHC.Exts: writeInt32ArrayAsInt32X8# :: () => MutableByteArray# d -> Int# -> Int32X8# -> State# d -> State# d
+ GHC.Exts: writeInt32ArrayAsInt32X8# :: MutableByteArray# d -> Int# -> Int32X8# -> State# d -> State# d
- GHC.Exts: writeInt32OffAddr# :: () => Addr# -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeInt32OffAddr# :: Addr# -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeInt32OffAddrAsInt32X16# :: () => Addr# -> Int# -> Int32X16# -> State# d -> State# d
+ GHC.Exts: writeInt32OffAddrAsInt32X16# :: Addr# -> Int# -> Int32X16# -> State# d -> State# d
- GHC.Exts: writeInt32OffAddrAsInt32X4# :: () => Addr# -> Int# -> Int32X4# -> State# d -> State# d
+ GHC.Exts: writeInt32OffAddrAsInt32X4# :: Addr# -> Int# -> Int32X4# -> State# d -> State# d
- GHC.Exts: writeInt32OffAddrAsInt32X8# :: () => Addr# -> Int# -> Int32X8# -> State# d -> State# d
+ GHC.Exts: writeInt32OffAddrAsInt32X8# :: Addr# -> Int# -> Int32X8# -> State# d -> State# d
- GHC.Exts: writeInt32X16Array# :: () => MutableByteArray# d -> Int# -> Int32X16# -> State# d -> State# d
+ GHC.Exts: writeInt32X16Array# :: MutableByteArray# d -> Int# -> Int32X16# -> State# d -> State# d
- GHC.Exts: writeInt32X16OffAddr# :: () => Addr# -> Int# -> Int32X16# -> State# d -> State# d
+ GHC.Exts: writeInt32X16OffAddr# :: Addr# -> Int# -> Int32X16# -> State# d -> State# d
- GHC.Exts: writeInt32X4Array# :: () => MutableByteArray# d -> Int# -> Int32X4# -> State# d -> State# d
+ GHC.Exts: writeInt32X4Array# :: MutableByteArray# d -> Int# -> Int32X4# -> State# d -> State# d
- GHC.Exts: writeInt32X4OffAddr# :: () => Addr# -> Int# -> Int32X4# -> State# d -> State# d
+ GHC.Exts: writeInt32X4OffAddr# :: Addr# -> Int# -> Int32X4# -> State# d -> State# d
- GHC.Exts: writeInt32X8Array# :: () => MutableByteArray# d -> Int# -> Int32X8# -> State# d -> State# d
+ GHC.Exts: writeInt32X8Array# :: MutableByteArray# d -> Int# -> Int32X8# -> State# d -> State# d
- GHC.Exts: writeInt32X8OffAddr# :: () => Addr# -> Int# -> Int32X8# -> State# d -> State# d
+ GHC.Exts: writeInt32X8OffAddr# :: Addr# -> Int# -> Int32X8# -> State# d -> State# d
- GHC.Exts: writeInt64Array# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeInt64Array# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeInt64ArrayAsInt64X2# :: () => MutableByteArray# d -> Int# -> Int64X2# -> State# d -> State# d
+ GHC.Exts: writeInt64ArrayAsInt64X2# :: MutableByteArray# d -> Int# -> Int64X2# -> State# d -> State# d
- GHC.Exts: writeInt64ArrayAsInt64X4# :: () => MutableByteArray# d -> Int# -> Int64X4# -> State# d -> State# d
+ GHC.Exts: writeInt64ArrayAsInt64X4# :: MutableByteArray# d -> Int# -> Int64X4# -> State# d -> State# d
- GHC.Exts: writeInt64ArrayAsInt64X8# :: () => MutableByteArray# d -> Int# -> Int64X8# -> State# d -> State# d
+ GHC.Exts: writeInt64ArrayAsInt64X8# :: MutableByteArray# d -> Int# -> Int64X8# -> State# d -> State# d
- GHC.Exts: writeInt64OffAddr# :: () => Addr# -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeInt64OffAddr# :: Addr# -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeInt64OffAddrAsInt64X2# :: () => Addr# -> Int# -> Int64X2# -> State# d -> State# d
+ GHC.Exts: writeInt64OffAddrAsInt64X2# :: Addr# -> Int# -> Int64X2# -> State# d -> State# d
- GHC.Exts: writeInt64OffAddrAsInt64X4# :: () => Addr# -> Int# -> Int64X4# -> State# d -> State# d
+ GHC.Exts: writeInt64OffAddrAsInt64X4# :: Addr# -> Int# -> Int64X4# -> State# d -> State# d
- GHC.Exts: writeInt64OffAddrAsInt64X8# :: () => Addr# -> Int# -> Int64X8# -> State# d -> State# d
+ GHC.Exts: writeInt64OffAddrAsInt64X8# :: Addr# -> Int# -> Int64X8# -> State# d -> State# d
- GHC.Exts: writeInt64X2Array# :: () => MutableByteArray# d -> Int# -> Int64X2# -> State# d -> State# d
+ GHC.Exts: writeInt64X2Array# :: MutableByteArray# d -> Int# -> Int64X2# -> State# d -> State# d
- GHC.Exts: writeInt64X2OffAddr# :: () => Addr# -> Int# -> Int64X2# -> State# d -> State# d
+ GHC.Exts: writeInt64X2OffAddr# :: Addr# -> Int# -> Int64X2# -> State# d -> State# d
- GHC.Exts: writeInt64X4Array# :: () => MutableByteArray# d -> Int# -> Int64X4# -> State# d -> State# d
+ GHC.Exts: writeInt64X4Array# :: MutableByteArray# d -> Int# -> Int64X4# -> State# d -> State# d
- GHC.Exts: writeInt64X4OffAddr# :: () => Addr# -> Int# -> Int64X4# -> State# d -> State# d
+ GHC.Exts: writeInt64X4OffAddr# :: Addr# -> Int# -> Int64X4# -> State# d -> State# d
- GHC.Exts: writeInt64X8Array# :: () => MutableByteArray# d -> Int# -> Int64X8# -> State# d -> State# d
+ GHC.Exts: writeInt64X8Array# :: MutableByteArray# d -> Int# -> Int64X8# -> State# d -> State# d
- GHC.Exts: writeInt64X8OffAddr# :: () => Addr# -> Int# -> Int64X8# -> State# d -> State# d
+ GHC.Exts: writeInt64X8OffAddr# :: Addr# -> Int# -> Int64X8# -> State# d -> State# d
- GHC.Exts: writeInt8Array# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeInt8Array# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeInt8ArrayAsInt8X16# :: () => MutableByteArray# d -> Int# -> Int8X16# -> State# d -> State# d
+ GHC.Exts: writeInt8ArrayAsInt8X16# :: MutableByteArray# d -> Int# -> Int8X16# -> State# d -> State# d
- GHC.Exts: writeInt8ArrayAsInt8X32# :: () => MutableByteArray# d -> Int# -> Int8X32# -> State# d -> State# d
+ GHC.Exts: writeInt8ArrayAsInt8X32# :: MutableByteArray# d -> Int# -> Int8X32# -> State# d -> State# d
- GHC.Exts: writeInt8ArrayAsInt8X64# :: () => MutableByteArray# d -> Int# -> Int8X64# -> State# d -> State# d
+ GHC.Exts: writeInt8ArrayAsInt8X64# :: MutableByteArray# d -> Int# -> Int8X64# -> State# d -> State# d
- GHC.Exts: writeInt8OffAddr# :: () => Addr# -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeInt8OffAddr# :: Addr# -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeInt8OffAddrAsInt8X16# :: () => Addr# -> Int# -> Int8X16# -> State# d -> State# d
+ GHC.Exts: writeInt8OffAddrAsInt8X16# :: Addr# -> Int# -> Int8X16# -> State# d -> State# d
- GHC.Exts: writeInt8OffAddrAsInt8X32# :: () => Addr# -> Int# -> Int8X32# -> State# d -> State# d
+ GHC.Exts: writeInt8OffAddrAsInt8X32# :: Addr# -> Int# -> Int8X32# -> State# d -> State# d
- GHC.Exts: writeInt8OffAddrAsInt8X64# :: () => Addr# -> Int# -> Int8X64# -> State# d -> State# d
+ GHC.Exts: writeInt8OffAddrAsInt8X64# :: Addr# -> Int# -> Int8X64# -> State# d -> State# d
- GHC.Exts: writeInt8X16Array# :: () => MutableByteArray# d -> Int# -> Int8X16# -> State# d -> State# d
+ GHC.Exts: writeInt8X16Array# :: MutableByteArray# d -> Int# -> Int8X16# -> State# d -> State# d
- GHC.Exts: writeInt8X16OffAddr# :: () => Addr# -> Int# -> Int8X16# -> State# d -> State# d
+ GHC.Exts: writeInt8X16OffAddr# :: Addr# -> Int# -> Int8X16# -> State# d -> State# d
- GHC.Exts: writeInt8X32Array# :: () => MutableByteArray# d -> Int# -> Int8X32# -> State# d -> State# d
+ GHC.Exts: writeInt8X32Array# :: MutableByteArray# d -> Int# -> Int8X32# -> State# d -> State# d
- GHC.Exts: writeInt8X32OffAddr# :: () => Addr# -> Int# -> Int8X32# -> State# d -> State# d
+ GHC.Exts: writeInt8X32OffAddr# :: Addr# -> Int# -> Int8X32# -> State# d -> State# d
- GHC.Exts: writeInt8X64Array# :: () => MutableByteArray# d -> Int# -> Int8X64# -> State# d -> State# d
+ GHC.Exts: writeInt8X64Array# :: MutableByteArray# d -> Int# -> Int8X64# -> State# d -> State# d
- GHC.Exts: writeInt8X64OffAddr# :: () => Addr# -> Int# -> Int8X64# -> State# d -> State# d
+ GHC.Exts: writeInt8X64OffAddr# :: Addr# -> Int# -> Int8X64# -> State# d -> State# d
- GHC.Exts: writeIntArray# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeIntOffAddr# :: () => Addr# -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeIntOffAddr# :: Addr# -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeMutVar# :: () => MutVar# d a -> a -> State# d -> State# d
+ GHC.Exts: writeMutVar# :: MutVar# d a -> a -> State# d -> State# d
- GHC.Exts: writeMutableArrayArrayArray# :: () => MutableArrayArray# d -> Int# -> MutableArrayArray# d -> State# d -> State# d
+ GHC.Exts: writeMutableArrayArrayArray# :: MutableArrayArray# d -> Int# -> MutableArrayArray# d -> State# d -> State# d
- GHC.Exts: writeMutableByteArrayArray# :: () => MutableArrayArray# d -> Int# -> MutableByteArray# d -> State# d -> State# d
+ GHC.Exts: writeMutableByteArrayArray# :: MutableArrayArray# d -> Int# -> MutableByteArray# d -> State# d -> State# d
- GHC.Exts: writeSmallArray# :: () => SmallMutableArray# d a -> Int# -> a -> State# d -> State# d
+ GHC.Exts: writeSmallArray# :: SmallMutableArray# d a -> Int# -> a -> State# d -> State# d
- GHC.Exts: writeStablePtrArray# :: () => MutableByteArray# d -> Int# -> StablePtr# a -> State# d -> State# d
+ GHC.Exts: writeStablePtrArray# :: MutableByteArray# d -> Int# -> StablePtr# a -> State# d -> State# d
- GHC.Exts: writeStablePtrOffAddr# :: () => Addr# -> Int# -> StablePtr# a -> State# d -> State# d
+ GHC.Exts: writeStablePtrOffAddr# :: Addr# -> Int# -> StablePtr# a -> State# d -> State# d
- GHC.Exts: writeTVar# :: () => TVar# d a -> a -> State# d -> State# d
+ GHC.Exts: writeTVar# :: TVar# d a -> a -> State# d -> State# d
- GHC.Exts: writeWideCharArray# :: () => MutableByteArray# d -> Int# -> Char# -> State# d -> State# d
+ GHC.Exts: writeWideCharArray# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d
- GHC.Exts: writeWideCharOffAddr# :: () => Addr# -> Int# -> Char# -> State# d -> State# d
+ GHC.Exts: writeWideCharOffAddr# :: Addr# -> Int# -> Char# -> State# d -> State# d
- GHC.Exts: writeWord16Array# :: () => MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord16Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord16ArrayAsWord16X16# :: () => MutableByteArray# d -> Int# -> Word16X16# -> State# d -> State# d
+ GHC.Exts: writeWord16ArrayAsWord16X16# :: MutableByteArray# d -> Int# -> Word16X16# -> State# d -> State# d
- GHC.Exts: writeWord16ArrayAsWord16X32# :: () => MutableByteArray# d -> Int# -> Word16X32# -> State# d -> State# d
+ GHC.Exts: writeWord16ArrayAsWord16X32# :: MutableByteArray# d -> Int# -> Word16X32# -> State# d -> State# d
- GHC.Exts: writeWord16ArrayAsWord16X8# :: () => MutableByteArray# d -> Int# -> Word16X8# -> State# d -> State# d
+ GHC.Exts: writeWord16ArrayAsWord16X8# :: MutableByteArray# d -> Int# -> Word16X8# -> State# d -> State# d
- GHC.Exts: writeWord16OffAddr# :: () => Addr# -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord16OffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord16OffAddrAsWord16X16# :: () => Addr# -> Int# -> Word16X16# -> State# d -> State# d
+ GHC.Exts: writeWord16OffAddrAsWord16X16# :: Addr# -> Int# -> Word16X16# -> State# d -> State# d
- GHC.Exts: writeWord16OffAddrAsWord16X32# :: () => Addr# -> Int# -> Word16X32# -> State# d -> State# d
+ GHC.Exts: writeWord16OffAddrAsWord16X32# :: Addr# -> Int# -> Word16X32# -> State# d -> State# d
- GHC.Exts: writeWord16OffAddrAsWord16X8# :: () => Addr# -> Int# -> Word16X8# -> State# d -> State# d
+ GHC.Exts: writeWord16OffAddrAsWord16X8# :: Addr# -> Int# -> Word16X8# -> State# d -> State# d
- GHC.Exts: writeWord16X16Array# :: () => MutableByteArray# d -> Int# -> Word16X16# -> State# d -> State# d
+ GHC.Exts: writeWord16X16Array# :: MutableByteArray# d -> Int# -> Word16X16# -> State# d -> State# d
- GHC.Exts: writeWord16X16OffAddr# :: () => Addr# -> Int# -> Word16X16# -> State# d -> State# d
+ GHC.Exts: writeWord16X16OffAddr# :: Addr# -> Int# -> Word16X16# -> State# d -> State# d
- GHC.Exts: writeWord16X32Array# :: () => MutableByteArray# d -> Int# -> Word16X32# -> State# d -> State# d
+ GHC.Exts: writeWord16X32Array# :: MutableByteArray# d -> Int# -> Word16X32# -> State# d -> State# d
- GHC.Exts: writeWord16X32OffAddr# :: () => Addr# -> Int# -> Word16X32# -> State# d -> State# d
+ GHC.Exts: writeWord16X32OffAddr# :: Addr# -> Int# -> Word16X32# -> State# d -> State# d
- GHC.Exts: writeWord16X8Array# :: () => MutableByteArray# d -> Int# -> Word16X8# -> State# d -> State# d
+ GHC.Exts: writeWord16X8Array# :: MutableByteArray# d -> Int# -> Word16X8# -> State# d -> State# d
- GHC.Exts: writeWord16X8OffAddr# :: () => Addr# -> Int# -> Word16X8# -> State# d -> State# d
+ GHC.Exts: writeWord16X8OffAddr# :: Addr# -> Int# -> Word16X8# -> State# d -> State# d
- GHC.Exts: writeWord32Array# :: () => MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord32Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord32ArrayAsWord32X16# :: () => MutableByteArray# d -> Int# -> Word32X16# -> State# d -> State# d
+ GHC.Exts: writeWord32ArrayAsWord32X16# :: MutableByteArray# d -> Int# -> Word32X16# -> State# d -> State# d
- GHC.Exts: writeWord32ArrayAsWord32X4# :: () => MutableByteArray# d -> Int# -> Word32X4# -> State# d -> State# d
+ GHC.Exts: writeWord32ArrayAsWord32X4# :: MutableByteArray# d -> Int# -> Word32X4# -> State# d -> State# d
- GHC.Exts: writeWord32ArrayAsWord32X8# :: () => MutableByteArray# d -> Int# -> Word32X8# -> State# d -> State# d
+ GHC.Exts: writeWord32ArrayAsWord32X8# :: MutableByteArray# d -> Int# -> Word32X8# -> State# d -> State# d
- GHC.Exts: writeWord32OffAddr# :: () => Addr# -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord32OffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord32OffAddrAsWord32X16# :: () => Addr# -> Int# -> Word32X16# -> State# d -> State# d
+ GHC.Exts: writeWord32OffAddrAsWord32X16# :: Addr# -> Int# -> Word32X16# -> State# d -> State# d
- GHC.Exts: writeWord32OffAddrAsWord32X4# :: () => Addr# -> Int# -> Word32X4# -> State# d -> State# d
+ GHC.Exts: writeWord32OffAddrAsWord32X4# :: Addr# -> Int# -> Word32X4# -> State# d -> State# d
- GHC.Exts: writeWord32OffAddrAsWord32X8# :: () => Addr# -> Int# -> Word32X8# -> State# d -> State# d
+ GHC.Exts: writeWord32OffAddrAsWord32X8# :: Addr# -> Int# -> Word32X8# -> State# d -> State# d
- GHC.Exts: writeWord32X16Array# :: () => MutableByteArray# d -> Int# -> Word32X16# -> State# d -> State# d
+ GHC.Exts: writeWord32X16Array# :: MutableByteArray# d -> Int# -> Word32X16# -> State# d -> State# d
- GHC.Exts: writeWord32X16OffAddr# :: () => Addr# -> Int# -> Word32X16# -> State# d -> State# d
+ GHC.Exts: writeWord32X16OffAddr# :: Addr# -> Int# -> Word32X16# -> State# d -> State# d
- GHC.Exts: writeWord32X4Array# :: () => MutableByteArray# d -> Int# -> Word32X4# -> State# d -> State# d
+ GHC.Exts: writeWord32X4Array# :: MutableByteArray# d -> Int# -> Word32X4# -> State# d -> State# d
- GHC.Exts: writeWord32X4OffAddr# :: () => Addr# -> Int# -> Word32X4# -> State# d -> State# d
+ GHC.Exts: writeWord32X4OffAddr# :: Addr# -> Int# -> Word32X4# -> State# d -> State# d
- GHC.Exts: writeWord32X8Array# :: () => MutableByteArray# d -> Int# -> Word32X8# -> State# d -> State# d
+ GHC.Exts: writeWord32X8Array# :: MutableByteArray# d -> Int# -> Word32X8# -> State# d -> State# d
- GHC.Exts: writeWord32X8OffAddr# :: () => Addr# -> Int# -> Word32X8# -> State# d -> State# d
+ GHC.Exts: writeWord32X8OffAddr# :: Addr# -> Int# -> Word32X8# -> State# d -> State# d
- GHC.Exts: writeWord64Array# :: () => MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord64Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord64ArrayAsWord64X2# :: () => MutableByteArray# d -> Int# -> Word64X2# -> State# d -> State# d
+ GHC.Exts: writeWord64ArrayAsWord64X2# :: MutableByteArray# d -> Int# -> Word64X2# -> State# d -> State# d
- GHC.Exts: writeWord64ArrayAsWord64X4# :: () => MutableByteArray# d -> Int# -> Word64X4# -> State# d -> State# d
+ GHC.Exts: writeWord64ArrayAsWord64X4# :: MutableByteArray# d -> Int# -> Word64X4# -> State# d -> State# d
- GHC.Exts: writeWord64ArrayAsWord64X8# :: () => MutableByteArray# d -> Int# -> Word64X8# -> State# d -> State# d
+ GHC.Exts: writeWord64ArrayAsWord64X8# :: MutableByteArray# d -> Int# -> Word64X8# -> State# d -> State# d
- GHC.Exts: writeWord64OffAddr# :: () => Addr# -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord64OffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord64OffAddrAsWord64X2# :: () => Addr# -> Int# -> Word64X2# -> State# d -> State# d
+ GHC.Exts: writeWord64OffAddrAsWord64X2# :: Addr# -> Int# -> Word64X2# -> State# d -> State# d
- GHC.Exts: writeWord64OffAddrAsWord64X4# :: () => Addr# -> Int# -> Word64X4# -> State# d -> State# d
+ GHC.Exts: writeWord64OffAddrAsWord64X4# :: Addr# -> Int# -> Word64X4# -> State# d -> State# d
- GHC.Exts: writeWord64OffAddrAsWord64X8# :: () => Addr# -> Int# -> Word64X8# -> State# d -> State# d
+ GHC.Exts: writeWord64OffAddrAsWord64X8# :: Addr# -> Int# -> Word64X8# -> State# d -> State# d
- GHC.Exts: writeWord64X2Array# :: () => MutableByteArray# d -> Int# -> Word64X2# -> State# d -> State# d
+ GHC.Exts: writeWord64X2Array# :: MutableByteArray# d -> Int# -> Word64X2# -> State# d -> State# d
- GHC.Exts: writeWord64X2OffAddr# :: () => Addr# -> Int# -> Word64X2# -> State# d -> State# d
+ GHC.Exts: writeWord64X2OffAddr# :: Addr# -> Int# -> Word64X2# -> State# d -> State# d
- GHC.Exts: writeWord64X4Array# :: () => MutableByteArray# d -> Int# -> Word64X4# -> State# d -> State# d
+ GHC.Exts: writeWord64X4Array# :: MutableByteArray# d -> Int# -> Word64X4# -> State# d -> State# d
- GHC.Exts: writeWord64X4OffAddr# :: () => Addr# -> Int# -> Word64X4# -> State# d -> State# d
+ GHC.Exts: writeWord64X4OffAddr# :: Addr# -> Int# -> Word64X4# -> State# d -> State# d
- GHC.Exts: writeWord64X8Array# :: () => MutableByteArray# d -> Int# -> Word64X8# -> State# d -> State# d
+ GHC.Exts: writeWord64X8Array# :: MutableByteArray# d -> Int# -> Word64X8# -> State# d -> State# d
- GHC.Exts: writeWord64X8OffAddr# :: () => Addr# -> Int# -> Word64X8# -> State# d -> State# d
+ GHC.Exts: writeWord64X8OffAddr# :: Addr# -> Int# -> Word64X8# -> State# d -> State# d
- GHC.Exts: writeWord8Array# :: () => MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord8Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsAddr# :: () => MutableByteArray# d -> Int# -> Addr# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsAddr# :: MutableByteArray# d -> Int# -> Addr# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsChar# :: () => MutableByteArray# d -> Int# -> Char# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsChar# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsDouble# :: () => MutableByteArray# d -> Int# -> Double# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsDouble# :: MutableByteArray# d -> Int# -> Double# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsFloat# :: () => MutableByteArray# d -> Int# -> Float# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsFloat# :: MutableByteArray# d -> Int# -> Float# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsInt# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsInt# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsInt16# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsInt16# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsInt32# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsInt32# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsInt64# :: () => MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsInt64# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsStablePtr# :: () => MutableByteArray# d -> Int# -> StablePtr# a -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsStablePtr# :: MutableByteArray# d -> Int# -> StablePtr# a -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsWideChar# :: () => MutableByteArray# d -> Int# -> Char# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsWideChar# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsWord# :: () => MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsWord# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsWord16# :: () => MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsWord16# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsWord32# :: () => MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsWord32# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsWord64# :: () => MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsWord64# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsWord8X16# :: () => MutableByteArray# d -> Int# -> Word8X16# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsWord8X16# :: MutableByteArray# d -> Int# -> Word8X16# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsWord8X32# :: () => MutableByteArray# d -> Int# -> Word8X32# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsWord8X32# :: MutableByteArray# d -> Int# -> Word8X32# -> State# d -> State# d
- GHC.Exts: writeWord8ArrayAsWord8X64# :: () => MutableByteArray# d -> Int# -> Word8X64# -> State# d -> State# d
+ GHC.Exts: writeWord8ArrayAsWord8X64# :: MutableByteArray# d -> Int# -> Word8X64# -> State# d -> State# d
- GHC.Exts: writeWord8OffAddr# :: () => Addr# -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWord8OffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWord8OffAddrAsWord8X16# :: () => Addr# -> Int# -> Word8X16# -> State# d -> State# d
+ GHC.Exts: writeWord8OffAddrAsWord8X16# :: Addr# -> Int# -> Word8X16# -> State# d -> State# d
- GHC.Exts: writeWord8OffAddrAsWord8X32# :: () => Addr# -> Int# -> Word8X32# -> State# d -> State# d
+ GHC.Exts: writeWord8OffAddrAsWord8X32# :: Addr# -> Int# -> Word8X32# -> State# d -> State# d
- GHC.Exts: writeWord8OffAddrAsWord8X64# :: () => Addr# -> Int# -> Word8X64# -> State# d -> State# d
+ GHC.Exts: writeWord8OffAddrAsWord8X64# :: Addr# -> Int# -> Word8X64# -> State# d -> State# d
- GHC.Exts: writeWord8X16Array# :: () => MutableByteArray# d -> Int# -> Word8X16# -> State# d -> State# d
+ GHC.Exts: writeWord8X16Array# :: MutableByteArray# d -> Int# -> Word8X16# -> State# d -> State# d
- GHC.Exts: writeWord8X16OffAddr# :: () => Addr# -> Int# -> Word8X16# -> State# d -> State# d
+ GHC.Exts: writeWord8X16OffAddr# :: Addr# -> Int# -> Word8X16# -> State# d -> State# d
- GHC.Exts: writeWord8X32Array# :: () => MutableByteArray# d -> Int# -> Word8X32# -> State# d -> State# d
+ GHC.Exts: writeWord8X32Array# :: MutableByteArray# d -> Int# -> Word8X32# -> State# d -> State# d
- GHC.Exts: writeWord8X32OffAddr# :: () => Addr# -> Int# -> Word8X32# -> State# d -> State# d
+ GHC.Exts: writeWord8X32OffAddr# :: Addr# -> Int# -> Word8X32# -> State# d -> State# d
- GHC.Exts: writeWord8X64Array# :: () => MutableByteArray# d -> Int# -> Word8X64# -> State# d -> State# d
+ GHC.Exts: writeWord8X64Array# :: MutableByteArray# d -> Int# -> Word8X64# -> State# d -> State# d
- GHC.Exts: writeWord8X64OffAddr# :: () => Addr# -> Int# -> Word8X64# -> State# d -> State# d
+ GHC.Exts: writeWord8X64OffAddr# :: Addr# -> Int# -> Word8X64# -> State# d -> State# d
- GHC.Exts: writeWordArray# :: () => MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWordArray# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
- GHC.Exts: writeWordOffAddr# :: () => Addr# -> Int# -> Word# -> State# d -> State# d
+ GHC.Exts: writeWordOffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d
- GHC.Generics: (:*:) :: f p -> g p -> (:*:)
+ GHC.Generics: (:*:) :: f p -> g p -> (:*:) (f :: k -> Type) (g :: k -> Type) (p :: k)
- GHC.Generics: Comp1 :: f (g p) -> (:.:)
+ GHC.Generics: Comp1 :: f (g p) -> (:.:) (f :: k2 -> Type) (g :: k1 -> k2) (p :: k1)
- GHC.Generics: K1 :: c -> K1 c
+ GHC.Generics: K1 :: c -> K1 (i :: Type) c (p :: k)
- GHC.Generics: L1 :: f p -> (:+:)
+ GHC.Generics: L1 :: f p -> (:+:) (f :: k -> Type) (g :: k -> Type) (p :: k)
- GHC.Generics: M1 :: f p -> M1
+ GHC.Generics: M1 :: f p -> M1 (i :: Type) (c :: Meta) (f :: k -> Type) (p :: k)
- GHC.Generics: R1 :: g p -> (:+:)
+ GHC.Generics: R1 :: g p -> (:+:) (f :: k -> Type) (g :: k -> Type) (p :: k)
- GHC.Generics: Rec1 :: f p -> Rec1
+ GHC.Generics: Rec1 :: f p -> Rec1 (f :: k -> Type) (p :: k)
- GHC.Generics: U1 :: U1
+ GHC.Generics: U1 :: U1 (p :: k)
- GHC.Generics: [unComp1] :: (:.:) -> f (g p)
+ GHC.Generics: [unComp1] :: (:.:) (f :: k2 -> Type) (g :: k1 -> k2) (p :: k1) -> f (g p)
- GHC.Generics: [unK1] :: K1 c -> c
+ GHC.Generics: [unK1] :: K1 (i :: Type) c (p :: k) -> c
- GHC.Generics: [unM1] :: M1 -> f p
+ GHC.Generics: [unM1] :: M1 (i :: Type) (c :: Meta) (f :: k -> Type) (p :: k) -> f p
- GHC.Generics: [unRec1] :: Rec1 -> f p
+ GHC.Generics: [unRec1] :: Rec1 (f :: k -> Type) (p :: k) -> f p
- GHC.Records: class HasField (x :: k) r a | x r -> a
+ GHC.Records: class HasField x r a | x r -> a
- GHC.TypeLits: type x <= y = (x <=? y) ~ 'True
+ GHC.TypeLits: type x <= y = (x <=? y) ~ 'True
- GHC.TypeNats: type x <= y = (x <=? y) ~ 'True
+ GHC.TypeNats: type x <= y = (x <=? y) ~ 'True
- Prelude: fail :: Monad m => String -> m a
+ Prelude: fail :: MonadFail m => String -> m a
- Prelude: seq :: () => a -> b -> b
+ Prelude: seq :: a -> b -> b

Files

Control/Applicative.hs view
@@ -118,8 +118,8 @@ -- See Data.Traversable for Traversable instance due to import loops  -- |--- > f '<$>' 'ZipList' xs1 '<*>' ... '<*>' 'ZipList' xsN--- >     = 'ZipList' (zipWithN f xs1 ... xsN)+-- > f <$> ZipList xs1 <*> ... <*> ZipList xsN+-- >     = ZipList (zipWithN f xs1 ... xsN) -- -- where @zipWithN@ refers to the @zipWith@ function of the appropriate arity -- (@zipWith@, @zipWith3@, @zipWith4@, ...). For example:
Control/Arrow.hs view
@@ -76,7 +76,7 @@ -- --  * @'first' f >>> 'arr' ('id' *** g) = 'arr' ('id' *** g) >>> 'first' f@ -----  * @'first' ('first' f) >>> 'arr' 'assoc' = 'arr' 'assoc' >>> 'first' f@+--  * @'first' ('first' f) >>> 'arr' assoc = 'arr' assoc >>> 'first' f@ -- -- where --@@ -209,7 +209,7 @@ -- --  * @'left' f >>> 'arr' ('id' +++ g) = 'arr' ('id' +++ g) >>> 'left' f@ -----  * @'left' ('left' f) >>> 'arr' 'assocsum' = 'arr' 'assocsum' >>> 'left' f@+--  * @'left' ('left' f) >>> 'arr' assocsum = 'arr' assocsum >>> 'left' f@ -- -- where --
Control/Category.hs view
@@ -30,11 +30,10 @@  -- | A class for categories. Instances should satisfy the laws ----- @--- f '.' 'id'  =  f  -- (right identity)--- 'id' '.' f  =  f  -- (left identity)--- f '.' (g '.' h)  =  (f '.' g) '.' h  -- (associativity)--- @+-- [Right identity] @f '.' 'id'  =  f@+-- [Left identity]  @'id' '.' f  =  f@+-- [Associativity]  @f '.' (g '.' h)  =  (f '.' g) '.' h@+-- class Category cat where     -- | the identity morphism     id :: cat a a
Control/Concurrent/Chan.hs view
@@ -102,8 +102,8 @@ -- guarantees of 'MVar's (e.g. threads blocked in this operation are woken up in -- FIFO order). ----- Throws 'BlockedIndefinitelyOnMVar' when the channel is empty and no other--- thread holds a reference to the channel.+-- Throws 'Control.Exception.BlockedIndefinitelyOnMVar' when the channel is+-- empty and no other thread holds a reference to the channel. readChan :: Chan a -> IO a readChan (Chan readVar _) = do   modifyMVar readVar $ \read_end -> do
Control/Concurrent/MVar.hs view
@@ -33,12 +33,12 @@ -- -- === Applicability ----- 'MVar's offer more flexibility than 'IORef's, but less flexibility--- than 'STM'.  They are appropriate for building synchronization+-- 'MVar's offer more flexibility than 'Data.IORef.IORef's, but less flexibility+-- than 'GHC.Conc.STM'.  They are appropriate for building synchronization -- primitives and performing simple interthread communication; however -- they are very simple and susceptible to race conditions, deadlocks or -- uncaught exceptions.  Do not use them if you need perform larger--- atomic operations such as reading from multiple variables: use 'STM'+-- atomic operations such as reading from multiple variables: use 'GHC.Conc.STM' -- instead. -- -- In particular, the "bigger" functions in this module ('swapMVar',@@ -70,7 +70,7 @@ -- -- 'MVar' operations are always observed to take place in the order -- they are written in the program, regardless of the memory model of--- the underlying machine.  This is in contrast to 'IORef' operations+-- the underlying machine.  This is in contrast to 'Data.IORef.IORef' operations -- which may appear out-of-order to another thread in some cases. -- -- === Example
Control/Concurrent/QSem.hs view
@@ -1,6 +1,5 @@ {-# LANGUAGE Safe #-} {-# LANGUAGE BangPatterns #-}-{-# OPTIONS_GHC -funbox-strict-fields #-}  ----------------------------------------------------------------------------- -- |@@ -39,7 +38,7 @@ -- -- is safe; it never loses a unit of the resource. ---data QSem = QSem !(MVar (Int, [MVar ()], [MVar ()]))+newtype QSem = QSem (MVar (Int, [MVar ()], [MVar ()]))  -- The semaphore state (i, xs, ys): --
Control/Concurrent/QSemN.hs view
@@ -1,6 +1,4 @@ {-# LANGUAGE Safe #-}-{-# LANGUAGE BangPatterns #-}-{-# OPTIONS_GHC -funbox-strict-fields #-}  ----------------------------------------------------------------------------- -- |@@ -41,7 +39,7 @@ -- -- is safe; it never loses any of the resource. ---data QSemN = QSemN !(MVar (Int, [(Int, MVar ())], [(Int, MVar ())]))+newtype QSemN = QSemN (MVar (Int, [(Int, MVar ())], [(Int, MVar ())]))  -- The semaphore state (i, xs, ys): --
Control/Exception.hs view
@@ -264,7 +264,7 @@ >                 (\e -> handler)  If you need to unmask asynchronous exceptions again in the exception-handler, 'restore' can be used there too.+handler, @restore@ can be used there too.  Note that 'try' and friends /do not/ have a similar default, because there is no exception handler in this case.  Don't use 'try' for@@ -332,21 +332,24 @@  The following operations are guaranteed not to be interruptible: - * operations on 'IORef' from "Data.IORef"+ * operations on 'Data.IORef.IORef' from "Data.IORef" - * STM transactions that do not use 'retry'+ * STM transactions that do not use 'GHC.Conc.retry'   * everything from the @Foreign@ modules - * everything from @Control.Exception@ except for 'throwTo'+ * everything from "Control.Exception" except for 'throwTo' - * @tryTakeMVar@, @tryPutMVar@, @isEmptyMVar@+ * 'Control.Concurrent.MVar.tryTakeMVar', 'Control.Concurrent.MVar.tryPutMVar',+   'Control.Concurrent.MVar.isEmptyMVar' - * @takeMVar@ if the @MVar@ is definitely full, and conversely @putMVar@ if the @MVar@ is definitely empty+ * 'Control.Concurrent.MVar.takeMVar' if the 'Control.Concurrent.MVar.MVar' is+   definitely full, and conversely 'Control.Concurrent.MVar.putMVar' if the+   'Control.Concurrent.MVar.MVar' is definitely empty - * @newEmptyMVar@, @newMVar@+ * 'Control.Concurrent.MVar.newEmptyMVar', 'Control.Concurrent.MVar.newMVar' - * @forkIO@, @forkIOUnmasked@, @myThreadId@+ * 'Control.Concurrent.forkIO', 'Control.Concurrent.myThreadId'  -} 
Control/Monad.hs view
@@ -19,7 +19,8 @@     -- * Functor and monad classes        Functor(fmap)-    , Monad((>>=), (>>), return, fail)+    , Monad((>>=), (>>), return)+    , MonadFail(fail)     , MonadPlus(mzero, mplus)     -- * Functions @@ -75,6 +76,7 @@     , (<$!>)     ) where +import Control.Monad.Fail ( MonadFail(fail) ) import Data.Foldable ( Foldable, sequence_, sequenceA_, msum, mapM_, foldlM, forM_ ) import Data.Functor ( void, (<$>) ) import Data.Traversable ( forM, mapM, traverse, sequence, sequenceA )@@ -131,7 +133,7 @@ guard True      =  pure () guard False     =  empty --- | This generalizes the list-based 'filter' function.+-- | This generalizes the list-based 'Data.List.filter' function.  {-# INLINE filterM #-} filterM          :: (Applicative m) => (a -> m Bool) -> [a] -> m [a]@@ -188,7 +190,7 @@  -- | The 'mapAndUnzipM' function maps its first argument over a list, returning -- the result as a pair of lists. This function is mainly used with complicated--- data structures or a state-transforming monad.+-- data structures or a state monad. mapAndUnzipM      :: (Applicative m) => (a -> m (b,c)) -> [a] -> m ([b], [c]) {-# INLINE mapAndUnzipM #-} mapAndUnzipM f xs =  unzip <$> traverse f xs@@ -203,7 +205,7 @@ {-# INLINE zipWithM_ #-} zipWithM_ f xs ys =  sequenceA_ (zipWith f xs ys) -{- | The 'foldM' function is analogous to 'foldl', except that its result is+{- | The 'foldM' function is analogous to 'Data.Foldable.foldl', except that its result is encapsulated in a monad. Note that 'foldM' works from left-to-right over the list arguments. This could be an issue where @('>>')@ and the `folded function' are not commutative.
Control/Monad/Fail.hs view
@@ -50,13 +50,13 @@ -- only a single data constructor, and irrefutable patterns (@~pat@). -- -- Instances of 'MonadFail' should satisfy the following law: @fail s@ should--- be a left zero for '>>=',+-- be a left zero for 'Control.Monad.>>=', -- -- @ -- fail s >>= f  =  fail s -- @ ----- If your 'Monad' is also 'MonadPlus', a popular definition is+-- If your 'Monad' is also 'Control.Monad.MonadPlus', a popular definition is -- -- @ -- fail _ = mzero
Control/Monad/Fix.hs view
@@ -39,17 +39,17 @@ -- | Monads having fixed points with a \'knot-tying\' semantics. -- Instances of 'MonadFix' should satisfy the following laws: ----- [/purity/]---      @'mfix' ('return' . h)  =  'return' ('fix' h)@+-- [Purity]+--      @'mfix' ('Control.Monad.return' . h)  =  'Control.Monad.return' ('fix' h)@ ----- [/left shrinking/ (or /tightening/)]+-- [Left shrinking (or Tightening)] --      @'mfix' (\\x -> a >>= \\y -> f x y)  =  a >>= \\y -> 'mfix' (\\x -> f x y)@ ----- [/sliding/]+-- [Sliding] --      @'mfix' ('Control.Monad.liftM' h . f)  =  'Control.Monad.liftM' h ('mfix' (f . h))@, --      for strict @h@. ----- [/nesting/]+-- [Nesting] --      @'mfix' (\\x -> 'mfix' (\\y -> f x y))  =  'mfix' (\\x -> f x x)@ -- -- This class is used in the translation of the recursive @do@ notation
Control/Monad/ST/Imp.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE Unsafe #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -24,7 +24,7 @@         runST,         fixST, -        -- * Converting 'ST' to 'IO'+        -- * Converting 'ST' to 'Prelude.IO'         RealWorld,              -- abstract         stToIO, @@ -45,7 +45,7 @@                         ( catch, throwIO, NonTermination (..)                         , BlockedIndefinitelyOnMVar (..) ) --- | Allow the result of a state transformer computation to be used (lazily)+-- | Allow the result of an 'ST' computation to be used (lazily) -- inside the computation. -- -- Note that if @f@ is strict, @'fixST' f = _|_@.
Control/Monad/ST/Lazy/Imp.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE Unsafe #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE MagicHash, UnboxedTuples, RankNTypes #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -14,7 +14,7 @@ -- Portability :  non-portable (requires universal quantification for runST) -- -- This module presents an identical interface to "Control.Monad.ST",--- except that the monad delays evaluation of state operations until+-- except that the monad delays evaluation of 'ST' operations until -- a value depending on them is required. -- -----------------------------------------------------------------------------@@ -46,10 +46,10 @@ import GHC.Base import qualified Control.Monad.Fail as Fail --- | The lazy state-transformer monad.--- A computation of type @'ST' s a@ transforms an internal state indexed--- by @s@, and returns a value of type @a@.--- The @s@ parameter is either+-- | The lazy @'ST' monad.+-- The ST monad allows for destructive updates, but is escapable (unlike IO).+-- A computation of type @'ST' s a@ returns a value of type @a@, and+-- execute in "thread" @s@. The @s@ parameter is either -- -- * an uninstantiated type variable (inside invocations of 'runST'), or --@@ -180,9 +180,6 @@  -- | @since 2.01 instance Monad (ST s) where--    fail s   = errorWithoutStackTrace s-     (>>) = (*>)      m >>= k = ST $ \ s ->@@ -198,13 +195,13 @@ instance Fail.MonadFail (ST s) where     fail s = errorWithoutStackTrace s --- | Return the value computed by a state transformer computation.+-- | Return the value computed by an 'ST' computation. -- The @forall@ ensures that the internal state used by the 'ST' -- computation is inaccessible to the rest of the program. runST :: (forall s. ST s a) -> a runST (ST st) = runRW# (\s -> case st (S# s) of (r, _) -> r) --- | Allow the result of a state transformer computation to be used (lazily)+-- | Allow the result of an 'ST' computation to be used (lazily) -- inside the computation. -- Note that if @f@ is strict, @'fixST' f = _|_@. fixST :: (a -> ST s a) -> ST s a@@ -243,7 +240,7 @@ lazyToStrictST (ST m) = GHC.ST.ST $ \s ->         case (m (S# s)) of (a, S# s') -> (# s', a #) --- | A monad transformer embedding lazy state transformers in the 'IO'+-- | A monad transformer embedding lazy 'ST' in the 'IO' -- monad.  The 'RealWorld' parameter indicates that the internal state -- used by the 'ST' computation is a special one supplied by the 'IO' -- monad, and thus distinct from those used by invocations of 'runST'.
Control/Monad/ST/Lazy/Safe.hs view
@@ -11,7 +11,7 @@ -- Portability :  non-portable (requires universal quantification for runST) -- -- This module presents an identical interface to "Control.Monad.ST",--- except that the monad delays evaluation of state operations until+-- except that the monad delays evaluation of 'ST' operations until -- a value depending on them is required. -- -- Safe API only.
Control/Monad/ST/Lazy/Unsafe.hs view
@@ -11,7 +11,7 @@ -- Portability :  non-portable (requires universal quantification for runST) -- -- This module presents an identical interface to "Control.Monad.ST",--- except that the monad delays evaluation of state operations until+-- except that the monad delays evaluation of 'ST' operations until -- a value depending on them is required. -- -- Unsafe API.
Control/Monad/Zip.hs view
@@ -26,19 +26,18 @@ import qualified Data.List.NonEmpty as NE import GHC.Generics --- | `MonadZip` type class. Minimal definition: `mzip` or `mzipWith`------ Instances should satisfy the laws:+-- | Instances should satisfy the laws: ----- * Naturality :+-- [Naturality] -----   > liftM (f *** g) (mzip ma mb) = mzip (liftM f ma) (liftM g mb)+--     @'liftM' (f 'Control.Arrow.***' g) ('mzip' ma mb)+--         = 'mzip' ('liftM' f ma) ('liftM' g mb)@ ----- * Information Preservation:+-- [Information Preservation] -----   > liftM (const ()) ma = liftM (const ()) mb---   > ==>---   > munzip (mzip ma mb) = (ma, mb)+--     @'liftM' ('Prelude.const' ()) ma = 'liftM' ('Prelude.const' ()) mb@+--         implies+--     @'munzip' ('mzip' ma mb) = (ma, mb)@ -- class Monad m => MonadZip m where     {-# MINIMAL mzip | mzipWith #-}
Data/Bifoldable.hs view
@@ -76,13 +76,17 @@ -- 'bifoldr' f g z t ≡ 'appEndo' ('bifoldMap' (Endo . f) (Endo . g) t) z -- @ ----- If the type is also a 'Bifunctor' instance, it should satisfy:+-- If the type is also a 'Data.Bifunctor.Bifunctor' instance, it should satisfy: ----- > 'bifoldMap' f g ≡ 'bifold' . 'bimap' f g+-- @+-- 'bifoldMap' f g ≡ 'bifold' . 'Data.Bifunctor.bimap' f g+-- @ -- -- which implies that ----- > 'bifoldMap' f g . 'bimap' h i ≡ 'bifoldMap' (f . h) (g . i)+-- @+-- 'bifoldMap' f g . 'Data.Bifunctor.bimap' h i ≡ 'bifoldMap' (f . h) (g . i)+-- @ -- -- @since 4.10.0.0 class Bifoldable p where
Data/Bitraversable.hs view
@@ -44,16 +44,19 @@ -- -- A definition of 'bitraverse' must satisfy the following laws: ----- [/naturality/]+-- [Naturality] --   @'bitraverse' (t . f) (t . g) ≡ t . 'bitraverse' f g@ --   for every applicative transformation @t@ ----- [/identity/]+-- [Identity] --   @'bitraverse' 'Identity' 'Identity' ≡ 'Identity'@ ----- [/composition/]---   @'Compose' . 'fmap' ('bitraverse' g1 g2) . 'bitraverse' f1 f2---     ≡ 'traverse' ('Compose' . 'fmap' g1 . f1) ('Compose' . 'fmap' g2 . f2)@+-- [Composition]+--   @'Data.Functor.Compose.Compose' .+--    'fmap' ('bitraverse' g1 g2) .+--    'bitraverse' f1 f2+--     ≡ 'bitraverse' ('Data.Functor.Compose.Compose' . 'fmap' g1 . f1)+--                  ('Data.Functor.Compose.Compose' . 'fmap' g2 . f2)@ -- -- where an /applicative transformation/ is a function --@@ -66,26 +69,9 @@ -- t (f '<*>' x) = t f '<*>' t x -- @ ----- and the identity functor 'Identity' and composition functors 'Compose' are--- defined as------ > newtype Identity a = Identity { runIdentity :: a }--- >--- > instance Functor Identity where--- >   fmap f (Identity x) = Identity (f x)--- >--- > instance Applicative Identity where--- >   pure = Identity--- >   Identity f <*> Identity x = Identity (f x)--- >--- > newtype Compose f g a = Compose (f (g a))--- >--- > instance (Functor f, Functor g) => Functor (Compose f g) where--- >   fmap f (Compose x) = Compose (fmap (fmap f) x)--- >--- > instance (Applicative f, Applicative g) => Applicative (Compose f g) where--- >   pure = Compose . pure . pure--- >   Compose f <*> Compose x = Compose ((<*>) <$> f <*> x)+-- and the identity functor 'Identity' and composition functors+-- 'Data.Functor.Compose.Compose' are from "Data.Functor.Identity" and+-- "Data.Functor.Compose". -- -- Some simple examples are 'Either' and '(,)': --
Data/Bits.hs view
@@ -63,10 +63,6 @@ import GHC.Base import GHC.Real -#if defined(MIN_VERSION_integer_gmp)-import GHC.Integer.GMP.Internals (bitInteger, popCountInteger)-#endif- infixl 8 `shift`, `rotate`, `shiftL`, `shiftR`, `rotateL`, `rotateR` infixl 7 .&. infixl 6 `xor`@@ -209,7 +205,8 @@     x `complementBit` i = x `xor` bit i      {-| Shift the argument left by the specified number of bits-        (which must be non-negative).+        (which must be non-negative). Some instances may throw an+        'Control.Exception.Overflow' exception if given a negative input.          An instance can define either this and 'shiftR' or the unified         'shift', depending on which is more convenient for the type in@@ -231,7 +228,8 @@      {-| Shift the first argument right by the specified number of bits. The         result is undefined for negative shift amounts and shift amounts-        greater or equal to the 'bitSize'.+        greater or equal to the 'bitSize'. Some instances may throw an+        'Control.Exception.Overflow' exception if given a negative input.          Right shifts perform sign extension on signed number types;         i.e. they fill the top bits with 1 if the @x@ is negative@@ -454,9 +452,13 @@     (I# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#)      = I# (x# `iShiftL#` i#)         | otherwise                = I# (x# `iShiftRA#` negateInt# i#)-    (I# x#) `shiftL` (I# i#)       = I# (x# `iShiftL#` i#)+    (I# x#) `shiftL` (I# i#)+        | isTrue# (i# >=# 0#)      = I# (x# `iShiftL#` i#)+        | otherwise                = overflowError     (I# x#) `unsafeShiftL` (I# i#) = I# (x# `uncheckedIShiftL#` i#)-    (I# x#) `shiftR` (I# i#)       = I# (x# `iShiftRA#` i#)+    (I# x#) `shiftR` (I# i#)+        | isTrue# (i# >=# 0#)      = I# (x# `iShiftRA#` i#)+        | otherwise                = overflowError     (I# x#) `unsafeShiftR` (I# i#) = I# (x# `uncheckedIShiftRA#` i#)      {-# INLINE rotate #-}       -- See Note [Constant folding for rotate]@@ -492,9 +494,13 @@     (W# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#)      = W# (x# `shiftL#` i#)         | otherwise                = W# (x# `shiftRL#` negateInt# i#)-    (W# x#) `shiftL` (I# i#)       = W# (x# `shiftL#` i#)+    (W# x#) `shiftL` (I# i#)+        | isTrue# (i# >=# 0#)      = W# (x# `shiftL#` i#)+        | otherwise                = overflowError     (W# x#) `unsafeShiftL` (I# i#) = W# (x# `uncheckedShiftL#` i#)-    (W# x#) `shiftR` (I# i#)       = W# (x# `shiftRL#` i#)+    (W# x#) `shiftR` (I# i#)+        | isTrue# (i# >=# 0#)      = W# (x# `shiftRL#` i#)+        | otherwise                = overflowError     (W# x#) `unsafeShiftR` (I# i#) = W# (x# `uncheckedShiftRL#` i#)     (W# x#) `rotate` (I# i#)         | isTrue# (i'# ==# 0#) = W# x#@@ -526,13 +532,8 @@    testBit x (I# i) = testBitInteger x i    zeroBits   = 0 -#if defined(MIN_VERSION_integer_gmp)    bit (I# i#) = bitInteger i#    popCount x  = I# (popCountInteger x)-#else-   bit        = bitDefault-   popCount   = popCountDefault-#endif     rotate x i = shift x i   -- since an Integer never wraps around @@ -540,7 +541,6 @@    bitSize _  = errorWithoutStackTrace "Data.Bits.bitSize(Integer)"    isSigned _ = True -#if defined(MIN_VERSION_integer_gmp) -- | @since 4.8.0 instance Bits Natural where    (.&.) = andNatural@@ -563,50 +563,6 @@    bitSizeMaybe _ = Nothing    bitSize _  = errorWithoutStackTrace "Data.Bits.bitSize(Natural)"    isSigned _ = False-#else--- | @since 4.8.0.0-instance Bits Natural where-  Natural n .&. Natural m = Natural (n .&. m)-  {-# INLINE (.&.) #-}-  Natural n .|. Natural m = Natural (n .|. m)-  {-# INLINE (.|.) #-}-  xor (Natural n) (Natural m) = Natural (xor n m)-  {-# INLINE xor #-}-  complement _ = errorWithoutStackTrace "Bits.complement: Natural complement undefined"-  {-# INLINE complement #-}-  shift (Natural n) = Natural . shift n-  {-# INLINE shift #-}-  rotate (Natural n) = Natural . rotate n-  {-# INLINE rotate #-}-  bit = Natural . bit-  {-# INLINE bit #-}-  setBit (Natural n) = Natural . setBit n-  {-# INLINE setBit #-}-  clearBit (Natural n) = Natural . clearBit n-  {-# INLINE clearBit #-}-  complementBit (Natural n) = Natural . complementBit n-  {-# INLINE complementBit #-}-  testBit (Natural n) = testBit n-  {-# INLINE testBit #-}-  bitSizeMaybe _ = Nothing-  {-# INLINE bitSizeMaybe #-}-  bitSize = errorWithoutStackTrace "Natural: bitSize"-  {-# INLINE bitSize #-}-  isSigned _ = False-  {-# INLINE isSigned #-}-  shiftL (Natural n) = Natural . shiftL n-  {-# INLINE shiftL #-}-  shiftR (Natural n) = Natural . shiftR n-  {-# INLINE shiftR #-}-  rotateL (Natural n) = Natural . rotateL n-  {-# INLINE rotateL #-}-  rotateR (Natural n) = Natural . rotateR n-  {-# INLINE rotateR #-}-  popCount (Natural n) = popCount n-  {-# INLINE popCount #-}-  zeroBits = Natural 0--#endif  ----------------------------------------------------------------------------- 
Data/Either.hs view
@@ -164,7 +164,7 @@ -- -- We create two values of type @'Either' 'String' 'Int'@, one using the -- 'Left' constructor and another using the 'Right' constructor. Then--- we apply \"either\" the 'length' function (if we have a 'String')+-- we apply \"either\" the 'Prelude.length' function (if we have a 'String') -- or the \"times-two\" function (if we have an 'Int'): -- -- >>> let s = Left "foo" :: Either String Int@@ -192,7 +192,7 @@ -- lefts   :: [Either a b] -> [a] lefts x = [a | Left a <- x]-{-# INLINEABLE lefts #-} -- otherwise doesnt get an unfolding, see #13689+{-# INLINEABLE lefts #-} -- otherwise doesn't get an unfolding, see #13689  -- | Extracts from a list of 'Either' all the 'Right' elements. -- All the 'Right' elements are extracted in order.@@ -207,7 +207,7 @@ -- rights   :: [Either a b] -> [b] rights x = [a | Right a <- x]-{-# INLINEABLE rights #-} -- otherwise doesnt get an unfolding, see #13689+{-# INLINEABLE rights #-} -- otherwise doesn't get an unfolding, see #13689  -- | Partitions a list of 'Either' into two lists. -- All the 'Left' elements are extracted, in order, to the first
Data/Fixed.hs view
@@ -12,11 +12,12 @@ -- Portability :  portable -- -- This module defines a \"Fixed\" type for fixed-precision arithmetic.--- The parameter to Fixed is any type that's an instance of HasResolution.--- HasResolution has a single method that gives the resolution of the Fixed type.+-- The parameter to 'Fixed' is any type that's an instance of 'HasResolution'.+-- 'HasResolution' has a single method that gives the resolution of the 'Fixed'+-- type. ----- This module also contains generalisations of div, mod, and divmod to work--- with any Real instance.+-- This module also contains generalisations of 'div', 'mod', and 'divMod' to+-- work with any 'Real' instance. -- ----------------------------------------------------------------------------- @@ -42,16 +43,16 @@  default () -- avoid any defaulting shenanigans --- | generalisation of 'div' to any instance of Real+-- | generalisation of 'div' to any instance of 'Real' div' :: (Real a,Integral b) => a -> a -> b div' n d = floor ((toRational n) / (toRational d)) --- | generalisation of 'divMod' to any instance of Real+-- | generalisation of 'divMod' to any instance of 'Real' divMod' :: (Real a,Integral b) => a -> a -> (b,a) divMod' n d = (f,n - (fromIntegral f) * d) where     f = div' n d --- | generalisation of 'mod' to any instance of Real+-- | generalisation of 'mod' to any instance of 'Real' mod' :: (Real a) => a -> a -> a mod' n d = n - (fromInteger f) * d where     f = div' n d@@ -157,7 +158,7 @@  -- | @since 2.01 instance (HasResolution a) => Show (Fixed a) where-    show = showFixed False+    showsPrec p n = showParen (p > 6 && n < 0) $ showString $ showFixed False n  -- | @since 4.3.0.0 instance (HasResolution a) => Read (Fixed a) where
Data/Foldable.hs view
@@ -130,6 +130,12 @@     -- This INLINE allows more list functions to fuse. See Trac #9848.     foldMap f = foldr (mappend . f) mempty +    -- | A variant of 'foldMap' that is strict in the accumulator.+    --+    -- @since 4.13.0.0+    foldMap' :: Monoid m => (a -> m) -> t a -> m+    foldMap' f = foldl' (\ acc a -> acc <> f a) mempty+     -- | Right-associative fold of a structure.     --     -- In the case of lists, 'foldr', when applied to a binary operator, a@@ -153,6 +159,7 @@     -- | Right-associative fold of a structure, but with strict application of     -- the operator.     --+    -- @since 4.6.0.0     foldr' :: (a -> b -> b) -> b -> t a -> b     foldr' f z0 xs = foldl f' id xs z0       where f' k x z = k $! f x z@@ -172,8 +179,8 @@     --     -- Also note that if you want an efficient left-fold, you probably want to     -- use 'foldl'' instead of 'foldl'. The reason for this is that latter does-    -- not force the "inner" results (e.g. @z `f` x1@ in the above example)-    -- before applying them to the operator (e.g. to @(`f` x2)@). This results+    -- not force the "inner" results (e.g. @z \`f\` x1@ in the above example)+    -- before applying them to the operator (e.g. to @(\`f\` x2)@). This results     -- in a thunk chain @O(n)@ elements long, which then must be evaluated from     -- the outside-in.     --@@ -198,8 +205,9 @@     -- For a general 'Foldable' structure this should be semantically identical     -- to,     ---    -- @foldl f z = 'List.foldl'' f z . 'toList'@+    -- @foldl' f z = 'List.foldl'' f z . 'toList'@     --+    -- @since 4.6.0.0     foldl' :: (b -> a -> b) -> b -> t a -> b     foldl' f z0 xs = foldr f' id xs z0       where f' x k z = k $! f z x@@ -229,6 +237,8 @@                          Just x  -> f x y)      -- | List of elements of a structure, from left to right.+    --+    -- @since 4.8.0.0     toList :: t a -> [a]     {-# INLINE toList #-}     toList t = build (\ c n -> foldr c n t)@@ -236,35 +246,49 @@     -- | Test whether the structure is empty. The default implementation is     -- optimized for structures that are similar to cons-lists, because there     -- is no general way to do better.+    --+    -- @since 4.8.0.0     null :: t a -> Bool     null = foldr (\_ _ -> False) True      -- | Returns the size/length of a finite structure as an 'Int'.  The     -- default implementation is optimized for structures that are similar to     -- cons-lists, because there is no general way to do better.+    --+    -- @since 4.8.0.0     length :: t a -> Int     length = foldl' (\c _ -> c+1) 0      -- | Does the element occur in the structure?+    --+    -- @since 4.8.0.0     elem :: Eq a => a -> t a -> Bool     elem = any . (==)      -- | The largest element of a non-empty structure.+    --+    -- @since 4.8.0.0     maximum :: forall a . Ord a => t a -> a     maximum = fromMaybe (errorWithoutStackTrace "maximum: empty structure") .        getMax . foldMap (Max #. (Just :: a -> Maybe a))      -- | The least element of a non-empty structure.+    --+    -- @since 4.8.0.0     minimum :: forall a . Ord a => t a -> a     minimum = fromMaybe (errorWithoutStackTrace "minimum: empty structure") .        getMin . foldMap (Min #. (Just :: a -> Maybe a))      -- | The 'sum' function computes the sum of the numbers of a structure.+    --+    -- @since 4.8.0.0     sum :: Num a => t a -> a     sum = getSum #. foldMap Sum      -- | The 'product' function computes the product of the numbers of a     -- structure.+    --+    -- @since 4.8.0.0     product :: Num a => t a -> a     product = getProduct #. foldMap Product @@ -512,20 +536,27 @@ -- | Monadic fold over the elements of a structure, -- associating to the right, i.e. from right to left. foldrM :: (Foldable t, Monad m) => (a -> b -> m b) -> b -> t a -> m b-foldrM f z0 xs = foldl f' return xs z0-  where f' k x z = f x z >>= k+foldrM f z0 xs = foldl c return xs z0+  -- See Note [List fusion and continuations in 'c']+  where c k x z = f x z >>= k+        {-# INLINE c #-}  -- | Monadic fold over the elements of a structure, -- associating to the left, i.e. from left to right. foldlM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b-foldlM f z0 xs = foldr f' return xs z0-  where f' x k z = f z x >>= k+foldlM f z0 xs = foldr c return xs z0+  -- See Note [List fusion and continuations in 'c']+  where c x k z = f z x >>= k+        {-# INLINE c #-}  -- | Map each element of a structure to an action, evaluate these -- actions from left to right, and ignore the results. For a version -- that doesn't ignore the results see 'Data.Traversable.traverse'. traverse_ :: (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()-traverse_ f = foldr ((*>) . f) (pure ())+traverse_ f = foldr c (pure ())+  -- See Note [List fusion and continuations in 'c']+  where c x k = f x *> k+        {-# INLINE c #-}  -- | 'for_' is 'traverse_' with its arguments flipped. For a version -- that doesn't ignore the results see 'Data.Traversable.for'.@@ -547,7 +578,10 @@ -- As of base 4.8.0.0, 'mapM_' is just 'traverse_', specialized to -- 'Monad'. mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()-mapM_ f= foldr ((>>) . f) (return ())+mapM_ f = foldr c (return ())+  -- See Note [List fusion and continuations in 'c']+  where c x k = f x >> k+        {-# INLINE c #-}  -- | 'forM_' is 'mapM_' with its arguments flipped. For a version that -- doesn't ignore the results see 'Data.Traversable.forM'.@@ -561,7 +595,10 @@ -- ignore the results. For a version that doesn't ignore the results -- see 'Data.Traversable.sequenceA'. sequenceA_ :: (Foldable t, Applicative f) => t (f a) -> f ()-sequenceA_ = foldr (*>) (pure ())+sequenceA_ = foldr c (pure ())+  -- See Note [List fusion and continuations in 'c']+  where c m k = m *> k+        {-# INLINE c #-}  -- | Evaluate each monadic action in the structure from left to right, -- and ignore the results. For a version that doesn't ignore the@@ -570,11 +607,14 @@ -- As of base 4.8.0.0, 'sequence_' is just 'sequenceA_', specialized -- to 'Monad'. sequence_ :: (Foldable t, Monad m) => t (m a) -> m ()-sequence_ = foldr (>>) (return ())+sequence_ = foldr c (return ())+  -- See Note [List fusion and continuations in 'c']+  where c m k = m >> k+        {-# INLINE c #-}  -- | The sum of a collection of actions, generalizing 'concat'. ----- asum [Just "Hello", Nothing, Just "World"]+-- >>> asum [Just "Hello", Nothing, Just "World"] -- Just "Hello" asum :: (Foldable t, Alternative f) => t (f a) -> f a {-# INLINE asum #-}@@ -648,6 +688,84 @@ -- 'Nothing' if there is no such element. find :: Foldable t => (a -> Bool) -> t a -> Maybe a find p = getFirst . foldMap (\ x -> First (if p x then Just x else Nothing))++{-+Note [List fusion and continuations in 'c']+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Suppose we define+  mapM_ f = foldr ((>>) . f) (return ())+(this is the way it used to be).++Now suppose we want to optimise the call++  mapM_ <big> (build g)+    where+  g c n = ...(c x1 y1)...(c x2 y2)....n...++GHC used to proceed like this:++  mapM_ <big> (build g)++  = { Definition of mapM_ }+    foldr ((>>) . <big>) (return ()) (build g)++  = { foldr/build rule }+    g ((>>) . <big>) (return ())++  = { Inline g }+    let c = (>>) . <big>+        n = return ()+    in ...(c x1 y1)...(c x2 y2)....n...++The trouble is that `c`, being big, will not be inlined.  And that can+be absolutely terrible for performance, as we saw in Trac #8763.++It's much better to define++  mapM_ f = foldr c (return ())+    where+      c x k = f x >> k+      {-# INLINE c #-}++Now we get+  mapM_ <big> (build g)++  = { inline mapM_ }+    foldr c (return ()) (build g)+      where c x k = f x >> k+            {-# INLINE c #-}+            f = <big>++Notice that `f` does not inline into the RHS of `c`,+because the INLINE pragma stops it; see+Note [Simplifying inside stable unfoldings] in SimplUtils.+Continuing:++  = { foldr/build rule }+    g c (return ())+      where ...+         c x k = f x >> k+         {-# INLINE c #-}+            f = <big>++  = { inline g }+    ...(c x1 y1)...(c x2 y2)....n...+      where c x k = f x >> k+            {-# INLINE c #-}+            f = <big>+            n = return ()++      Now, crucially, `c` does inline++  = { inline c }+    ...(f x1 >> y1)...(f x2 >> y2)....n...+      where f = <big>+            n = return ()++And all is well!  The key thing is that the fragment+`(f x1 >> y1)` is inlined into the body of the builder+`g`.+-}  {- Note [maximumBy/minimumBy space usage]
Data/Function.hs view
@@ -45,16 +45,18 @@ -- 120 -- -- Instead of making a recursive call, we introduce a dummy parameter @rec@;--- when used within 'fix', this parameter then refers to 'fix'' argument, hence+-- when used within 'fix', this parameter then refers to 'fix' argument, hence -- the recursion is reintroduced. fix :: (a -> a) -> a fix f = let x = f x in x --- | @'on' b u x y@ runs the binary function `b` /on/ the results of applying unary function `u` to two arguments `x` and `y`. From the opposite perspective, it transforms two inputs and combines the outputs.+-- | @'on' b u x y@ runs the binary function @b@ /on/ the results of applying+-- unary function @u@ to two arguments @x@ and @y@. From the opposite+-- perspective, it transforms two inputs and combines the outputs. -- -- @((+) \``on`\` f) x y = f x + f y@ ----- Typical usage: @'Data.List.sortBy' ('compare' \`on\` 'fst')@.+-- Typical usage: @'Data.List.sortBy' ('Prelude.compare' \`on\` 'Prelude.fst')@. -- -- Algebraic properties: --
Data/Functor.hs view
@@ -11,8 +11,31 @@ -- Stability   :  provisional -- Portability :  portable ----- Functors: uniform action over a parameterized type, generalizing the--- 'Data.List.map' function on lists.+--+-- A type @f@ is a Functor if it provides a function @fmap@ which, given any types @a@ and @b@,+-- lets you apply any function of type @(a -> b)@ to turn an @f a@ into an @f b@, preserving the+-- structure of @f@.+--+-- ==== __Examples__+--+--  >>> fmap show (Just 1)  --  (a   -> b)      -> f a       -> f b+--  Just "1"                --  (Int -> String) -> Maybe Int -> Maybe String+--+--  >>> fmap show Nothing   --  (a   -> b)      -> f a       -> f b+--  Nothing                 --  (Int -> String) -> Maybe Int -> Maybe String+--+--  >>> fmap show [1,2,3]   --  (a   -> b)      -> f a       -> f b+--  ["1", "2", "3"]         --  (Int -> String) -> [Int]     -> [String]+--+--  >>> fmap show []        --  (a   -> b)      -> f a       -> f b+--  []                      --  (Int -> String) -> [Int]     -> [String]+--+-- The 'fmap' function is also available as the infix operator '<$>':+--+--  >>> fmap show (Just 1) --  (Int -> String) -> Maybe Int -> Maybe String+--  Just "1"+--  >>> show <$> (Just 1)  --  (Int -> String) -> Maybe Int -> Maybe String+--  Just "1"  module Data.Functor     (@@ -34,26 +57,27 @@  -- | An infix synonym for 'fmap'. ----- The name of this operator is an allusion to '$'.+-- The name of this operator is an allusion to 'Prelude.$'. -- Note the similarities between their types: -- -- >  ($)  ::              (a -> b) ->   a ->   b -- > (<$>) :: Functor f => (a -> b) -> f a -> f b ----- Whereas '$' is function application, '<$>' is function+-- Whereas 'Prelude.$' is function application, '<$>' is function -- application lifted over a 'Functor'. -- -- ==== __Examples__ ----- Convert from a @'Maybe' 'Int'@ to a @'Maybe' 'String'@ using 'show':+-- Convert from a @'Data.Maybe.Maybe' 'Data.Int.Int'@ to a @'Data.Maybe.Maybe'+-- 'Data.String.String'@ using 'Prelude.show': -- -- >>> show <$> Nothing -- Nothing -- >>> show <$> Just 3 -- Just "3" ----- Convert from an @'Either' 'Int' 'Int'@ to an @'Either' 'Int'@--- 'String' using 'show':+-- Convert from an @'Data.Either.Either' 'Data.Int.Int' 'Data.Int.Int'@ to an+-- @'Data.Either.Either' 'Data.Int.Int'@ 'Data.String.String' using 'Prelude.show': -- -- >>> show <$> Left 17 -- Left 17@@ -65,7 +89,7 @@ -- >>> (*2) <$> [1,2,3] -- [2,4,6] ----- Apply 'even' to the second element of a pair:+-- Apply 'Prelude.even' to the second element of a pair: -- -- >>> even <$> (2,2) -- (2,True)@@ -106,27 +130,29 @@ -- -- ==== __Examples__ ----- Replace the contents of a @'Maybe' 'Int'@ with a constant 'String':+-- Replace the contents of a @'Data.Maybe.Maybe' 'Data.Int.Int'@ with a constant+-- 'Data.String.String': -- -- >>> Nothing $> "foo" -- Nothing -- >>> Just 90210 $> "foo" -- Just "foo" ----- Replace the contents of an @'Either' 'Int' 'Int'@ with a constant--- 'String', resulting in an @'Either' 'Int' 'String'@:+-- Replace the contents of an @'Data.Either.Either' 'Data.Int.Int' 'Data.Int.Int'@+-- with a constant 'Data.String.String', resulting in an @'Data.Either.Either'+-- 'Data.Int.Int' 'Data.String.String'@: -- -- >>> Left 8675309 $> "foo" -- Left 8675309 -- >>> Right 8675309 $> "foo" -- Right "foo" ----- Replace each element of a list with a constant 'String':+-- Replace each element of a list with a constant 'Data.String.String': -- -- >>> [1,2,3] $> "foo" -- ["foo","foo","foo"] ----- Replace the second element of a pair with a constant 'String':+-- Replace the second element of a pair with a constant 'Data.String.String': -- -- >>> (1,2) $> "foo" -- (1,"foo")@@ -139,15 +165,15 @@ -- -- ==== __Examples__ ----- Replace the contents of a @'Maybe' 'Int'@ with unit:+-- Replace the contents of a @'Data.Maybe.Maybe' 'Data.Int.Int'@ with unit: -- -- >>> void Nothing -- Nothing -- >>> void (Just 3) -- Just () ----- Replace the contents of an @'Either' 'Int' 'Int'@ with unit,--- resulting in an @'Either' 'Int' '()'@:+-- Replace the contents of an @'Data.Either.Either' 'Data.Int.Int' 'Data.Int.Int'@+-- with unit, resulting in an @'Data.Either.Either' 'Data.Int.Int' '()'@: -- -- >>> void (Left 8675309) -- Left 8675309
Data/Functor/Classes.hs view
@@ -69,7 +69,6 @@ import Data.Functor.Identity (Identity(Identity)) import Data.Proxy (Proxy(Proxy)) import Data.List.NonEmpty (NonEmpty(..))-import Data.Monoid (mappend) import Data.Ord (Down(Down))  import GHC.Read (expectP, list, paren)@@ -752,7 +751,7 @@ -- and then parses its argument using 'readsPrec'. -- -- @since 4.9.0.0-{-# DEPRECATED readsUnary "Use readsUnaryWith to define liftReadsPrec" #-}+{-# DEPRECATED readsUnary "Use 'readsUnaryWith' to define 'liftReadsPrec'" #-} readsUnary :: (Read a) => String -> (a -> t) -> String -> ReadS t readsUnary name cons kw s =     [(cons x,t) | kw == name, (x,t) <- readsPrec 11 s]@@ -761,7 +760,7 @@ -- and then parses its argument using 'readsPrec1'. -- -- @since 4.9.0.0-{-# DEPRECATED readsUnary1 "Use readsUnaryWith to define liftReadsPrec" #-}+{-# DEPRECATED readsUnary1 "Use 'readsUnaryWith' to define 'liftReadsPrec'" #-} readsUnary1 :: (Read1 f, Read a) => String -> (f a -> t) -> String -> ReadS t readsUnary1 name cons kw s =     [(cons x,t) | kw == name, (x,t) <- readsPrec1 11 s]@@ -770,7 +769,8 @@ -- and then parses its arguments using 'readsPrec1'. -- -- @since 4.9.0.0-{-# DEPRECATED readsBinary1 "Use readsBinaryWith to define liftReadsPrec" #-}+{-# DEPRECATED readsBinary1+      "Use 'readsBinaryWith' to define 'liftReadsPrec'" #-} readsBinary1 :: (Read1 f, Read1 g, Read a) =>     String -> (f a -> g a -> t) -> String -> ReadS t readsBinary1 name cons kw s =@@ -781,7 +781,7 @@ -- constructor with name @n@ and argument @x@, in precedence context @d@. -- -- @since 4.9.0.0-{-# DEPRECATED showsUnary "Use showsUnaryWith to define liftShowsPrec" #-}+{-# DEPRECATED showsUnary "Use 'showsUnaryWith' to define 'liftShowsPrec'" #-} showsUnary :: (Show a) => String -> Int -> a -> ShowS showsUnary name d x = showParen (d > 10) $     showString name . showChar ' ' . showsPrec 11 x@@ -790,7 +790,7 @@ -- constructor with name @n@ and argument @x@, in precedence context @d@. -- -- @since 4.9.0.0-{-# DEPRECATED showsUnary1 "Use showsUnaryWith to define liftShowsPrec" #-}+{-# DEPRECATED showsUnary1 "Use 'showsUnaryWith' to define 'liftShowsPrec'" #-} showsUnary1 :: (Show1 f, Show a) => String -> Int -> f a -> ShowS showsUnary1 name d x = showParen (d > 10) $     showString name . showChar ' ' . showsPrec1 11 x@@ -800,7 +800,8 @@ -- context @d@. -- -- @since 4.9.0.0-{-# DEPRECATED showsBinary1 "Use showsBinaryWith to define liftShowsPrec" #-}+{-# DEPRECATED showsBinary1+      "Use 'showsBinaryWith' to define 'liftShowsPrec'" #-} showsBinary1 :: (Show1 f, Show1 g, Show a) =>     String -> Int -> f a -> g a -> ShowS showsBinary1 name d x y = showParen (d > 10) $
Data/Functor/Compose.hs view
@@ -27,8 +27,6 @@ import Control.Applicative import Data.Coerce (coerce) import Data.Data (Data)-import Data.Foldable (Foldable(foldMap))-import Data.Traversable (Traversable(traverse)) import GHC.Generics (Generic, Generic1) import Text.Read (Read(..), readListDefault, readListPrecDefault) 
Data/Functor/Const.hs view
@@ -59,7 +59,7 @@              )  -- | This instance would be equivalent to the derived instances of the--- 'Const' newtype if the 'runConst' field were removed+-- 'Const' newtype if the 'getConst' field were removed -- -- @since 4.8.0.0 instance Read a => Read (Const a b) where@@ -67,7 +67,7 @@         $ \r -> [(Const x,t) | ("Const", s) <- lex r, (x, t) <- readsPrec 11 s]  -- | This instance would be equivalent to the derived instances of the--- 'Const' newtype if the 'runConst' field were removed+-- 'Const' newtype if the 'getConst' field were removed -- -- @since 4.8.0.0 instance Show a => Show (Const a b) where
Data/Functor/Contravariant.hs view
@@ -54,7 +54,6 @@ import Data.Functor.Compose  import Data.Monoid (Alt(..))-import Data.Semigroup (Semigroup(..)) import Data.Proxy import GHC.Generics @@ -87,8 +86,8 @@ -- -- Any instance should be subject to the following laws: ----- > contramap id = id--- > contramap f . contramap g = contramap (g . f)+-- [Identity]    @'contramap' 'id' = 'id'@+-- [Composition] @'contramap' (g . f) = 'contramap' f . 'contramap' g@ -- -- Note, that the second law follows from the free theorem of the type of -- 'contramap' and the first law, so you need only check that the former@@ -103,7 +102,7 @@   (>$) :: b -> f b -> f a   (>$) = contramap . const --- | If 'f' is both 'Functor' and 'Contravariant' then by the time you factor+-- | If @f@ is both 'Functor' and 'Contravariant' then by the time you factor -- in the laws of each of those classes, it can't actually use its argument in -- any meaningful capacity. --@@ -206,22 +205,11 @@ -- -- Equivalence relations are expected to satisfy three laws: ----- __Reflexivity__:------ @--- 'getEquivalence' f a a = True--- @------ __Symmetry__:------ @--- 'getEquivalence' f a b = 'getEquivalence' f b a--- @------ __Transitivity__:------ If @'getEquivalence' f a b@ and @'getEquivalence' f b c@ are both 'True'--- then so is @'getEquivalence' f a c@.+-- [Reflexivity]:  @'getEquivalence' f a a = True@+-- [Symmetry]:     @'getEquivalence' f a b = 'getEquivalence' f b a@+-- [Transitivity]:+--    If @'getEquivalence' f a b@ and @'getEquivalence' f b c@ are both 'True'+--    then so is @'getEquivalence' f a c@. -- -- The types alone do not enforce these laws, so you'll have to check them -- yourself.
Data/Functor/Product.hs view
@@ -26,10 +26,7 @@ import Control.Monad.Fix (MonadFix(..)) import Control.Monad.Zip (MonadZip(mzipWith)) import Data.Data (Data)-import Data.Foldable (Foldable(foldMap)) import Data.Functor.Classes-import Data.Monoid (mappend)-import Data.Traversable (Traversable(traverse)) import GHC.Generics (Generic, Generic1) import Text.Read (Read(..), readListDefault, readListPrecDefault) 
Data/Functor/Sum.hs view
@@ -23,9 +23,7 @@  import Control.Applicative ((<|>)) import Data.Data (Data)-import Data.Foldable (Foldable(foldMap)) import Data.Functor.Classes-import Data.Traversable (Traversable(traverse)) import GHC.Generics (Generic, Generic1) import Text.Read (Read(..), readListDefault, readListPrecDefault) 
Data/Functor/Utils.hs view
@@ -48,7 +48,7 @@ instance Ord a => Monoid (Min a) where     mempty = Min Nothing --- left-to-right state transformer+-- left-to-right state-transforming monad newtype StateL s a = StateL { runStateL :: s -> (s, a) }  -- | @since 4.0@@ -67,7 +67,7 @@             (s'', y) = ky s'         in (s'', f x y) --- right-to-left state transformer+-- right-to-left state-transforming monad newtype StateR s a = StateR { runStateR :: s -> (s, a) }  -- | @since 4.0
Data/IORef.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples #-}+{-# LANGUAGE BangPatterns #-}  ----------------------------------------------------------------------------- -- |@@ -36,8 +37,7 @@  import GHC.Base import GHC.STRef-import GHC.IORef hiding (atomicModifyIORef)-import qualified GHC.IORef+import GHC.IORef import GHC.Weak  -- |Make a 'Weak' pointer to an 'IORef', using the second argument as a finalizer@@ -91,18 +91,9 @@ -- Use 'atomicModifyIORef'' or 'atomicWriteIORef' to avoid this problem. -- atomicModifyIORef :: IORef a -> (a -> (a,b)) -> IO b-atomicModifyIORef = GHC.IORef.atomicModifyIORef---- | Strict version of 'atomicModifyIORef'.  This forces both the value stored--- in the 'IORef' as well as the value returned.------ @since 4.6.0.0-atomicModifyIORef' :: IORef a -> (a -> (a,b)) -> IO b-atomicModifyIORef' ref f = do-    b <- atomicModifyIORef ref $ \a ->-            case f a of-                v@(a',_) -> a' `seq` v-    b `seq` return 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.@@ -110,8 +101,8 @@ -- @since 4.6.0.0 atomicWriteIORef :: IORef a -> a -> IO () atomicWriteIORef ref a = do-    x <- atomicModifyIORef ref (\_ -> (a, ()))-    x `seq` return ()+  _ <- atomicSwapIORef ref a+  pure ()  {- $memmodel @@ -120,19 +111,23 @@   processor architecture.  For example, on x86, loads can move ahead   of stores, so in the following example: ->  maybePrint :: IORef Bool -> IORef Bool -> IO ()->  maybePrint myRef yourRef = do->    writeIORef myRef True->    yourVal <- readIORef yourRef->    unless yourVal $ putStrLn "critical section"->->  main :: IO ()->  main = do->    r1 <- newIORef False->    r2 <- newIORef False->    forkIO $ maybePrint r1 r2->    forkIO $ maybePrint r2 r1->    threadDelay 1000000+  > import Data.IORef+  > import Control.Monad (unless)+  > import Control.Concurrent (forkIO, threadDelay)+  >+  > maybePrint :: IORef Bool -> IORef Bool -> IO ()+  > maybePrint myRef yourRef = do+  >   writeIORef myRef True+  >   yourVal <- readIORef yourRef+  >   unless yourVal $ putStrLn "critical section"+  >+  > main :: IO ()+  > main = do+  >   r1 <- newIORef False+  >   r2 <- newIORef False+  >   forkIO $ maybePrint r1 r2+  >   forkIO $ maybePrint r2 r1+  >   threadDelay 1000000    it is possible that the string @"critical section"@ is printed   twice, even though there is no interleaving of the operations of the
Data/List.hs view
@@ -178,8 +178,8 @@    -- counterpart whose name is suffixed with \`@By@\'.    --    -- It is often convenient to use these functions together with-   -- 'Data.Function.on', for instance @'sortBy' ('compare'-   -- \`on\` 'fst')@.+   -- 'Data.Function.on', for instance @'sortBy' ('Prelude.compare'+   -- ``Data.Function.on`` 'Prelude.fst')@.     -- *** User-supplied equality (replacing an @Eq@ context)    -- | The predicate is assumed to define an equivalence.
Data/List/NonEmpty.hs view
@@ -380,7 +380,7 @@ groupAllWith1 :: (Ord b) => (a -> b) -> NonEmpty a -> NonEmpty (NonEmpty a) groupAllWith1 f = groupWith1 f . sortWith f --- | The 'isPrefix' function returns @True@ if the first argument is+-- | The 'isPrefixOf' function returns 'True' if the first argument is -- a prefix of the second. isPrefixOf :: Eq a => [a] -> NonEmpty a -> Bool isPrefixOf [] _ = True
Data/Maybe.hs view
@@ -32,6 +32,7 @@    ) where  import GHC.Base+import GHC.Stack.Types ( HasCallStack )  -- $setup -- Allow the use of some Prelude functions in doctests.@@ -55,7 +56,7 @@ -- >>> maybe False odd Nothing -- False ----- Read an integer from a string using 'readMaybe'. If we succeed,+-- Read an integer from a string using 'Text.Read.readMaybe'. If we succeed, -- return twice the integer; that is, apply @(*2)@ to it. If instead -- we fail to parse an integer, return @0@ by default: --@@ -65,7 +66,7 @@ -- >>> maybe 0 (*2) (readMaybe "") -- 0 ----- Apply 'show' to a @Maybe Int@. If we have @Just n@, we want to show+-- Apply 'Prelude.show' to a @Maybe Int@. If we have @Just n@, we want to show -- the underlying 'Int' @n@. But if we have 'Nothing', we return the -- empty string instead of (for example) \"Nothing\": --@@ -143,8 +144,8 @@ -- >>> 2 * (fromJust Nothing) -- *** Exception: Maybe.fromJust: Nothing ---fromJust          :: Maybe a -> a-fromJust Nothing  = errorWithoutStackTrace "Maybe.fromJust: Nothing" -- yuck+fromJust          :: HasCallStack => Maybe a -> a+fromJust Nothing  = error "Maybe.fromJust: Nothing" -- yuck fromJust (Just x) = x  -- | The 'fromMaybe' function takes a default value and and 'Maybe'@@ -161,7 +162,7 @@ -- >>> fromMaybe "" Nothing -- "" ----- Read an integer from a string using 'readMaybe'. If we fail to+-- Read an integer from a string using 'Text.Read.readMaybe'. If we fail to -- parse an integer, we want to return @0@ by default: -- -- >>> import Text.Read ( readMaybe )@@ -174,7 +175,7 @@ fromMaybe d x = case x of {Nothing -> d;Just v  -> v}  -- | The 'maybeToList' function returns an empty list when given--- 'Nothing' or a singleton list when not given 'Nothing'.+-- 'Nothing' or a singleton list when given 'Just'. -- -- ==== __Examples__ --
Data/Monoid.hs view
@@ -16,9 +16,44 @@ -- Stability   :  experimental -- Portability :  portable ----- A class for monoids (types with an associative binary operation that--- has an identity) with various general-purpose instances.+-- A type @a@ is a 'Monoid' if it provides an associative function ('<>')+-- that lets you combine any two values of type @a@ into one, and a neutral+-- element (`mempty`) such that --+-- > a <> mempty == mempty <> a == a+--+-- A 'Monoid' is a 'Semigroup' with the added requirement of a neutral element.+-- Thus any 'Monoid' is a 'Semigroup', but not the other way around.+--+-- ==== __Examples__+--+-- The 'Sum' monoid is defined by the numerical addition operator and `0` as neutral element:+--+-- >>> mempty :: Sum Int+-- Sum 0+-- >>> Sum 1 <> Sum 2 <> Sum 3 <> Sum 4 :: Sum Int+-- Sum {getSum = 10}+--+-- We can combine multiple values in a list into a single value using the `mconcat` function.+-- Note that we have to specify the type here since 'Int' is a monoid under several different+-- operations:+--+-- >>> mconcat [1,2,3,4] :: Sum Int+-- Sum {getSum = 10}+-- >>> mconcat [] :: Sum Int+-- Sum {getSum = 0}+--+-- Another valid monoid instance of 'Int' is 'Product' It is defined by multiplication+-- and `1` as neutral element:+--+-- >>> Product 1 <> Product 2 <> Product 3 <> Product 4 :: Product Int+-- Product {getProduct = 24}+-- >>> mconcat [1,2,3,4] :: Product Int+-- Product {getProduct = 24}+-- >>> mconcat [] :: Product Int+-- Product {getProduct = 1}+--+-- -----------------------------------------------------------------------------  module Data.Monoid (@@ -56,7 +91,7 @@ import Data.Semigroup.Internal  -- $MaybeExamples--- To implement @find@ or @findLast@ on any 'Foldable':+-- To implement @find@ or @findLast@ on any 'Data.Foldable.Foldable': -- -- @ -- findLast :: Foldable t => (a -> Bool) -> t a -> Maybe a@@ -65,20 +100,20 @@ --                                            else Last Nothing) -- @ ----- Much of Data.Map's interface can be implemented with--- Data.Map.alter. Some of the rest can be implemented with a new--- @alterA@ function and either 'First' or 'Last':+-- Much of 'Data.Map.Lazy.Map's interface can be implemented with+-- 'Data.Map.Lazy.alter'. Some of the rest can be implemented with a new+-- 'Data.Map.Lazy.alterF' function and either 'First' or 'Last': ----- > alterA :: (Applicative f, Ord k) =>+-- > alterF :: (Functor f, Ord k) => -- >           (Maybe a -> f (Maybe a)) -> k -> Map k a -> f (Map k a) -- >--- > instance Monoid a => Applicative ((,) a)  -- from Control.Applicative+-- > instance Monoid a => Functor ((,) a)  -- from Data.Functor -- -- @ -- insertLookupWithKey :: Ord k => (k -> v -> v -> v) -> k -> v --                     -> Map k v -> (Maybe v, Map k v) -- insertLookupWithKey combine key value =---   Arrow.first getFirst . alterA doChange key+--   Arrow.first getFirst . 'Data.Map.Lazy.alterF' doChange key --   where --   doChange Nothing = (First Nothing, Just value) --   doChange (Just oldValue) =
Data/OldList.hs view
@@ -221,7 +221,7 @@ import GHC.List import GHC.Base -infix 5 \\ -- comment to fool cpp: https://www.haskell.org/ghc/docs/latest/html/users_guide/options-phases.html#cpp-string-gaps+infix 5 \\ -- comment to fool cpp: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/phases.html#cpp-and-string-gaps  -- ----------------------------------------------------------------------------- -- List functions@@ -241,9 +241,9 @@ dropWhileEnd :: (a -> Bool) -> [a] -> [a] dropWhileEnd p = foldr (\x xs -> if p x && null xs then [] else x : xs) [] --- | The 'stripPrefix' function drops the given prefix from a list.--- It returns 'Nothing' if the list did not start with the prefix--- given, or 'Just' the list after the prefix, if it does.+-- | /O(min(m,n))/. The 'stripPrefix' function drops the given prefix from a+-- list. It returns 'Nothing' if the list did not start with the prefix given,+-- or 'Just' the list after the prefix, if it does. -- -- >>> stripPrefix "foo" "foobar" -- Just "bar"@@ -310,14 +310,16 @@ findIndices p xs = [ i | (x,i) <- zip xs [0..], p x] #else -- Efficient definition, adapted from Data.Sequence-{-# INLINE findIndices #-}+-- (Note that making this INLINABLE instead of INLINE allows+-- 'findIndex' to fuse, fixing #15426.)+{-# INLINABLE findIndices #-} findIndices p ls = build $ \c n ->   let go x r k | p x       = I# k `c` r (k +# 1#)                | otherwise = r (k +# 1#)   in foldr go (\_ -> n) ls 0# #endif  /* USE_REPORT_PRELUDE */ --- | The 'isPrefixOf' function takes two lists and returns 'True'+-- | /O(min(m,n))/. The 'isPrefixOf' function takes two lists and returns 'True' -- iff the first list is a prefix of the second. -- -- >>> "Hello" `isPrefixOf` "Hello World!"@@ -429,8 +431,8 @@ #endif  --- | 'delete' @x@ removes the first occurrence of @x@ from its list argument.--- For example,+-- | /O(n)/. 'delete' @x@ removes the first occurrence of @x@ from its list+-- argument. For example, -- -- >>> delete 'a' "banana" -- "bnana"@@ -440,7 +442,7 @@ delete                  :: (Eq a) => a -> [a] -> [a] delete                  =  deleteBy (==) --- | The 'deleteBy' function behaves like 'delete', but takes a+-- | /O(n)/. The 'deleteBy' function behaves like 'delete', but takes a -- user-supplied equality predicate. -- -- >>> deleteBy (<=) 4 [1..10]@@ -507,7 +509,7 @@ intersectBy _  _  []    =  [] intersectBy eq xs ys    =  [x | x <- xs, any (eq x) ys] --- | The 'intersperse' function takes an element and a list and+-- | /O(n)/. The 'intersperse' function takes an element and a list and -- \`intersperses\' that element between the elements of the list. -- For example, --@@ -616,19 +618,18 @@                            where (s'',y ) = f s' x                                  (s', ys) = mapAccumR f s xs --- | The 'insert' function takes an element and a list and inserts the--- element into the list at the first position where it is less--- than or equal to the next element.  In particular, if the list--- is sorted before the call, the result will also be sorted.--- It is a special case of 'insertBy', which allows the programmer to--- supply their own comparison function.+-- | /O(n)/. The 'insert' function takes an element and a list and inserts the+-- element into the list at the first position where it is less than or equal to+-- the next element. In particular, if the list is sorted before the call, the+-- result will also be sorted. It is a special case of 'insertBy', which allows+-- the programmer to supply their own comparison function. -- -- >>> insert 4 [1,2,3,5,6,7] -- [1,2,3,4,5,6,7] insert :: Ord a => a -> [a] -> [a] insert e ls = insertBy (compare) e ls --- | The non-overloaded version of 'insert'.+-- | /O(n)/. The non-overloaded version of 'insert'. insertBy :: (a -> a -> Ordering) -> a -> [a] -> [a] insertBy _   x [] = [x] insertBy cmp x ys@(y:ys')@@ -668,9 +669,14 @@                                        GT -> y                                        _  -> x --- | The 'genericLength' function is an overloaded version of 'length'.  In--- particular, instead of returning an 'Int', it returns any type which is--- an instance of 'Num'.  It is, however, less efficient than 'length'.+-- | /O(n)/. The 'genericLength' function is an overloaded version of 'length'.+-- In particular, instead of returning an 'Int', it returns any type which is an+-- instance of 'Num'. It is, however, less efficient than 'length'.+--+-- >>> genericLength [1, 2, 3] :: Int+-- 3+-- >>> genericLength [1, 2, 3] :: Float+-- 3.0 genericLength           :: (Num i) => [a] -> i {-# NOINLINE [1] genericLength #-} genericLength []        =  0@@ -726,22 +732,34 @@  -- | The 'zip4' function takes four lists and returns a list of -- quadruples, analogous to 'zip'.+-- It is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list.+{-# INLINE zip4 #-} zip4                    :: [a] -> [b] -> [c] -> [d] -> [(a,b,c,d)] zip4                    =  zipWith4 (,,,)  -- | The 'zip5' function takes five lists and returns a list of -- five-tuples, analogous to 'zip'.+-- It is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list.+{-# INLINE zip5 #-} zip5                    :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a,b,c,d,e)] zip5                    =  zipWith5 (,,,,)  -- | The 'zip6' function takes six lists and returns a list of six-tuples, -- analogous to 'zip'.+-- It is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list.+{-# INLINE zip6 #-} zip6                    :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] ->                               [(a,b,c,d,e,f)] zip6                    =  zipWith6 (,,,,,)  -- | The 'zip7' function takes seven lists and returns a list of -- seven-tuples, analogous to 'zip'.+-- It is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list.+{-# INLINE zip7 #-} zip7                    :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] ->                               [g] -> [(a,b,c,d,e,f,g)] zip7                    =  zipWith7 (,,,,,,)@@ -749,6 +767,9 @@ -- | The 'zipWith4' function takes a function which combines four -- elements, as well as four lists and returns a list of their point-wise -- combination, analogous to 'zipWith'.+-- It is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list.+{-# NOINLINE [1] zipWith4 #-} zipWith4                :: (a->b->c->d->e) -> [a]->[b]->[c]->[d]->[e] zipWith4 z (a:as) (b:bs) (c:cs) (d:ds)                         =  z a b c d : zipWith4 z as bs cs ds@@ -757,6 +778,9 @@ -- | The 'zipWith5' function takes a function which combines five -- elements, as well as five lists and returns a list of their point-wise -- combination, analogous to 'zipWith'.+-- It is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list.+{-# NOINLINE [1] zipWith5 #-} zipWith5                :: (a->b->c->d->e->f) ->                            [a]->[b]->[c]->[d]->[e]->[f] zipWith5 z (a:as) (b:bs) (c:cs) (d:ds) (e:es)@@ -766,6 +790,9 @@ -- | The 'zipWith6' function takes a function which combines six -- elements, as well as six lists and returns a list of their point-wise -- combination, analogous to 'zipWith'.+-- It is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list.+{-# NOINLINE [1] zipWith6 #-} zipWith6                :: (a->b->c->d->e->f->g) ->                            [a]->[b]->[c]->[d]->[e]->[f]->[g] zipWith6 z (a:as) (b:bs) (c:cs) (d:ds) (e:es) (f:fs)@@ -775,12 +802,133 @@ -- | The 'zipWith7' function takes a function which combines seven -- elements, as well as seven lists and returns a list of their point-wise -- combination, analogous to 'zipWith'.+-- It is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list.+{-# NOINLINE [1] zipWith7 #-} zipWith7                :: (a->b->c->d->e->f->g->h) ->                            [a]->[b]->[c]->[d]->[e]->[f]->[g]->[h] zipWith7 z (a:as) (b:bs) (c:cs) (d:ds) (e:es) (f:fs) (g:gs)                    =  z a b c d e f g : zipWith7 z as bs cs ds es fs gs zipWith7 _ _ _ _ _ _ _ _ = [] +{-+Functions and rules for fusion of zipWith4, zipWith5, zipWith6 and zipWith7.+The principle is the same as for zip and zipWith in GHC.List:+Turn zipWithX into a version in which the first argument and the result+can be fused. Turn it back into the original function if no fusion happens.+-}++{-# INLINE [0] zipWith4FB #-} -- See Note [Inline FB functions]+zipWith4FB :: (e->xs->xs') -> (a->b->c->d->e) ->+              a->b->c->d->xs->xs'+zipWith4FB cons func = \a b c d r -> (func a b c d) `cons` r++{-# INLINE [0] zipWith5FB #-} -- See Note [Inline FB functions]+zipWith5FB :: (f->xs->xs') -> (a->b->c->d->e->f) ->+              a->b->c->d->e->xs->xs'+zipWith5FB cons func = \a b c d e r -> (func a b c d e) `cons` r++{-# INLINE [0] zipWith6FB #-} -- See Note [Inline FB functions]+zipWith6FB :: (g->xs->xs') -> (a->b->c->d->e->f->g) ->+              a->b->c->d->e->f->xs->xs'+zipWith6FB cons func = \a b c d e f r -> (func a b c d e f) `cons` r++{-# INLINE [0] zipWith7FB #-} -- See Note [Inline FB functions]+zipWith7FB :: (h->xs->xs') -> (a->b->c->d->e->f->g->h) ->+              a->b->c->d->e->f->g->xs->xs'+zipWith7FB cons func = \a b c d e f g r -> (func a b c d e f g) `cons` r++{-# INLINE [0] foldr4 #-}+foldr4 :: (a->b->c->d->e->e) ->+          e->[a]->[b]->[c]->[d]->e+foldr4 k z = go+  where+    go (a:as) (b:bs) (c:cs) (d:ds) = k a b c d (go as bs cs ds)+    go _      _      _      _      = z++{-# INLINE [0] foldr5 #-}+foldr5 :: (a->b->c->d->e->f->f) ->+          f->[a]->[b]->[c]->[d]->[e]->f+foldr5 k z = go+  where+    go (a:as) (b:bs) (c:cs) (d:ds) (e:es) = k a b c d e (go as bs cs ds es)+    go _      _      _      _      _      = z++{-# INLINE [0] foldr6 #-}+foldr6 :: (a->b->c->d->e->f->g->g) ->+          g->[a]->[b]->[c]->[d]->[e]->[f]->g+foldr6 k z = go+  where+    go (a:as) (b:bs) (c:cs) (d:ds) (e:es) (f:fs) = k a b c d e f (+        go as bs cs ds es fs)+    go _      _      _      _      _      _      = z++{-# INLINE [0] foldr7 #-}+foldr7 :: (a->b->c->d->e->f->g->h->h) ->+          h->[a]->[b]->[c]->[d]->[e]->[f]->[g]->h+foldr7 k z = go+  where+    go (a:as) (b:bs) (c:cs) (d:ds) (e:es) (f:fs) (g:gs) = k a b c d e f g (+        go as bs cs ds es fs gs)+    go _      _      _      _      _      _      _      = z++foldr4_left :: (a->b->c->d->e->f)->+               f->a->([b]->[c]->[d]->e)->+               [b]->[c]->[d]->f+foldr4_left k _z a r (b:bs) (c:cs) (d:ds) = k a b c d (r bs cs ds)+foldr4_left _  z _ _ _      _      _      = z++foldr5_left :: (a->b->c->d->e->f->g)->+               g->a->([b]->[c]->[d]->[e]->f)->+               [b]->[c]->[d]->[e]->g+foldr5_left k _z a r (b:bs) (c:cs) (d:ds) (e:es) = k a b c d e (r bs cs ds es)+foldr5_left _  z _ _ _      _      _      _      = z++foldr6_left :: (a->b->c->d->e->f->g->h)->+               h->a->([b]->[c]->[d]->[e]->[f]->g)->+               [b]->[c]->[d]->[e]->[f]->h+foldr6_left k _z a r (b:bs) (c:cs) (d:ds) (e:es) (f:fs) =+    k a b c d e f (r bs cs ds es fs)+foldr6_left _  z _ _ _      _      _      _      _      = z++foldr7_left :: (a->b->c->d->e->f->g->h->i)->+               i->a->([b]->[c]->[d]->[e]->[f]->[g]->h)->+               [b]->[c]->[d]->[e]->[f]->[g]->i+foldr7_left k _z a r (b:bs) (c:cs) (d:ds) (e:es) (f:fs) (g:gs) =+    k a b c d e f g (r bs cs ds es fs gs)+foldr7_left _  z _ _ _      _      _      _      _      _      = z++{-# RULES++"foldr4/left"   forall k z (g::forall b.(a->b->b)->b->b).+                  foldr4 k z (build g) = g (foldr4_left k z) (\_ _ _ -> z)+"foldr5/left"   forall k z (g::forall b.(a->b->b)->b->b).+                  foldr5 k z (build g) = g (foldr5_left k z) (\_ _ _ _ -> z)+"foldr6/left"   forall k z (g::forall b.(a->b->b)->b->b).+                  foldr6 k z (build g) = g (foldr6_left k z) (\_ _ _ _ _ -> z)+"foldr7/left"   forall k z (g::forall b.(a->b->b)->b->b).+                  foldr7 k z (build g) = g (foldr7_left k z) (\_ _ _ _ _ _ -> z)++"zipWith4" [~1] forall f as bs cs ds.+                  zipWith4 f as bs cs ds = build (\c n ->+                        foldr4 (zipWith4FB c f) n as bs cs ds)+"zipWith5" [~1] forall f as bs cs ds es.+                  zipWith5 f as bs cs ds es = build (\c n ->+                        foldr5 (zipWith5FB c f) n as bs cs ds es)+"zipWith6" [~1] forall f as bs cs ds es fs.+                  zipWith6 f as bs cs ds es fs = build (\c n ->+                        foldr6 (zipWith6FB c f) n as bs cs ds es fs)+"zipWith7" [~1] forall f as bs cs ds es fs gs.+                  zipWith7 f as bs cs ds es fs gs = build (\c n ->+                        foldr7 (zipWith7FB c f) n as bs cs ds es fs gs)++"zipWith4List"  [1]  forall f.   foldr4 (zipWith4FB (:) f) [] = zipWith4 f+"zipWith5List"  [1]  forall f.   foldr5 (zipWith5FB (:) f) [] = zipWith5 f+"zipWith6List"  [1]  forall f.   foldr6 (zipWith6FB (:) f) [] = zipWith6 f+"zipWith7List"  [1]  forall f.   foldr7 (zipWith7FB (:) f) [] = zipWith7 f++ #-}+ -- | The 'unzip4' function takes a list of quadruples and returns four -- lists, analogous to 'unzip'. unzip4                  :: [(a,b,c,d)] -> ([a],[b],[c],[d])@@ -853,7 +1001,7 @@ -- if it fuses with a consumer, and it would generally lead to serious -- loss of sharing if allowed to fuse with a producer. --- | The 'tails' function returns all final segments of the argument,+-- | /O(n)/. The 'tails' function returns all final segments of the argument, -- longest first.  For example, -- -- >>> tails "abc"
Data/Proxy.hs view
@@ -38,7 +38,7 @@ -- create one). -- -- Historically, @'Proxy' :: 'Proxy' a@ is a safer alternative to the--- @'undefined :: a'@ idiom.+-- @'undefined' :: a@ idiom. -- -- >>> Proxy :: Proxy (Void, Int -> Int) -- Proxy@@ -57,7 +57,7 @@                               , Read    -- ^ @since 4.7.0.0                               ) --- | A concrete, promotable proxy type, for use at the kind level+-- | A concrete, promotable proxy type, for use at the kind level. -- There are no instances for this because it is intended at the kind level only data KProxy (t :: Type) = KProxy 
Data/STRef.hs view
@@ -42,7 +42,7 @@ -- Be warned that 'modifySTRef' does not apply the function strictly.  This -- means if the program calls 'modifySTRef' many times, but seldomly uses the -- value, thunks will pile up in memory resulting in a space leak.  This is a--- common mistake made when using an STRef as a counter.  For example, the+-- common mistake made when using an 'STRef' as a counter.  For example, the -- following will leak memory and may produce a stack overflow: -- -- >>> import Control.Monad (replicateM_)
Data/Semigroup.hs view
@@ -19,15 +19,52 @@ -- Stability   :  provisional -- Portability :  portable ----- In mathematics, a semigroup is an algebraic structure consisting of a--- set together with an associative binary operation. A semigroup--- generalizes a monoid in that there might not exist an identity--- element. It also (originally) generalized a group (a monoid with all--- inverses) to a type where every element did not have to have an inverse,--- thus the name semigroup.+-- A type @a@ is a 'Semigroup' if it provides an associative function ('<>')+-- that lets you combine any two values of type @a@ into one. Where being+-- associative means that the following must always hold: ----- The use of @(\<\>)@ in this module conflicts with an operator with the same--- name that is being exported by Data.Monoid. However, this package+-- >>> (a <> b) <> c == a <> (b <> c)+--+-- ==== __Examples__+--+-- The 'Min' 'Semigroup' instance for 'Int' is defined to always pick the smaller+-- number:+-- >>> Min 1 <> Min 2 <> Min 3 <> Min 4 :: Min Int+-- Min {getMin = 1}+--+-- If we need to combine multiple values we can use the 'sconcat' function+-- to do so. We need to ensure however that we have at least one value to+-- operate on, since otherwise our result would be undefined. It is for this+-- reason that 'sconcat' uses "Data.List.NonEmpty.NonEmpty" - a list that+-- can never be empty:+--+-- >>> (1 :| [])+-- 1 :| []               -- equivalent to [1] but guaranteed to be non-empty+-- >>> (1 :| [2, 3, 4])+-- 1 :| [2,3,4]          -- equivalent to [1,2,3,4] but guaranteed to be non-empty+--+-- Equipped with this guaranteed to be non-empty data structure, we can combine+-- values using 'sconcat' and a 'Semigroup' of our choosing. We can try the 'Min'+-- and 'Max' instances of 'Int' which pick the smallest, or largest number+-- respectively:+--+-- >>> sconcat (1 :| [2, 3, 4]) :: Min Int+-- Min {getMin = 1}+-- >>> sconcat (1 :| [2, 3, 4]) :: Max Int+-- Max {getMax = 4}+--+-- String concatenation is another example of a 'Semigroup' instance:+--+-- >>> "foo" <> "bar"+-- "foobar"+--+-- A 'Semigroup' is a generalization of a 'Monoid'. Yet unlike the 'Semigroup', the 'Monoid'+-- requires the presence of a neutral element ('mempty') in addition to the associative+-- operator. The requirement for a neutral element prevents many types from being a full Monoid,+-- like "Data.List.NonEmpty.NonEmpty".+--+-- Note that the use of @(\<\>)@ in this module conflicts with an operator with the same+-- name that is being exported by "Data.Monoid". However, this package -- re-exports (most of) the contents of Data.Monoid, so to use semigroups -- and monoids in the same package just --@@ -80,9 +117,6 @@ import           Data.Bitraversable import           Data.Coerce import           Data.Data-import           Data.Monoid         (All (..), Any (..), Dual (..), Endo (..),-                                      Product (..), Sum (..))--- import qualified Data.Monoid         as Monoid import           GHC.Generics  -- | A generalization of 'Data.List.cycle' to an arbitrary 'Semigroup'.
Data/Semigroup/Internal.hs-boot view
@@ -4,7 +4,7 @@  import {-# SOURCE #-} GHC.Real (Integral) import {-# SOURCE #-} GHC.Base (Semigroup,Monoid,Maybe)-import GHC.Integer ()   -- Note [Depend on GHC.Integer]+import GHC.Integer () -- See Note [Depend on GHC.Integer] in GHC.Base  stimesIdempotentMonoid :: (Integral b, Monoid a) => b -> a -> a 
Data/Traversable.hs view
@@ -76,27 +76,29 @@ -- -- A definition of 'traverse' must satisfy the following laws: ----- [/naturality/]+-- [Naturality] --   @t . 'traverse' f = 'traverse' (t . f)@ --   for every applicative transformation @t@ ----- [/identity/]---   @'traverse' Identity = Identity@+-- [Identity]+--   @'traverse' 'Identity' = 'Identity'@ ----- [/composition/]---   @'traverse' (Compose . 'fmap' g . f) = Compose . 'fmap' ('traverse' g) . 'traverse' f@+-- [Composition]+--   @'traverse' ('Data.Functor.Compose.Compose' . 'fmap' g . f)+--     = 'Data.Functor.Compose.Compose' . 'fmap' ('traverse' g) . 'traverse' f@ -- -- A definition of 'sequenceA' must satisfy the following laws: ----- [/naturality/]+-- [Naturality] --   @t . 'sequenceA' = 'sequenceA' . 'fmap' t@ --   for every applicative transformation @t@ ----- [/identity/]---   @'sequenceA' . 'fmap' Identity = Identity@+-- [Identity]+--   @'sequenceA' . 'fmap' 'Identity' = 'Identity'@ ----- [/composition/]---   @'sequenceA' . 'fmap' Compose = Compose . 'fmap' 'sequenceA' . 'sequenceA'@+-- [Composition]+--   @'sequenceA' . 'fmap' 'Data.Functor.Compose.Compose'+--     = 'Data.Functor.Compose.Compose' . 'fmap' 'sequenceA' . 'sequenceA'@ -- -- where an /applicative transformation/ is a function --@@ -104,30 +106,14 @@ -- -- preserving the 'Applicative' operations, i.e. -----  * @t ('pure' x) = 'pure' x@------  * @t (x '<*>' y) = t x '<*>' t y@------ and the identity functor @Identity@ and composition of functors @Compose@--- are defined as+-- @+-- t ('pure' x) = 'pure' x+-- t (f '<*>' x) = t f '<*>' t x+-- @ ----- >   newtype Identity a = Identity a--- >--- >   instance Functor Identity where--- >     fmap f (Identity x) = Identity (f x)--- >--- >   instance Applicative Identity where--- >     pure x = Identity x--- >     Identity f <*> Identity x = Identity (f x)--- >--- >   newtype Compose f g a = Compose (f (g a))--- >--- >   instance (Functor f, Functor g) => Functor (Compose f g) where--- >     fmap f (Compose x) = Compose (fmap (fmap f) x)--- >--- >   instance (Applicative f, Applicative g) => Applicative (Compose f g) where--- >     pure x = Compose (pure (pure x))--- >     Compose f <*> Compose x = Compose ((<*>) <$> f <*> x)+-- and the identity functor 'Identity' and composition functors+-- 'Data.Functor.Compose.Compose' are from "Data.Functor.Identity" and+-- "Data.Functor.Compose". -- -- (The naturality law is implied by parametricity.) --@@ -380,14 +366,14 @@ forM = flip mapM  -- |The 'mapAccumL' function behaves like a combination of 'fmap'--- and 'foldl'; it applies a function to each element of a structure,+-- and 'Data.Foldable.foldl'; it applies a function to each element of a structure, -- passing an accumulating parameter from left to right, and returning -- a final value of this accumulator together with the new structure. mapAccumL :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c) mapAccumL f s t = runStateL (traverse (StateL . flip f) t) s  -- |The 'mapAccumR' function behaves like a combination of 'fmap'--- and 'foldr'; it applies a function to each element of a structure,+-- and 'Data.Foldable.foldr'; it applies a function to each element of a structure, -- passing an accumulating parameter from right to left, and returning -- a final value of this accumulator together with the new structure. mapAccumR :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
Data/Type/Equality.hs view
@@ -23,8 +23,8 @@ -- Stability   :  experimental -- Portability :  not portable ----- Definition of propositional equality @(:~:)@. Pattern-matching on a variable--- of type @(a :~: b)@ produces a proof that @a ~ b@.+-- Definition of propositional equality @(':~:')@. Pattern-matching on a variable+-- of type @(a ':~:' b)@ produces a proof that @a '~' b@. -- -- @since 4.7.0.0 -----------------------------------------------------------------------------@@ -52,30 +52,6 @@ import GHC.Read import GHC.Base import Data.Type.Bool---- | Lifted, homogeneous equality. By lifted, we mean that it can be--- bogus (deferred type error). By homogeneous, the two types @a@--- and @b@ must have the same kind.-class a ~~ b => (a :: k) ~ (b :: k)-  -- See Note [The equality types story] in TysPrim-  -- NB: All this class does is to wrap its superclass, which is-  --     the "real", inhomogeneous equality; this is needed when-  --     we have a Given (a~b), and we want to prove things from it-  -- NB: Not exported, as (~) is magical syntax. That's also why there's-  -- no fixity.--  -- It's tempting to put functional dependencies on (~), but it's not-  -- necessary because the functional-dependency coverage check looks-  -- through superclasses, and (~#) is handled in that check.---- | @since 4.9.0.0-instance {-# INCOHERENT #-} a ~~ b => a ~ b-  -- See Note [The equality types story] in TysPrim-  -- If we have a Wanted (t1 ~ t2), we want to immediately-  -- simplify it to (t1 ~~ t2) and solve that instead-  ---  -- INCOHERENT because we want to use this instance eagerly, even when-  -- the tyvars are partially unknown.  infix 4 :~:, :~~: 
Data/Typeable/Internal.hs view
@@ -569,7 +569,9 @@ -- in the usual case that it is scrutinized immediately. We -- split eqTypeRep into a worker and wrapper because otherwise -- it's much larger than anything we'd want to inline.-{-# INLINABLE eqTypeRep #-}+--+-- However, due to #16893 it is currently unsafe to do so, hence the NOINLINE.+{-# NOINLINE eqTypeRep #-}  sameTypeRep :: forall k1 k2 (a :: k1) (b :: k2).                TypeRep a -> TypeRep b -> Bool@@ -664,8 +666,12 @@       SumRep rs   -> kindedTypeRep @_ @'SumRep                      `kApp` buildList (map runtimeRepTypeRep rs)       IntRep      -> rep @'IntRep-      WordRep     -> rep @'WordRep+      Int8Rep     -> rep @'Int8Rep+      Int16Rep    -> rep @'Int16Rep       Int64Rep    -> rep @'Int64Rep+      WordRep     -> rep @'WordRep+      Word8Rep    -> rep @'Word8Rep+      Word16Rep   -> rep @'Word16Rep       Word64Rep   -> rep @'Word64Rep       AddrRep     -> rep @'AddrRep       FloatRep    -> rep @'FloatRep@@ -773,7 +779,11 @@ showTypeable _ rep   | isListTyCon tc, [ty] <- tys =     showChar '[' . shows ty . showChar ']'-  | isTupleTyCon tc =++    -- Take care only to render saturated tuple tycon applications+    -- with tuple notation (#14341).+  | isTupleTyCon tc,+    Just _ <- TrType `eqTypeRep` typeRepKind rep =     showChar '(' . showArgs (showChar ',') tys . showChar ')'   where (tc, tys) = splitApps rep showTypeable _ (TrTyCon {trTyCon = tycon, trKindVars = []})
Debug/Trace.hs view
@@ -169,8 +169,9 @@ context, as 'traceIO' is in the 'IO' type. While the fresh bindings in the following example will force the 'traceM' expressions to be reduced every time the @do@-block is executed, @traceM "not crashed"@ would only be reduced once,-and the message would only be printed once.  If your monad is in 'MonadIO',-@liftIO . traceIO@ may be a better option.+and the message would only be printed once.  If your monad is in+'Control.Monad.IO.Class.MonadIO', @'Control.Monad.IO.Class.liftIO' . 'traceIO'@+may be a better option.  >>> :{ do
Foreign/C/Error.hs view
@@ -255,11 +255,15 @@  -- | Get the current value of @errno@ in the current thread. --+-- On GHC, the runtime will ensure that any Haskell thread will only see "its own"+-- @errno@, by saving and restoring the value when Haskell threads are scheduled+-- across OS threads. getErrno :: IO Errno  -- We must call a C function to get the value of errno in general.  On -- threaded systems, errno is hidden behind a C macro so that each OS--- thread gets its own copy.+-- thread gets its own copy (`saved_errno`, which `rts/Schedule.c` restores+-- back into the thread-local `errno` when a Haskell thread is rescheduled). getErrno = do e <- get_errno; return (Errno e) foreign import ccall unsafe "HsBase.h __hscore_get_errno" get_errno :: IO CInt 
Foreign/C/Types.hs view
@@ -37,9 +37,9 @@           -- | These types are represented as @newtype@s of           -- types in "Data.Int" and "Data.Word", and are instances of           -- 'Prelude.Eq', 'Prelude.Ord', 'Prelude.Num', 'Prelude.Read',-          -- 'Prelude.Show', 'Prelude.Enum', 'Typeable', 'Storable',-          -- 'Prelude.Bounded', 'Prelude.Real', 'Prelude.Integral' and-          -- 'Bits'.+          -- 'Prelude.Show', 'Prelude.Enum', 'Data.Typeable.Typeable',+          -- 'Storable', 'Prelude.Bounded', 'Prelude.Real', 'Prelude.Integral'+          -- and 'Bits'.           CChar(..),    CSChar(..),   CUChar(..)         , CShort(..),   CUShort(..),  CInt(..),      CUInt(..)         , CLong(..),    CULong(..)@@ -51,7 +51,8 @@           -- | These types are represented as @newtype@s of basic           -- foreign types, and are instances of           -- 'Prelude.Eq', 'Prelude.Ord', 'Prelude.Num', 'Prelude.Read',-          -- 'Prelude.Show', 'Prelude.Enum', 'Typeable' and 'Storable'.+          -- 'Prelude.Show', 'Prelude.Enum', 'Data.Typeable.Typeable' and+          -- 'Storable'.         , CClock(..),   CTime(..),    CUSeconds(..), CSUSeconds(..)          -- extracted from CTime, because we don't want this comment in@@ -66,7 +67,7 @@           -- | These types are represented as @newtype@s of           -- 'Prelude.Float' and 'Prelude.Double', and are instances of           -- 'Prelude.Eq', 'Prelude.Ord', 'Prelude.Num', 'Prelude.Read',-          -- 'Prelude.Show', 'Prelude.Enum', 'Typeable', 'Storable',+          -- 'Prelude.Show', 'Prelude.Enum', 'Data.Typeable.Typeable', 'Storable',           -- 'Prelude.Real', 'Prelude.Fractional', 'Prelude.Floating',           -- 'Prelude.RealFrac' and 'Prelude.RealFloat'. That does mean           -- that `CFloat`'s (respectively `CDouble`'s) instances of
Foreign/Concurrent.hs view
@@ -40,33 +40,34 @@ -- 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+-- 'ForeignPtr' is dropped.  There is no guarantee of promptness, and -- in fact there is no guarantee that the finalizer will eventually -- run at all. -- -- 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--- B's finalizer will never be started before A's.  If both A and B--- are unreachable, then both finalizers will start together.  See--- 'touchForeignPtr' for more on finalizer ordering.+-- (perhaps using 'Foreign.ForeignPtr.touchForeignPtr', then the only+-- guarantee is that B's finalizer will never be started before A's.  If both+-- A and B are unreachable, then both finalizers will start together.  See+-- 'Foreign.ForeignPtr.touchForeignPtr' for more on finalizer ordering. -- newForeignPtr = GHC.ForeignPtr.newConcForeignPtr  addForeignPtrFinalizer :: ForeignPtr a -> IO () -> IO ()--- ^This function adds a finalizer to the given @ForeignPtr@.  The+-- ^This function adds a finalizer to the given 'ForeignPtr'.  The -- finalizer will run /before/ all other finalizers for the same -- object which have already been registered. ----- This is a variant of @Foreign.ForeignPtr.addForeignPtrFinalizer@,--- where the finalizer is an arbitrary @IO@ action.  When it is+-- This is a variant of 'Foreign.ForeignPtr.addForeignPtrFinalizer',+-- where the finalizer is an arbitrary 'IO' action.  When it is -- invoked, the finalizer will run in a new thread. -- -- NB. Be very careful with these finalizers.  One common trap is that -- if a finalizer references another finalized value, it does not--- prevent that value from being finalized.  In particular, 'Handle's--- are finalized objects, so a finalizer should not refer to a 'Handle'--- (including @stdout@, @stdin@ or @stderr@).+-- prevent that value from being finalized.  In particular, 'System.IO.Handle's+-- are finalized objects, so a finalizer should not refer to a+-- 'System.IO.Handle' (including 'System.IO.stdout', 'System.IO.stdin', or+-- 'System.IO.stderr'). -- addForeignPtrFinalizer = GHC.ForeignPtr.addForeignPtrConcFinalizer 
Foreign/ForeignPtr/Imp.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Unsafe #-} {-# LANGUAGE NoImplicitPrelude #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
Foreign/Marshal/Array.hs view
@@ -1,12 +1,12 @@ {-# LANGUAGE Trustworthy #-}-{-# LANGUAGE NoImplicitPrelude, MagicHash #-}+{-# LANGUAGE NoImplicitPrelude, MagicHash, ScopedTypeVariables #-}  ----------------------------------------------------------------------------- -- | -- Module      :  Foreign.Marshal.Array -- Copyright   :  (c) The FFI task force 2001 -- License     :  BSD-style (see the file libraries/base/LICENSE)--- +-- -- Maintainer  :  ffi@haskell.org -- Stability   :  provisional -- Portability :  portable@@ -82,11 +82,8 @@ -- |Allocate storage for the given number of elements of a storable type -- (like 'Foreign.Marshal.Alloc.malloc', but for multiple elements). ---mallocArray :: Storable a => Int -> IO (Ptr a)-mallocArray  = doMalloc undefined-  where-    doMalloc            :: Storable a' => a' -> Int -> IO (Ptr a')-    doMalloc dummy size  = mallocBytes (size * sizeOf dummy)+mallocArray :: forall a . Storable a => Int -> IO (Ptr a)+mallocArray  size = mallocBytes (size * sizeOf (undefined :: a))  -- |Like 'mallocArray', but add an extra position to hold a special -- termination element.@@ -96,11 +93,8 @@  -- |Like 'mallocArray', but allocated memory is filled with bytes of value zero. ---callocArray :: Storable a => Int -> IO (Ptr a)-callocArray  = doCalloc undefined-  where-    doCalloc :: Storable a' => a' -> Int -> IO (Ptr a')-    doCalloc dummy size  = callocBytes (size * sizeOf dummy)+callocArray :: forall a . Storable a => Int -> IO (Ptr a)+callocArray size = callocBytes (size * sizeOf (undefined :: a))  -- |Like 'callocArray0', but allocated memory is filled with bytes of value -- zero.@@ -111,12 +105,9 @@ -- |Temporarily allocate space for the given number of elements -- (like 'Foreign.Marshal.Alloc.alloca', but for multiple elements). ---allocaArray :: Storable a => Int -> (Ptr a -> IO b) -> IO b-allocaArray  = doAlloca undefined-  where-    doAlloca            :: Storable a' => a' -> Int -> (Ptr a' -> IO b') -> IO b'-    doAlloca dummy size  = allocaBytesAligned (size * sizeOf dummy)-                                              (alignment dummy)+allocaArray :: forall a b . Storable a => Int -> (Ptr a -> IO b) -> IO b+allocaArray size = allocaBytesAligned (size * sizeOf (undefined :: a))+                                      (alignment (undefined :: a))  -- |Like 'allocaArray', but add an extra position to hold a special -- termination element.@@ -129,11 +120,8 @@  -- |Adjust the size of an array ---reallocArray :: Storable a => Ptr a -> Int -> IO (Ptr a)-reallocArray  = doRealloc undefined-  where-    doRealloc                :: Storable a' => a' -> Ptr a' -> Int -> IO (Ptr a')-    doRealloc dummy ptr size  = reallocBytes ptr (size * sizeOf dummy)+reallocArray :: forall a . Storable a => Ptr a -> Int -> IO (Ptr a)+reallocArray ptr size = reallocBytes ptr (size * sizeOf (undefined :: a))  -- |Adjust the size of an array including an extra position for the end marker. --@@ -153,7 +141,7 @@   where     f 0 acc = do e <- peekElemOff ptr 0; return (e:acc)     f n acc = do e <- peekElemOff ptr n; f (n-1) (e:acc)-  + -- |Convert an array terminated by the given end marker into a Haskell list -- peekArray0            :: (Storable a, Eq a) => a -> Ptr a -> IO [a]@@ -238,20 +226,14 @@ -- |Copy the given number of elements from the second array (source) into the -- first array (destination); the copied areas may /not/ overlap ---copyArray :: Storable a => Ptr a -> Ptr a -> Int -> IO ()-copyArray  = doCopy undefined-  where-    doCopy                     :: Storable a' => a' -> Ptr a' -> Ptr a' -> Int -> IO ()-    doCopy dummy dest src size  = copyBytes dest src (size * sizeOf dummy)+copyArray :: forall a . Storable a => Ptr a -> Ptr a -> Int -> IO ()+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 :: Storable a => Ptr a -> Ptr a -> Int -> IO ()-moveArray  = doMove undefined-  where-    doMove                     :: Storable a' => a' -> Ptr a' -> Ptr a' -> Int -> IO ()-    doMove dummy dest src size  = moveBytes dest src (size * sizeOf dummy)+moveArray :: forall a . Storable a => Ptr a -> Ptr a -> Int -> IO ()+moveArray  dest src size = moveBytes dest src (size * sizeOf (undefined :: a))   -- finding the length@@ -272,9 +254,5 @@  -- |Advance a pointer into an array by the given number of elements ---advancePtr :: Storable a => Ptr a -> Int -> Ptr a-advancePtr  = doAdvance undefined-  where-    doAdvance             :: Storable a' => a' -> Ptr a' -> Int -> Ptr a'-    doAdvance dummy ptr i  = ptr `plusPtr` (i * sizeOf dummy)-+advancePtr :: forall a . Storable a => Ptr a -> Int -> Ptr a+advancePtr ptr i = ptr `plusPtr` (i * sizeOf (undefined :: a))
Foreign/Marshal/Pool.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE Trustworthy #-}-{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE NoImplicitPrelude, ScopedTypeVariables #-}  -------------------------------------------------------------------------------- -- |@@ -102,11 +102,8 @@ -- allocated is determined by the 'sizeOf' method from the instance of -- 'Storable' for the appropriate type. -pooledMalloc :: Storable a => Pool -> IO (Ptr a)-pooledMalloc = pm undefined-  where-    pm           :: Storable a' => a' -> Pool -> IO (Ptr a')-    pm dummy pool = pooledMallocBytes pool (sizeOf dummy)+pooledMalloc :: forall a . Storable a => Pool -> IO (Ptr a)+pooledMalloc pool = pooledMallocBytes pool (sizeOf (undefined :: a))  -- | Allocate the given number of bytes of storage in the pool. @@ -120,11 +117,8 @@ -- | Adjust the storage area for an element in the pool to the given size of -- the required type. -pooledRealloc :: Storable a => Pool -> Ptr a -> IO (Ptr a)-pooledRealloc = pr undefined-  where-    pr               :: Storable a' => a' -> Pool -> Ptr a' -> IO (Ptr a')-    pr dummy pool ptr = pooledReallocBytes pool ptr (sizeOf dummy)+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. @@ -140,11 +134,9 @@ -- | Allocate storage for the given number of elements of a storable type in the -- pool. -pooledMallocArray :: Storable a => Pool -> Int -> IO (Ptr a)-pooledMallocArray = pma undefined-  where-    pma                :: Storable a' => a' -> Pool -> Int -> IO (Ptr a')-    pma dummy pool size = pooledMallocBytes pool (size * sizeOf dummy)+pooledMallocArray :: forall a . Storable a => Pool -> Int -> IO (Ptr a)+pooledMallocArray pool size =+    pooledMallocBytes pool (size * sizeOf (undefined :: a))  -- | Allocate storage for the given number of elements of a storable type in the -- pool, but leave room for an extra element to signal the end of the array.@@ -155,11 +147,9 @@  -- | Adjust the size of an array in the given pool. -pooledReallocArray :: Storable a => Pool -> Ptr a -> Int -> IO (Ptr a)-pooledReallocArray = pra undefined-  where-    pra                ::  Storable a' => a' -> Pool -> Ptr a' -> Int -> IO (Ptr a')-    pra dummy pool ptr size  = pooledReallocBytes pool ptr (size * sizeOf dummy)+pooledReallocArray :: forall a . Storable a => Pool -> Ptr a -> Int -> IO (Ptr a)+pooledReallocArray pool ptr size =+    pooledReallocBytes pool ptr (size * sizeOf (undefined :: a))  -- | Adjust the size of an array with an end marker in the given pool. @@ -195,4 +185,3 @@    ptr <- pooledMallocArray0 pool (length vals)    pokeArray0 marker ptr vals    return ptr-
GHC/Arr.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE Unsafe #-} {-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples, RoleAnnotations #-} {-# LANGUAGE BangPatterns #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -453,13 +453,13 @@                         -- of the array.  These bounds are the lowest and                         -- highest indices in the array, in that order.                         -- For example, a one-origin vector of length-                        -- '10' has bounds '(1,10)', and a one-origin '10'-                        -- by '10' matrix has bounds '((1,1),(10,10))'.+                        -- @10@ has bounds @(1,10)@, and a one-origin @10@+                        -- by @10@ matrix has bounds @((1,1),(10,10))@.         -> [(i, e)]     -- ^ a list of /associations/ of the form                         -- (/index/, /value/).  Typically, this list will                         -- be expressed as a comprehension.  An-                        -- association '(i, x)' defines the value of-                        -- the array at index 'i' to be 'x'.+                        -- association @(i, x)@ defines the value of+                        -- the array at index @i@ to be @x@.         -> Array i e array (l,u) ies     = let n = safeRangeSize (l,u)
GHC/Base.hs view
@@ -90,7 +90,7 @@ -- -Wno-orphans is needed for things like: -- Orphan rule: "x# -# x#" ALWAYS forall x# :: Int# -# x# x# = 0 {-# OPTIONS_GHC -Wno-orphans #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -213,16 +213,16 @@  -- | The class of semigroups (types with an associative binary operation). ----- Instances should satisfy the associativity law:+-- Instances should satisfy the following: -----  * @x '<>' (y '<>' z) = (x '<>' y) '<>' z@+-- [Associativity] @x '<>' (y '<>' z) = (x '<>' y) '<>' z@ -- -- @since 4.9.0.0 class Semigroup a where         -- | An associative operation.         (<>) :: a -> a -> a -        -- | Reduce a non-empty list with @\<\>@+        -- | Reduce a non-empty list with '<>'         --         -- The default definition should be sufficient, but this can be         -- overridden for efficiency.@@ -240,22 +240,19 @@         --         -- By making this a member of the class, idempotent semigroups         -- and monoids can upgrade this to execute in /O(1)/ by-        -- picking @stimes = 'stimesIdempotent'@ or @stimes =+        -- picking @stimes = 'Data.Semigroup.stimesIdempotent'@ or @stimes =         -- 'stimesIdempotentMonoid'@ respectively.         stimes :: Integral b => b -> a -> a         stimes = stimesDefault   -- | The class of monoids (types with an associative binary operation that--- has an identity).  Instances should satisfy the following laws:------  * @x '<>' 'mempty' = x@------  * @'mempty' '<>' x = x@------  * @x '<>' (y '<>' z) = (x '<>' y) '<>' z@ ('Semigroup' law)+-- has an identity).  Instances should satisfy the following: -----  * @'mconcat' = 'foldr' '(<>)' 'mempty'@+-- [Right identity] @x '<>' 'mempty' = x@+-- [Left identity]  @'mempty' '<>' x = x@+-- [Associativity]  @x '<>' (y '<>' z) = (x '<>' y) '<>' z@ ('Semigroup' law)+-- [Concatenation]  @'mconcat' = 'foldr' ('<>') 'mempty'@ -- -- The method names refer to the monoid of lists under concatenation, -- but there are many other instances.@@ -263,7 +260,7 @@ -- Some types can be viewed as a monoid in more than one way, -- e.g. both addition and multiplication on numbers. -- In such cases we often define @newtype@s and make those instances--- of 'Monoid', e.g. 'Sum' and 'Product'.+-- of 'Monoid', e.g. 'Data.Semigroup.Sum' and 'Data.Semigroup.Product'. -- -- __NOTE__: 'Semigroup' is a superclass of 'Monoid' since /base-4.11.0.0/. class Semigroup a => Monoid a where@@ -273,7 +270,7 @@         -- | An associative operation         --         -- __NOTE__: This method is redundant and has the default-        -- implementation @'mappend' = '(<>)'@ since /base-4.11.0.0/.+        -- implementation @'mappend' = ('<>')@ since /base-4.11.0.0/.         mappend :: a -> a -> a         mappend = (<>)         {-# INLINE mappend #-}@@ -444,14 +441,15 @@ instance Monoid a => Monoid (IO a) where     mempty = pure mempty -{- | The 'Functor' class is used for types that can be mapped over.-Instances of 'Functor' should satisfy the following laws:+{- | A type @f@ is a Functor if it provides a function @fmap@ which, given any types @a@ and @b@+lets you apply any function from @(a -> b)@ to turn an @f a@ into an @f b@, preserving the+structure of @f@. Furthermore @f@ needs to adhere to the following: -> fmap id  ==  id-> fmap (f . g)  ==  fmap f . fmap g+[Identity]    @'fmap' 'id' == 'id'@+[Composition] @'fmap' (f . g) == 'fmap' f . 'fmap' g@ -The instances of 'Functor' for lists, 'Data.Maybe.Maybe' and 'System.IO.IO'-satisfy these laws.+Note, that the second law follows from the free theorem of the type 'fmap' and+the first law, so you need only check that the former condition holds. -}  class  Functor f  where@@ -475,23 +473,23 @@ -- --      @('<*>') = 'liftA2' 'id'@ -----      @'liftA2' f x y = f '<$>' x '<*>' y@+--      @'liftA2' f x y = f 'Prelude.<$>' x '<*>' y@ -- -- Further, any definition must satisfy the following: ----- [/identity/]+-- [Identity] -- --      @'pure' 'id' '<*>' v = v@ ----- [/composition/]+-- [Composition] -- --      @'pure' (.) '<*>' u '<*>' v '<*>' w = u '<*>' (v '<*>' w)@ ----- [/homomorphism/]+-- [Homomorphism] -- --      @'pure' f '<*>' 'pure' x = 'pure' (f x)@ ----- [/interchange/]+-- [Interchange] -- --      @u '<*>' 'pure' y = 'pure' ('$' y) '<*>' u@ --@@ -629,11 +627,11 @@ Haskell's @do@ expressions provide a convenient syntax for writing monadic expressions. -Instances of 'Monad' should satisfy the following laws:+Instances of 'Monad' should satisfy the following: -* @'return' a '>>=' k  =  k a@-* @m '>>=' 'return'  =  m@-* @m '>>=' (\\x -> k x '>>=' h)  =  (m '>>=' k) '>>=' h@+[Left identity]  @'return' a '>>=' k  =  k a@+[Right identity] @m '>>=' 'return'  =  m@+[Associativity]  @m '>>=' (\\x -> k x '>>=' h)  =  (m '>>=' k) '>>=' h@  Furthermore, the 'Monad' and 'Applicative' operations should relate as follows: @@ -666,17 +664,6 @@     return      :: a -> m a     return      = pure -    -- | Fail with a message.  This operation is not part of the-    -- mathematical definition of a monad, but is invoked on pattern-match-    -- failure in a @do@ expression.-    ---    -- As part of the MonadFail proposal (MFP), this function is moved-    -- to its own class 'MonadFail' (see "Control.Monad.Fail" for more-    -- details). The definition here will be removed in a future-    -- release.-    fail        :: String -> m a-    fail s      = errorWithoutStackTrace s- {- Note [Recursive bindings for Applicative/Monad] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -857,8 +844,6 @@      (>>) = (*>) -    fail _              = Nothing- -- ----------------------------------------------------------------------------- -- The Alternative class definition @@ -869,7 +854,7 @@ -- If defined, 'some' and 'many' should be the least solutions -- of the equations: ----- * @'some' v = (:) '<$>' v '<*>' 'many' v@+-- * @'some' v = (:) 'Prelude.<$>' v '<*>' 'many' v@ -- -- * @'many' v = 'some' v '<|>' 'pure' []@ class Applicative f => Alternative f where@@ -986,8 +971,6 @@     xs >>= f             = [y | x <- xs, y <- f x]     {-# INLINE (>>) #-}     (>>) = (*>)-    {-# INLINE fail #-}-    fail _              = []  -- | @since 2.01 instance Alternative [] where@@ -1097,11 +1080,14 @@ --              map ---------------------------------------------- --- | 'map' @f xs@ is the list obtained by applying @f@ to each element+-- | /O(n)/. 'map' @f xs@ is the list obtained by applying @f@ to each element -- of @xs@, i.e., -- -- > map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn] -- > map f [x1, x2, ...] == [f x1, f x2, ...]+--+-- >>> map (+1) [1, 2, 3]+--- [2,3,4]  map :: (a -> b) -> [a] -> [b] {-# NOINLINE [0] map #-}@@ -1256,8 +1242,8 @@ -- The compiler may rewrite it to @('assertError' line)@.  -- | If the first argument evaluates to 'True', then the result is the--- second argument.  Otherwise an 'AssertionFailed' exception is raised,--- containing a 'String' with the source file and line number of the+-- second argument.  Otherwise an 'Control.Exception.AssertionFailed' exception+-- is raised, containing a 'String' with the source file and line number of the -- call to 'assert'. -- -- Assertions can normally be turned on or off with a compiler flag@@ -1314,9 +1300,8 @@ -- It is also useful in higher-order situations, such as @'map' ('$' 0) xs@, -- or @'Data.List.zipWith' ('$') fs xs@. ----- Note that @($)@ is levity-polymorphic in its result type, so that---     foo $ True    where  foo :: Bool -> Int#--- is well-typed+-- Note that @('$')@ is levity-polymorphic in its result type, so that+-- @foo '$' True@ where @foo :: Bool -> Int#@ is well-typed. {-# INLINE ($) #-} ($) :: forall r a (b :: TYPE r). (a -> b) -> a -> b f $ x =  f x@@ -1365,7 +1350,6 @@     {-# INLINE (>>=)  #-}     (>>)      = (*>)     (>>=)     = bindIO-    fail s    = failIO s  -- | @since 4.9.0.0 instance Alternative IO where@@ -1388,21 +1372,12 @@ unIO (IO a) = a  {- |-Returns the 'tag' of a constructor application; this function is used+Returns the tag of a constructor application; this function is used by the deriving code for Eq, Ord and Enum.--The primitive dataToTag# requires an evaluated constructor application-as its argument, so we provide getTag as a wrapper that performs the-evaluation before calling dataToTag#.  We could have dataToTag#-evaluate its argument, but we prefer to do it this way because (a)-dataToTag# can be an inline primop if it doesn't need to do any-evaluation, and (b) we want to expose the evaluation to the-simplifier, because it might be possible to eliminate the evaluation-in the case when the argument is already known to be evaluated. -} {-# INLINE getTag #-} getTag :: a -> Int#-getTag !x = dataToTag# x+getTag x = dataToTag# x  ---------------------------------------------- -- Numeric primops
GHC/Conc/IO.hs view
@@ -85,7 +85,7 @@ -- | Block the current thread until data is available to read on the -- given file descriptor (GHC only). ----- This will throw an 'IOError' if the file descriptor was closed+-- This will throw an 'Prelude.IOError' if the file descriptor was closed -- while this thread was blocked.  To safely close a file descriptor -- that has been used with 'threadWaitRead', use 'closeFdWith'. threadWaitRead :: Fd -> IO ()@@ -101,7 +101,7 @@ -- | Block the current thread until data can be written to the -- given file descriptor (GHC only). ----- This will throw an 'IOError' if the file descriptor was closed+-- This will throw an 'Prelude.IOError' if the file descriptor was closed -- while this thread was blocked.  To safely close a file descriptor -- that has been used with 'threadWaitWrite', use 'closeFdWith'. threadWaitWrite :: Fd -> IO ()
GHC/Conc/Sync.hs view
@@ -367,7 +367,7 @@ -} setNumCapabilities :: Int -> IO () setNumCapabilities i-  | i <= 0    = fail $ "setNumCapabilities: Capability count ("++show i++") must be positive"+  | i <= 0    = failIO $ "setNumCapabilities: Capability count ("++show i++") must be positive"   | otherwise = c_setNumCapabilities (fromIntegral i)  foreign import ccall safe "setNumCapabilities"@@ -543,8 +543,8 @@         -- ^currently in a foreign call   | BlockedOnOther         -- ^blocked on some other resource.  Without @-threaded@,-        -- I\/O and 'threadDelay' show up as 'BlockedOnOther', with @-threaded@-        -- they show up as 'BlockedOnMVar'.+        -- I\/O and 'Control.Concurrent.threadDelay' show up as+        -- 'BlockedOnOther', with @-threaded@ they show up as 'BlockedOnMVar'.   deriving ( Eq   -- ^ @since 4.3.0.0            , Ord  -- ^ @since 4.3.0.0            , Show -- ^ @since 4.3.0.0@@ -720,8 +720,11 @@ -- -- However, there are functions for creating transactional variables that -- can always be safely called in 'unsafePerformIO'. See: 'newTVarIO',--- 'newTChanIO', 'newBroadcastTChanIO', 'newTQueueIO', 'newTBQueueIO',--- and 'newTMVarIO'.+-- 'Control.Concurrent.STM.TChan.newTChanIO',+-- 'Control.Concurrent.STM.TChan.newBroadcastTChanIO',+-- 'Control.Concurrent.STM.TQueue.newTQueueIO',+-- 'Control.Concurrent.STM.TBQueue.newTBQueueIO', and+-- 'Control.Concurrent.STM.TMVar.newTMVarIO'. -- -- Using 'unsafePerformIO' inside of 'atomically' is also dangerous but for -- different reasons. See 'unsafeIOToSTM' for more on this.@@ -749,8 +752,13 @@ -- | A variant of 'throw' that can only be used within the 'STM' monad. -- -- Throwing an exception in @STM@ aborts the transaction and propagates the--- exception.+-- exception. If the exception is caught via 'catchSTM', only the changes+-- enclosed by the catch are rolled back; changes made outside of 'catchSTM'+-- persist. --+-- If the exception is not caught inside of the 'STM', it is re-thrown by+-- 'atomically', and the entire 'STM' is rolled back.+-- -- Although 'throwSTM' has a type that is an instance of the type of 'throw', the -- two functions are subtly different: --@@ -767,7 +775,12 @@ throwSTM :: Exception e => e -> STM a throwSTM e = STM $ raiseIO# (toException e) --- |Exception handling within STM actions.+-- | Exception handling within STM actions.+--+-- @'catchSTM' m f@ catches any exception thrown by @m@ using 'throwSTM',+-- using the function @f@ to handle the exception. If an exception is+-- thrown, any changes made by @m@ are rolled back, but changes prior to+-- @m@ persist. catchSTM :: Exception e => STM a -> (e -> STM a) -> STM a catchSTM (STM m) handler = STM $ catchSTM# m handler'     where
GHC/Conc/Windows.hs view
@@ -131,7 +131,7 @@ waitForDelayEvent usecs = do   m <- newEmptyMVar   target <- calculateTarget usecs-  atomicModifyIORef pendingDelays (\xs -> (Delay target m : xs, ()))+  _ <- atomicModifyIORef'_ pendingDelays (\xs -> Delay target m : xs)   prodServiceThread   takeMVar m @@ -140,7 +140,7 @@ waitForDelayEventSTM usecs = do    t <- atomically $ newTVar False    target <- calculateTarget usecs-   atomicModifyIORef pendingDelays (\xs -> (DelaySTM target t : xs, ()))+   _ <- atomicModifyIORef'_ pendingDelays (\xs -> DelaySTM target t : xs)    prodServiceThread    return t @@ -219,10 +219,10 @@  prodServiceThread :: IO () prodServiceThread = do-  -- NB. use atomicModifyIORef here, otherwise there are race+  -- NB. use atomicSwapIORef here, otherwise there are race   -- conditions in which prodding is left at True but the server is   -- blocked in select().-  was_set <- atomicModifyIORef prodding $ \b -> (True,b)+  was_set <- atomicSwapIORef prodding True   when (not was_set) wakeupIOManager  -- ----------------------------------------------------------------------------@@ -239,7 +239,7 @@  service_loop wakeup old_delays = do   -- pick up new delay requests-  new_delays <- atomicModifyIORef pendingDelays (\a -> ([],a))+  new_delays <- atomicSwapIORef pendingDelays []   let  delays = foldr insertDelay old_delays new_delays    now <- getMonotonicUSec@@ -262,8 +262,7 @@  service_cont :: HANDLE -> [DelayReq] -> IO () service_cont wakeup delays = do-  r <- atomicModifyIORef prodding (\_ -> (False,False))-  r `seq` return () -- avoid space leak+  _ <- atomicSwapIORef prodding False   service_loop wakeup delays  -- must agree with rts/win32/ThrIOManager.c
GHC/Desugar.hs view
@@ -3,7 +3,7 @@            , RankNTypes            , ExistentialQuantification   #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/Enum.hs view
@@ -4,7 +4,7 @@ {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE Trustworthy #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -632,9 +632,9 @@     -- use unboxed literals for maxBound, because GHC doesn't optimise     -- (fromInteger 0xffffffff :: Word). #if WORD_SIZE_IN_BITS == 32-    maxBound = W# (int2Word# 0xFFFFFFFF#)+    maxBound = W# 0xFFFFFFFF## #elif WORD_SIZE_IN_BITS == 64-    maxBound = W# (int2Word# 0xFFFFFFFFFFFFFFFF#)+    maxBound = W# 0xFFFFFFFFFFFFFFFF## #else #error Unhandled value for WORD_SIZE_IN_BITS #endif@@ -919,7 +919,6 @@ -- Natural ------------------------------------------------------------------------ -#if defined(MIN_VERSION_integer_gmp) -- | @since 4.8.0.0 instance Enum Natural where     succ n = n `plusNatural`  wordToNaturalBase 1##@@ -927,11 +926,13 @@      toEnum = intToNatural +#if defined(MIN_VERSION_integer_gmp)     fromEnum (NatS# w)       | i >= 0    = i       | otherwise = errorWithoutStackTrace "fromEnum: out of Int range"       where         i = I# (word2Int# w)+#endif     fromEnum n = fromEnum (naturalToInteger n)      enumFrom x        = enumDeltaNatural      x (wordToNaturalBase 1##)@@ -962,31 +963,6 @@          | x >= ndelta = x : go (x-ndelta)          | otherwise   = [x] -#else---- | @since 4.8.0.0-instance Enum Natural where-  pred (Natural 0) = errorWithoutStackTrace "Natural.pred: 0"-  pred (Natural n) = Natural (pred n)-  {-# INLINE pred #-}-  succ (Natural n) = Natural (succ n)-  {-# INLINE succ #-}-  fromEnum (Natural n) = fromEnum n-  {-# INLINE fromEnum #-}-  toEnum n | n < 0     = errorWithoutStackTrace "Natural.toEnum: negative"-           | otherwise = Natural (toEnum n)-  {-# INLINE toEnum #-}--  enumFrom     = coerce (enumFrom     :: Integer -> [Integer])-  enumFromThen x y-    | x <= y    = coerce (enumFromThen :: Integer -> Integer -> [Integer]) x y-    | otherwise = enumFromThenTo x y (wordToNaturalBase 0##)--  enumFromTo   = coerce (enumFromTo   :: Integer -> Integer -> [Integer])-  enumFromThenTo-    = coerce (enumFromThenTo :: Integer -> Integer -> Integer -> [Integer])--#endif  -- Instances from GHC.Types 
GHC/Environment.hs view
@@ -21,10 +21,10 @@ # endif #endif --- | Computation 'getFullArgs' is the "raw" version of 'getArgs', similar--- to @argv@ in other languages. It returns a list of the program's--- command line arguments, starting with the program name, and--- including those normally eaten by the RTS (+RTS ... -RTS).+-- | Computation 'getFullArgs' is the "raw" version of+-- 'System.Environment.getArgs', similar to @argv@ in other languages. It+-- returns a list of the program's command line arguments, starting with the+-- program name, and including those normally eaten by the RTS (+RTS ... -RTS). getFullArgs :: IO [String] getFullArgs = do   alloca $ \ p_argc -> do
GHC/Err.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE NoImplicitPrelude, MagicHash, ImplicitParams #-} {-# LANGUAGE RankNTypes, PolyKinds, DataKinds #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -29,7 +29,9 @@ import GHC.Prim import GHC.Integer ()   -- Make sure Integer and Natural are compiled first import GHC.Natural ()   -- because GHC depends on it in a wired-in way-                        -- so the build system doesn't see the dependency+                        -- so the build system doesn't see the dependency.+                        -- See Note [Depend on GHC.Integer] and+                        -- Note [Depend on GHC.Natural] in GHC.Base. import {-# SOURCE #-} GHC.Exception   ( errorCallWithCallStackException   , errorCallException )
GHC/Event/Control.hs view
@@ -126,7 +126,7 @@ -- file after it has been closed. closeControl :: Control -> IO () closeControl w = do-  atomicModifyIORef (controlIsDead w) (\_ -> (True, ()))+  _ <- atomicSwapIORef (controlIsDead w) True   _ <- c_close . fromIntegral . controlReadFd $ w   _ <- c_close . fromIntegral . controlWriteFd $ w   when (didRegisterWakeupFd w) $ c_setIOManagerWakeupFd (-1)
GHC/Event/Internal.hs view
@@ -216,7 +216,7 @@ delete (Backend bState _ _ _ bDelete) = bDelete bState {-# INLINE delete #-} --- | Throw an 'IOError' corresponding to the current value of+-- | Throw an 'Prelude.IOError' corresponding to the current value of -- 'getErrno' if the result value of the 'IO' action is -1 and -- 'getErrno' is not 'eINTR'.  If the result value is -1 and -- 'getErrno' returns 'eINTR' 0 is returned.  Otherwise the result
GHC/Event/KQueue.hsc view
@@ -87,11 +87,11 @@   return ()  modifyFd :: KQueue -> Fd -> E.Event -> E.Event -> IO Bool-modifyFd kq fd oevt nevt = kqueueControl (kqueueFd kq) evs+modifyFd kq fd oevt nevt = do+  kqueueControl (kqueueFd kq) evs   where-    evs-      | nevt == mempty = toEvents fd (toFilter oevt) flagDelete noteEOF-      | otherwise      = toEvents fd (toFilter nevt) flagAdd noteEOF+    evs = toEvents fd (toFilter oevt) flagDelete noteEOF+       <> toEvents fd (toFilter nevt) flagAdd noteEOF  toFilter :: E.Event -> [Filter] toFilter e = catMaybes [ check E.evtRead filterRead, check E.evtWrite filterWrite ]
GHC/Event/PSQ.hs view
@@ -49,7 +49,6 @@ import GHC.Word (Word64) import GHC.Num (Num(..)) import GHC.Real (fromIntegral)-import GHC.Types (Int)  #include "MachDeps.h" 
GHC/Event/Thread.hs view
@@ -72,7 +72,7 @@ -- | Block the current thread until data is available to read from the -- given file descriptor. ----- This will throw an 'IOError' if the file descriptor was closed+-- This will throw an 'Prelude.IOError' if the file descriptor was closed -- while this thread was blocked.  To safely close a file descriptor -- that has been used with 'threadWaitRead', use 'closeFdWith'. threadWaitRead :: Fd -> IO ()@@ -82,7 +82,7 @@ -- | Block the current thread until the given file descriptor can -- accept data to write. ----- This will throw an 'IOError' if the file descriptor was closed+-- This will throw an 'Prelude.IOError' if the file descriptor was closed -- while this thread was blocked.  To safely close a file descriptor -- that has been used with 'threadWaitWrite', use 'closeFdWith'. threadWaitWrite :: Fd -> IO ()@@ -145,7 +145,7 @@ -- The second element of the return value pair is an IO action that can be used -- to deregister interest in the file descriptor. ----- The STM action will throw an 'IOError' if the file descriptor was closed+-- The STM action will throw an 'Prelude.IOError' if the file descriptor was closed -- while the STM action is being executed.  To safely close a file descriptor -- that has been used with 'threadWaitReadSTM', use 'closeFdWith'. threadWaitReadSTM :: Fd -> IO (STM (), IO ())@@ -157,7 +157,7 @@ -- The second element of the return value pair is an IO action that can be used to deregister -- interest in the file descriptor. ----- The STM action will throw an 'IOError' if the file descriptor was closed+-- The STM action will throw an 'Prelude.IOError' if the file descriptor was closed -- while the STM action is being executed.  To safely close a file descriptor -- that has been used with 'threadWaitWriteSTM', use 'closeFdWith'. threadWaitWriteSTM :: Fd -> IO (STM (), IO ())
GHC/Exception.hs view
@@ -6,7 +6,7 @@            , PatternSynonyms   #-} {-# LANGUAGE TypeInType #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/Exception/Type.hs view
@@ -5,7 +5,7 @@            , RecordWildCards            , PatternSynonyms   #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/Exts.hs view
@@ -34,6 +34,9 @@         uncheckedIShiftL64#, uncheckedIShiftRA64#,         isTrue#, +        -- * Compat wrapper+        atomicModifyMutVar#,+         -- * Fusion         build, augment, @@ -46,7 +49,7 @@         -- * Ids with special behaviour         lazy, inline, oneShot, -        -- * Running 'RealWorld' state transformers+        -- * Running 'RealWorld' state thread         runRW#,          -- * Safe coercions@@ -219,3 +222,27 @@   type (Item CallStack) = (String, SrcLoc)   fromList = fromCallSiteList   toList   = getCallStack++-- | An implementation of the old @atomicModifyMutVar#@ primop in+-- terms of the new 'atomicModifyMutVar2#' primop, for backwards+-- compatibility. The type of this function is a bit bogus. It's+-- best to think of it as having type+--+-- @+-- atomicModifyMutVar#+--   :: MutVar# s a+--   -> (a -> (a, b))+--   -> State# s+--   -> (# State# s, b #)+-- @+--+-- but there may be code that uses this with other two-field record+-- types.+atomicModifyMutVar#+  :: MutVar# s a+  -> (a -> b)+  -> State# s+  -> (# State# s, c #)+atomicModifyMutVar# mv f s =+  case unsafeCoerce# (atomicModifyMutVar2# mv f s) of+    (# s', _, ~(_, res) #) -> (# s', res #)
GHC/Float.hs view
@@ -10,7 +10,7 @@ -- We believe we could deorphan this module, by moving lots of things -- around, but we haven't got there yet: {-# OPTIONS_GHC -Wno-orphans #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -65,12 +65,13 @@  -- | Trigonometric and hyperbolic functions and related functions. ----- The Haskell Report defines no laws for 'Floating'. However, '(+)', '(*)'+-- The Haskell Report defines no laws for 'Floating'. However, @('+')@, @('*')@ -- and 'exp' are customarily expected to define an exponential field and have -- the following properties: ----- * @exp (a + b)@ = @exp a * exp b+-- * @exp (a + b)@ = @exp a * exp b@ -- * @exp (fromInteger 0)@ = @fromInteger 1@+-- class  (Fractional a) => Floating a  where     pi                  :: a     exp, log, sqrt      :: a -> a@@ -166,7 +167,7 @@     decodeFloat         :: a -> (Integer,Int)     -- | 'encodeFloat' performs the inverse of 'decodeFloat' in the     -- sense that for finite @x@ with the exception of @-0.0@,-    -- @'uncurry' 'encodeFloat' ('decodeFloat' x) = x@.+    -- @'Prelude.uncurry' 'encodeFloat' ('decodeFloat' x) = x@.     -- @'encodeFloat' m n@ is one of the two closest representable     -- floating-point numbers to @m*b^^n@ (or @&#177;Infinity@ if overflow     -- occurs); usually the closer, but if @m@ contains too many bits,@@ -390,13 +391,9 @@     (**) x y            =  powerFloat x y     logBase x y         =  log y / log x -    asinh x-      | x > huge   = log 2 + log x-      | x < 0      = -asinh (-x)-      | otherwise  = log (x + sqrt (1 + x*x))-     where huge = 1e10-    acosh x = log (x + (x+1.0) * sqrt ((x-1.0)/(x+1.0)))-    atanh x = 0.5 * log ((1.0+x) / (1.0-x))+    asinh x             =  asinhFloat x+    acosh x             =  acoshFloat x+    atanh x             =  atanhFloat x      log1p = log1pFloat     expm1 = expm1Float@@ -535,13 +532,9 @@     (**) x y            =  powerDouble x y     logBase x y         =  log y / log x -    asinh x-      | x > huge   = log 2 + log x-      | x < 0      = -asinh (-x)-      | otherwise  = log (x + sqrt (1 + x*x))-     where huge = 1e20-    acosh x = log (x + (x+1.0) * sqrt ((x-1.0)/(x+1.0)))-    atanh x = 0.5 * log ((1.0+x) / (1.0-x))+    asinh x             =  asinhDouble x+    acosh x             =  acoshDouble x+    atanh x             =  atanhDouble x      log1p = log1pDouble     expm1 = expm1Double@@ -1151,6 +1144,7 @@ sinFloat, cosFloat, tanFloat  :: Float -> Float asinFloat, acosFloat, atanFloat  :: Float -> Float sinhFloat, coshFloat, tanhFloat  :: Float -> Float+asinhFloat, acoshFloat, atanhFloat  :: Float -> Float expFloat    (F# x) = F# (expFloat# x) logFloat    (F# x) = F# (logFloat# x) sqrtFloat   (F# x) = F# (sqrtFloat# x)@@ -1164,6 +1158,9 @@ sinhFloat   (F# x) = F# (sinhFloat# x) coshFloat   (F# x) = F# (coshFloat# x) tanhFloat   (F# x) = F# (tanhFloat# x)+asinhFloat  (F# x) = F# (asinhFloat# x)+acoshFloat  (F# x) = F# (acoshFloat# x)+atanhFloat  (F# x) = F# (atanhFloat# x)  powerFloat :: Float -> Float -> Float powerFloat  (F# x) (F# y) = F# (powerFloat# x y)@@ -1196,6 +1193,7 @@ sinDouble, cosDouble, tanDouble  :: Double -> Double asinDouble, acosDouble, atanDouble  :: Double -> Double sinhDouble, coshDouble, tanhDouble  :: Double -> Double+asinhDouble, acoshDouble, atanhDouble  :: Double -> Double expDouble    (D# x) = D# (expDouble# x) logDouble    (D# x) = D# (logDouble# x) sqrtDouble   (D# x) = D# (sqrtDouble# x)@@ -1209,6 +1207,9 @@ sinhDouble   (D# x) = D# (sinhDouble# x) coshDouble   (D# x) = D# (coshDouble# x) tanhDouble   (D# x) = D# (tanhDouble# x)+asinhDouble  (D# x) = D# (asinhDouble# x)+acoshDouble  (D# x) = D# (acoshDouble# x)+atanhDouble  (D# x) = D# (atanhDouble# x)  powerDouble :: Double -> Double -> Double powerDouble  (D# x) (D# y) = D# (x **## y)
GHC/Float/ConversionUtils.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, MagicHash, UnboxedTuples, NoImplicitPrelude #-} {-# OPTIONS_GHC -O2 #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/Float/RealFracMethods.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, MagicHash, UnboxedTuples, NoImplicitPrelude #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/Foreign.hs view
@@ -154,7 +154,8 @@   go cs (s:ss) = withCString enc s $ \c -> go (c:cs) ss   go cs [] = withArrayLen (reverse cs) f --- | Determines whether a character can be accurately encoded in a 'CString'.+-- | Determines whether a character can be accurately encoded in a+-- 'Foreign.C.String.CString'. -- -- Pretty much anyone who uses this function is in a state of sin because -- whether or not a character is encodable will, in general, depend on the@@ -200,7 +201,7 @@       from0 <- fmap (\fp -> bufferAdd sz_bytes (emptyBuffer fp sz_bytes ReadBuffer)) $ newForeignPtr_ (castPtr p)       to <- newCharBuffer chunk_size WriteBuffer -      let go iteration from = do+      let go !iteration from = do             (why, from', to') <- encode decoder from to             if isEmptyBuffer from'              then@@ -229,7 +230,7 @@   = bracket mk_encoder close $ \encoder -> withArrayLen s $ \sz p -> do       from <- fmap (\fp -> bufferAdd sz (emptyBuffer fp sz ReadBuffer)) $ newForeignPtr_ p -      let go iteration to_sz_bytes = do+      let go !iteration to_sz_bytes = do            putDebugMsg ("withEncodedCString: " ++ show iteration)            allocaBytes to_sz_bytes $ \to_p -> do             mb_res <- tryFillBufferAndCall encoder null_terminate from to_p to_sz_bytes act@@ -249,7 +250,7 @@   = bracket mk_encoder close $ \encoder -> withArrayLen s $ \sz p -> do       from <- fmap (\fp -> bufferAdd sz (emptyBuffer fp sz ReadBuffer)) $ newForeignPtr_ p -      let go iteration to_p to_sz_bytes = do+      let go !iteration to_p to_sz_bytes = do            putDebugMsg ("newEncodedCString: " ++ show iteration)            mb_res <- tryFillBufferAndCall encoder null_terminate from to_p to_sz_bytes return            case mb_res of@@ -271,7 +272,7 @@     to_fp <- newForeignPtr_ to_p     go (0 :: Int) (from0, emptyBuffer to_fp to_sz_bytes WriteBuffer)   where-    go iteration (from, to) = do+    go !iteration (from, to) = do       (why, from', to') <- encode encoder from to       putDebugMsg ("tryFillBufferAndCall: " ++ show iteration ++ " " ++ show why ++ " " ++ summaryBuffer from ++ " " ++ summaryBuffer from')       if isEmptyBuffer from'
GHC/ForeignPtr.hs view
@@ -4,7 +4,7 @@            , MagicHash            , UnboxedTuples   #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-} {-# LANGUAGE StandaloneDeriving #-}  -----------------------------------------------------------------------------@@ -153,8 +153,8 @@ -- implementation in GHC.  It uses pinned memory in the garbage -- collected heap, so the 'ForeignPtr' does not require a finalizer to -- free the memory.  Use of 'mallocForeignPtr' and associated--- functions is strongly recommended in preference to 'newForeignPtr'--- with a finalizer.+-- functions is strongly recommended in preference to+-- 'Foreign.ForeignPtr.newForeignPtr' with a finalizer. -- mallocForeignPtr = doMalloc undefined   where doMalloc :: Storable b => b -> IO (ForeignPtr b)@@ -289,9 +289,10 @@ -- -- NB. Be very careful with these finalizers.  One common trap is that -- if a finalizer references another finalized value, it does not--- prevent that value from being finalized.  In particular, 'Handle's--- are finalized objects, so a finalizer should not refer to a 'Handle'--- (including @stdout@, @stdin@ or @stderr@).+-- prevent that value from being finalized.  In particular, 'System.IO.Handle's+-- are finalized objects, so a finalizer should not refer to a+-- 'System.IO.Handle' (including 'System.IO.stdout', 'System.IO.stdin', or+-- 'System.IO.stderr'). -- addForeignPtrConcFinalizer (ForeignPtr _ c) finalizer =   addForeignPtrConcFinalizer_ c finalizer@@ -321,7 +322,7 @@  insertHaskellFinalizer :: IORef Finalizers -> IO () -> IO Bool insertHaskellFinalizer r f = do-  !wasEmpty <- atomicModifyIORef r $ \finalizers -> case finalizers of+  !wasEmpty <- atomicModifyIORefP r $ \finalizers -> case finalizers of       NoFinalizers -> (HaskellFinalizers [f], True)       HaskellFinalizers fs -> (HaskellFinalizers (f:fs), False)       _ -> noMixingError@@ -352,8 +353,8 @@       NoFinalizers -> IO $ \s ->           case mkWeakNoFinalizer# r# (unsafeCoerce# value) s of { (# s1, w #) ->              -- See Note [MallocPtr finalizers] (#10904)-          case atomicModifyMutVar# r# (update w) s1 of-              { (# s2, (weak, needKill ) #) ->+          case atomicModifyMutVar2# r# (update w) s1 of+              { (# s2, _, (_, (weak, needKill )) #) ->           if needKill             then case finalizeWeak# w s2 of { (# s3, _, _ #) ->               (# s3, weak #) }@@ -370,7 +371,8 @@  foreignPtrFinalizer :: IORef Finalizers -> IO () foreignPtrFinalizer r = do-  fs <- atomicModifyIORef r $ \fs -> (NoFinalizers, fs) -- atomic, see #7170+  fs <- atomicSwapIORef r NoFinalizers+             -- atomic, see #7170   case fs of     NoFinalizers -> return ()     CFinalizers w -> IO $ \s -> case finalizeWeak# w s of
GHC/GHCi.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE NoImplicitPrelude #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
+ GHC/GHCi/Helpers.hs view
@@ -0,0 +1,36 @@+-----------------------------------------------------------------------------+-- |+-- Module      :  GHC.GHCi.Helpers+-- Copyright   :  (c) The GHC Developers+-- License     :  see libraries/base/LICENSE+--+-- Maintainer  :  cvs-ghc@haskell.org+-- Stability   :  internal+-- Portability :  non-portable (GHC Extensions)+--+-- Various helpers used by the GHCi shell.+--+-----------------------------------------------------------------------------++module GHC.GHCi.Helpers+  ( disableBuffering, flushAll+  , evalWrapper+  ) where++import System.IO+import System.Environment++disableBuffering :: IO ()+disableBuffering = do+  hSetBuffering stdin NoBuffering+  hSetBuffering stdout NoBuffering+  hSetBuffering stderr NoBuffering++flushAll :: IO ()+flushAll = do+  hFlush stdout+  hFlush stderr++evalWrapper :: String -> [String] -> IO a -> IO a+evalWrapper progName args m =+  withProgName progName (withArgs args m)
GHC/Generics.hs view
@@ -105,7 +105,7 @@ -- This is a lot of information! However, most of it is actually merely meta-information -- that makes names of datatypes and constructors and more available on the type level. ----- Here is a reduced representation for 'Tree' with nearly all meta-information removed,+-- Here is a reduced representation for @Tree@ with nearly all meta-information removed, -- for now keeping only the most essential aspects: -- -- @@@ -189,7 +189,7 @@ -- -- Here, 'R' is a type-level proxy that does not have any associated values. ----- There used to be another variant of 'K1' (namely 'Par0'), but it has since+-- There used to be another variant of 'K1' (namely @Par0@), but it has since -- been deprecated.  -- *** Meta information: 'M1'@@ -273,7 +273,7 @@ --       between the original value and its `Rep`-based representation and then invokes the --       generic instances. ----- As an example, let us look at a function 'encode' that produces a naive, but lossless+-- As an example, let us look at a function @encode@ that produces a naive, but lossless -- bit encoding of values of various datatypes. So we are aiming to define a function -- -- @@@ -367,18 +367,15 @@ -- @ -- -- The case for 'K1' is rather interesting. Here, we call the final function--- 'encode' that we yet have to define, recursively. We will use another type--- class 'Encode' for that function:+-- @encode@ that we yet have to define, recursively. We will use another type+-- class @Encode@ for that function: -- -- @ -- instance (Encode c) => Encode' ('K1' i c) where --   encode' ('K1' x) = encode x -- @ ----- Note how 'Par0' and 'Rec0' both being mapped to 'K1' allows us to define--- a uniform instance here.------ Similarly, we can define a uniform instance for 'M1', because we completely+-- Note how we can define a uniform instance for 'M1', because we completely -- disregard all meta-information: -- -- @@@ -386,13 +383,13 @@ --   encode' ('M1' x) = encode' x -- @ ----- Unlike in 'K1', the instance for 'M1' refers to 'encode'', not 'encode'.+-- Unlike in 'K1', the instance for 'M1' refers to @encode'@, not @encode@.  -- *** The wrapper and generic default -- -- | ----- We now define class 'Encode' for the actual 'encode' function:+-- We now define class @Encode@ for the actual @encode@ function: -- -- @ -- class Encode a where@@ -401,9 +398,9 @@ --   encode x = encode' ('from' x) -- @ ----- The incoming 'x' is converted using 'from', then we dispatch to the--- generic instances using 'encode''. We use this as a default definition--- for 'encode'. We need the 'default encode' signature because ordinary+-- The incoming @x@ is converted using 'from', then we dispatch to the+-- generic instances using @encode'@. We use this as a default definition+-- for @encode@. We need the @default encode@ signature because ordinary -- Haskell default methods must not introduce additional class constraints, -- but our generic default does. --@@ -421,10 +418,10 @@ -- possible to use @deriving Encode@ as well, but GHC does not yet support -- that syntax for this situation. ----- Having 'Encode' as a class has the advantage that we can define+-- Having @Encode@ as a class has the advantage that we can define -- non-generic special cases, which is particularly useful for abstract -- datatypes that have no structural representation. For example, given--- a suitable integer encoding function 'encodeInt', we can define+-- a suitable integer encoding function @encodeInt@, we can define -- -- @ -- instance Encode Int where@@ -457,7 +454,7 @@ --      any datatype where each constructor has at least one field. -- -- An 'M1' instance is always required (but it can just ignore the--- meta-information, as is the case for 'encode' above).+-- meta-information, as is the case for @encode@ above). #if 0 -- *** Using meta-information --@@ -470,14 +467,15 @@ -- | -- -- Datatype-generic functions as defined above work for a large class--- of datatypes, including parameterized datatypes. (We have used 'Tree'+-- of datatypes, including parameterized datatypes. (We have used @Tree@ -- as our example above, which is of kind @* -> *@.) However, the -- 'Generic' class ranges over types of kind @*@, and therefore, the--- resulting generic functions (such as 'encode') must be parameterized+-- resulting generic functions (such as @encode@) must be parameterized -- by a generic type argument of kind @*@. -- -- What if we want to define generic classes that range over type--- constructors (such as 'Functor', 'Traversable', or 'Foldable')?+-- constructors (such as 'Data.Functor.Functor',+-- 'Data.Traversable.Traversable', or 'Data.Foldable.Foldable')?  -- *** The 'Generic1' class --@@ -491,7 +489,7 @@ -- The 'Generic1' class is also derivable. -- -- The representation 'Rep1' is ever so slightly different from 'Rep'.--- Let us look at 'Tree' as an example again:+-- Let us look at @Tree@ as an example again: -- -- @ -- data Tree a = Leaf a | Node (Tree a) (Tree a)@@ -749,7 +747,7 @@  -- Needed for metadata import Data.Proxy   ( Proxy(..) )-import GHC.TypeLits ( Nat, Symbol, KnownSymbol, KnownNat, symbolVal, natVal )+import GHC.TypeLits ( KnownSymbol, KnownNat, symbolVal, natVal )  -------------------------------------------------------------------------------- -- Representation types@@ -1335,8 +1333,8 @@ -- A 'Generic' instance must satisfy the following laws: -- -- @--- 'from' . 'to' ≡ 'id'--- 'to' . 'from' ≡ 'id'+-- 'from' . 'to' ≡ 'Prelude.id'+-- 'to' . 'from' ≡ 'Prelude.id' -- @ class Generic a where   -- | Generic representation type@@ -1354,8 +1352,8 @@ -- A 'Generic1' instance must satisfy the following laws: -- -- @--- 'from1' . 'to1' ≡ 'id'--- 'to1' . 'from1' ≡ 'id'+-- 'from1' . 'to1' ≡ 'Prelude.id'+-- 'to1' . 'from1' ≡ 'Prelude.id' -- @ class Generic1 (f :: k -> Type) where   -- | Generic representation type@@ -1484,8 +1482,6 @@ data family Sing (a :: k)  -- | A 'SingI' constraint is essentially an implicitly-passed singleton.--- If you need to satisfy this constraint with an explicit singleton, please--- see 'withSingI'. class SingI (a :: k) where   -- | Produce the singleton explicitly. You will likely need the @ScopedTypeVariables@   -- extension to use this method the way you want.
GHC/IO.hs view
@@ -7,7 +7,7 @@            , UnboxedTuples   #-} {-# OPTIONS_GHC -funbox-strict-fields #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -53,8 +53,8 @@ -- The IO Monad  {--The IO Monad is just an instance of the ST monad, where the state is-the real world.  We use the exception mechanism (in GHC.Exception) to+The IO Monad is just an instance of the ST monad, where the state thread+is the real world.  We use the exception mechanism (in GHC.Exception) to implement IO exceptions.  NOTE: The IO representation is deeply wired in to various parts of the@@ -84,7 +84,7 @@ -- --------------------------------------------------------------------------- -- Coercions between IO and ST --- | Embed a strict state transformer in an 'IO'+-- | Embed a strict state thread in an 'IO' -- action.  The 'RealWorld' parameter indicates that the internal state -- used by the 'ST' computation is a special one supplied by the 'IO' -- monad, and thus distinct from those used by invocations of 'runST'.@@ -92,20 +92,20 @@ stToIO (ST m) = IO m  -- | Convert an 'IO' action into an 'ST' action. The type of the result--- is constrained to use a 'RealWorld' state, and therefore the result cannot--- be passed to 'runST'.+-- is constrained to use a 'RealWorld' state thread, and therefore the+-- result cannot be passed to 'runST'. ioToST        :: IO a -> ST RealWorld a ioToST (IO m) = (ST m)  -- | Convert an 'IO' action to an 'ST' action. -- This relies on 'IO' and 'ST' having the same representation modulo the--- constraint on the type of the state.+-- constraint on the state thread type parameter. unsafeIOToST        :: IO a -> ST s a unsafeIOToST (IO io) = ST $ \ s -> (unsafeCoerce# io) s  -- | Convert an 'ST' action to an 'IO' action. -- This relies on 'IO' and 'ST' having the same representation modulo the--- constraint on the type of the state.+-- constraint on the state thread type parameter. -- -- For an example demonstrating why this is unsafe, see -- https://mail.haskell.org/pipermail/haskell-cafe/2009-April/060719.html
GHC/IO.hs-boot view
@@ -4,7 +4,7 @@ module GHC.IO where  import GHC.Types-import GHC.Integer () -- see Note [Depend upon GHC.Integer] in libraries/base/GHC/Base.hs+import GHC.Integer () -- See Note [Depend on GHC.Integer] in GHC.Base  failIO :: [Char] -> IO a mplusIO :: IO a -> IO a -> IO a
GHC/IO/BufferedIO.hs view
@@ -32,8 +32,8 @@ -- | The purpose of 'BufferedIO' is to provide a common interface for I/O -- devices that can read and write data through a buffer.  Devices that -- implement 'BufferedIO' include ordinary files, memory-mapped files,--- and bytestrings.  The underlying device implementing a 'Handle' must--- provide 'BufferedIO'.+-- and bytestrings.  The underlying device implementing a 'System.IO.Handle'+-- must provide 'BufferedIO'. -- class BufferedIO dev where   -- | allocate a new buffer.  The size of the buffer is at the
GHC/IO/Device.hs view
@@ -56,7 +56,7 @@   writeNonBlocking    :: a -> Ptr Word8 -> Int -> IO Int  --- | I/O operations required for implementing a 'Handle'.+-- | I/O operations required for implementing a 'System.IO.Handle'. class IODevice a where   -- | @ready dev write msecs@ returns 'True' if the device has data   -- to read (if @write@ is 'False') or space to write new data (if@@ -139,7 +139,7 @@   = Directory -- ^ The standard libraries do not have direct support               -- for this device type, but a user implementation is               -- expected to provide a list of file names in-              -- the directory, in any order, separated by @'\0'@+              -- the directory, in any order, separated by @\'\\0\'@               -- characters, excluding the @"."@ and @".."@ names. See               -- also 'System.Directory.getDirectoryContents'.  Seek               -- operations are not supported on directories (other@@ -160,7 +160,7 @@ -- ----------------------------------------------------------------------------- -- SeekMode type --- | A mode that determines the effect of 'hSeek' @hdl mode i@.+-- | A mode that determines the effect of 'System.IO.hSeek' @hdl mode i@. data SeekMode   = AbsoluteSeek        -- ^ the position of @hdl@ is set to @i@.   | RelativeSeek        -- ^ the position of @hdl@ is set to offset @i@
GHC/IO/Encoding.hs view
@@ -57,7 +57,8 @@ -- | The Latin1 (ISO8859-1) encoding.  This encoding maps bytes -- directly to the first 256 Unicode code points, and is thus not a -- complete Unicode encoding.  An attempt to write a character greater than--- '\255' to a 'Handle' using the 'latin1' encoding will result in an error.+-- @\'\\255\'@ to a 'System.IO.Handle' using the 'latin1' encoding will result in an+-- error. latin1  :: TextEncoding latin1 = Latin1.latin1_checked @@ -122,7 +123,7 @@  -- | The Unicode encoding of the current locale, but where undecodable -- bytes are replaced with their closest visual match. Used for--- the 'CString' marshalling functions in "Foreign.C.String"+-- the 'Foreign.C.String.CString' marshalling functions in "Foreign.C.String" -- -- @since 4.5.0.0 getForeignEncoding :: IO TextEncoding@@ -187,7 +188,7 @@  -- | Look up the named Unicode encoding.  May fail with -----  * 'isDoesNotExistError' if the encoding is unknown+--  * 'System.IO.Error.isDoesNotExistError' if the encoding is unknown -- -- The set of known encodings is system-dependent, but includes at least: --
GHC/IO/Encoding/Failure.hs view
@@ -34,8 +34,8 @@  --import System.Posix.Internals --- | The 'CodingFailureMode' is used to construct 'TextEncoding's, and--- specifies how they handle illegal sequences.+-- | The 'CodingFailureMode' is used to construct 'System.IO.TextEncoding's,+-- and specifies how they handle illegal sequences. data CodingFailureMode   = ErrorOnCodingFailure        -- ^ Throw an error when an illegal sequence is encountered
GHC/IO/Encoding/Iconv.hs view
@@ -3,7 +3,7 @@            , NoImplicitPrelude            , NondecreasingIndentation   #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/IO/Encoding/Types.hs view
@@ -103,11 +103,11 @@ -- between sequences of bytes and sequences of Unicode characters. -- -- For example, UTF-8 is an encoding of Unicode characters into a sequence--- of bytes.  The 'TextEncoding' for UTF-8 is 'utf8'.+-- of bytes.  The 'TextEncoding' for UTF-8 is 'System.IO.utf8'. data TextEncoding   = forall dstate estate . TextEncoding  {         textEncodingName :: String,-                   -- ^ a string that can be passed to 'mkTextEncoding' to+                   -- ^ a string that can be passed to 'System.IO.mkTextEncoding' to                    -- create an equivalent 'TextEncoding'.         mkTextDecoder :: IO (TextDecoder dstate),                    -- ^ Creates a means of decoding bytes into characters: the result must not
GHC/IO/Exception.hs view
@@ -2,7 +2,7 @@ {-# LANGUAGE DeriveGeneric, NoImplicitPrelude, MagicHash,              ExistentialQuantification, ImplicitParams #-} {-# OPTIONS_GHC -funbox-strict-fields #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -273,7 +273,8 @@         . (if not (null s) then showString ": " . showString s                            else id) --- | The exception thrown when an infinite cycle is detected in 'fixIO'.+-- | The exception thrown when an infinite cycle is detected in+-- 'System.IO.fixIO'. -- -- @since 4.11.0.0 data FixIOException = FixIOException
GHC/IO/FD.hs view
@@ -5,7 +5,7 @@   #-} {-# OPTIONS_GHC -Wno-identities #-} -- Whether there are identities depends on the platform-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -67,6 +67,17 @@ c_DEBUG_DUMP :: Bool c_DEBUG_DUMP = False +-- Darwin limits the length of writes to 2GB. See+-- #17414.+clampWriteSize, clampReadSize :: Int -> Int+#if defined(darwin_HOST_OS)+clampWriteSize = min 0x7fffffff+clampReadSize  = min 0x7fffffff+#else+clampWriteSize = id+clampReadSize  = id+#endif+ -- ----------------------------------------------------------------------------- -- The file-descriptor IO device @@ -430,13 +441,14 @@  fdRead :: FD -> Ptr Word8 -> Int -> IO Int fdRead fd ptr bytes-  = do { r <- readRawBufferPtr "GHC.IO.FD.fdRead" fd ptr 0 (fromIntegral bytes)+  = do { r <- readRawBufferPtr "GHC.IO.FD.fdRead" fd ptr 0+                (fromIntegral $ clampReadSize bytes)        ; return (fromIntegral r) }  fdReadNonBlocking :: FD -> Ptr Word8 -> Int -> IO (Maybe Int) fdReadNonBlocking fd ptr bytes = do   r <- readRawBufferPtrNoBlock "GHC.IO.FD.fdReadNonBlocking" fd ptr-           0 (fromIntegral bytes)+           0 (fromIntegral $ clampReadSize bytes)   case fromIntegral r of     (-1) -> return (Nothing)     n    -> return (Just n)@@ -444,7 +456,8 @@  fdWrite :: FD -> Ptr Word8 -> Int -> IO () fdWrite fd ptr bytes = do-  res <- writeRawBufferPtr "GHC.IO.FD.fdWrite" fd ptr 0 (fromIntegral bytes)+  res <- writeRawBufferPtr "GHC.IO.FD.fdWrite" fd ptr 0+          (fromIntegral $ clampWriteSize bytes)   let res' = fromIntegral res   if res' < bytes      then fdWrite fd (ptr `plusPtr` res') (bytes - res')@@ -454,7 +467,7 @@ fdWriteNonBlocking :: FD -> Ptr Word8 -> Int -> IO Int fdWriteNonBlocking fd ptr bytes = do   res <- writeRawBufferPtrNoBlock "GHC.IO.FD.fdWriteNonBlocking" fd ptr 0-            (fromIntegral bytes)+            (fromIntegral $ clampWriteSize bytes)   return (fromIntegral res)  -- -----------------------------------------------------------------------------
GHC/IO/Handle.hs view
@@ -183,7 +183,7 @@ -- -- This operation may fail with: -----  * 'isEOFError' if the end of file has been reached.+--  * 'System.IO.Error.isEOFError' if the end of file has been reached.  hLookAhead :: Handle -> IO Char hLookAhead handle =@@ -208,9 +208,9 @@ -- -- This operation may fail with: -----  * 'isPermissionError' if the handle has already been used for reading---    or writing and the implementation does not allow the buffering mode---    to be changed.+--  * 'System.IO.Error.isPermissionError' if the handle has already been used+--    for reading or writing and the implementation does not allow the+--    buffering mode to be changed.  hSetBuffering :: Handle -> BufferMode -> IO () hSetBuffering handle mode =@@ -251,8 +251,8 @@  -- | The action 'hSetEncoding' @hdl@ @encoding@ changes the text encoding -- for the handle @hdl@ to @encoding@.  The default encoding when a 'Handle' is--- created is 'localeEncoding', namely the default encoding for the current--- locale.+-- created is 'System.IO.localeEncoding', namely the default encoding for the+-- current locale. -- -- To create a 'Handle' with no encoding at all, use 'openBinaryFile'.  To -- stop further encoding or decoding on an existing 'Handle', use@@ -295,11 +295,11 @@ -- -- This operation may fail with: -----  * 'isFullError' if the device is full;+--  * 'System.IO.Error.isFullError' if the device is full; -----  * 'isPermissionError' if a system resource limit would be exceeded.---    It is unspecified whether the characters in the buffer are discarded---    or retained under these circumstances.+--  * 'System.IO.Error.isPermissionError' if a system resource limit would be+--    exceeded. It is unspecified whether the characters in the buffer are+--    discarded or retained under these circumstances.  hFlush :: Handle -> IO () hFlush handle = wantWritableHandle "hFlush" handle flushWriteBuffer@@ -312,14 +312,14 @@ -- -- This operation may fail with: -----  * 'isFullError' if the device is full;+--  * 'System.IO.Error.isFullError' if the device is full; -----  * 'isPermissionError' if a system resource limit would be exceeded.---    It is unspecified whether the characters in the buffer are discarded---    or retained under these circumstances;+--  * 'System.IO.Error.isPermissionError' if a system resource limit would be+--    exceeded. It is unspecified whether the characters in the buffer are+--    discarded or retained under these circumstances; -----  * 'isIllegalOperation' if @hdl@ has buffered read data, and is not---    seekable.+--  * 'System.IO.Error.isIllegalOperation' if @hdl@ has buffered read data, and+--    is not seekable.  hFlushAll :: Handle -> IO () hFlushAll handle = withHandle_ "hFlushAll" handle flushBuffer@@ -358,7 +358,8 @@ -- -- This operation may fail with: -----  * 'isPermissionError' if a system resource limit would be exceeded.+--  * 'System.IO.Error.isPermissionError' if a system resource limit would be+--    exceeded.  hSetPosn :: HandlePosn -> IO () hSetPosn (HandlePosn h i) = hSeek h AbsoluteSeek i@@ -391,10 +392,11 @@ -- -- This operation may fail with: -----  * 'isIllegalOperationError' if the Handle is not seekable, or does---     not support the requested seek mode.+--  * 'System.IO.Error.isIllegalOperationError' if the Handle is not seekable,+--    or does not support the requested seek mode. -----  * 'isPermissionError' if a system resource limit would be exceeded.+--  * 'System.IO.Error.isPermissionError' if a system resource limit would be+--    exceeded.  hSeek :: Handle -> SeekMode -> Integer -> IO () hSeek handle mode offset =@@ -425,7 +427,7 @@ -- -- This operation may fail with: -----  * 'isIllegalOperationError' if the Handle is not seekable.+--  * 'System.IO.Error.isIllegalOperationError' if the Handle is not seekable. -- hTell :: Handle -> IO Integer hTell handle =
GHC/IO/Handle/FD.hs view
@@ -128,11 +128,15 @@ -- -- This operation may fail with: -----  * 'isAlreadyInUseError' if the file is already open and cannot be reopened;+--  * 'System.IO.Error.isAlreadyInUseError' if the file is already open and+--    cannot be reopened; -----  * 'isDoesNotExistError' if the file does not exist; or+--  * 'System.IO.Error.isDoesNotExistError' if the file does not exist or+--    (on POSIX systems) is a FIFO without a reader and 'WriteMode' was+--    requested; or -----  * 'isPermissionError' if the user does not have permission to open the file.+--  * 'System.IO.Error.isPermissionError' if the user does not have permission+--     to open the file. -- -- Note: if you will be working with files containing binary data, you'll want to -- be using 'openBinaryFile'.@@ -161,7 +165,7 @@ -- this is undesirable; also, as usual under Microsoft operating systems, -- text mode treats control-Z as EOF.  Binary mode turns off all special -- treatment of end-of-line and end-of-file characters.--- (See also 'hSetBinaryMode'.)+-- (See also 'System.IO.hSetBinaryMode'.)  openBinaryFile :: FilePath -> IOMode -> IO Handle openBinaryFile fp m =
GHC/IO/Handle/Internals.hs view
@@ -7,7 +7,7 @@   #-} {-# OPTIONS_GHC -Wno-unused-matches #-} {-# OPTIONS_GHC -Wno-name-shadowing #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/IO/Handle/Lock.hsc view
@@ -100,6 +100,8 @@ hTryLock h mode = lockImpl h "hTryLock" mode False  -- | Release a lock taken with 'hLock' or 'hTryLock'.+--+-- @since 4.11.0.0 hUnlock :: Handle -> IO () hUnlock = unlockImpl 
GHC/IO/Handle/Text.hs view
@@ -8,7 +8,7 @@   #-} {-# OPTIONS_GHC -Wno-name-shadowing #-} {-# OPTIONS_GHC -Wno-unused-matches #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -353,10 +353,10 @@ -- list returned by 'hGetContents' @hdl@. -- -- Any operation that fails because a handle is closed,--- also fails if a handle is semi-closed.  The only exception is 'hClose'.--- A semi-closed handle becomes closed:+-- also fails if a handle is semi-closed.  The only exception is+-- 'System.IO.hClose'.  A semi-closed handle becomes closed: -----  * if 'hClose' is applied to it;+--  * if 'System.IO.hClose' is applied to it; -- --  * if an I\/O error occurs when reading an item from the handle; --@@ -684,7 +684,7 @@ -- 'hPutBuf' ignores any text encoding that applies to the 'Handle', -- writing the bytes directly to the underlying file or device. ----- 'hPutBuf' ignores the prevailing 'TextEncoding' and+-- 'hPutBuf' ignores the prevailing 'System.IO.TextEncoding' and -- 'NewlineMode' on the 'Handle', and writes bytes directly. -- -- This operation may fail with:@@ -804,11 +804,11 @@ -- If the handle is a pipe or socket, and the writing end -- is closed, 'hGetBuf' will behave as if EOF was reached. ----- 'hGetBuf' ignores the prevailing 'TextEncoding' and 'NewlineMode'+-- 'hGetBuf' ignores the prevailing 'System.IO.TextEncoding' and 'NewlineMode' -- on the 'Handle', and reads bytes directly.  hGetBuf :: Handle -> Ptr a -> Int -> IO Int-hGetBuf h ptr count+hGetBuf h !ptr count   | count == 0 = return 0   | count <  0 = illegalBufferSize h "hGetBuf" count   | otherwise =@@ -886,11 +886,11 @@ -- If the handle is a pipe or socket, and the writing end -- is closed, 'hGetBufSome' will behave as if EOF was reached. ----- 'hGetBufSome' ignores the prevailing 'TextEncoding' and 'NewlineMode'--- on the 'Handle', and reads bytes directly.+-- 'hGetBufSome' ignores the prevailing 'System.IO.TextEncoding' and+-- 'NewlineMode' on the 'Handle', and reads bytes directly.  hGetBufSome :: Handle -> Ptr a -> Int -> IO Int-hGetBufSome h ptr count+hGetBufSome h !ptr count   | count == 0 = return 0   | count <  0 = illegalBufferSize h "hGetBufSome" count   | otherwise =@@ -928,14 +928,14 @@ -- If the handle is a pipe or socket, and the writing end -- is closed, 'hGetBufNonBlocking' will behave as if EOF was reached. ----- 'hGetBufNonBlocking' ignores the prevailing 'TextEncoding' and+-- 'hGetBufNonBlocking' ignores the prevailing 'System.IO.TextEncoding' and -- 'NewlineMode' on the 'Handle', and reads bytes directly. -- -- NOTE: on Windows, this function does not work correctly; it -- behaves identically to 'hGetBuf'.  hGetBufNonBlocking :: Handle -> Ptr a -> Int -> IO Int-hGetBufNonBlocking h ptr count+hGetBufNonBlocking h !ptr count   | count == 0 = return 0   | count <  0 = illegalBufferSize h "hGetBufNonBlocking" count   | otherwise =
GHC/IO/Handle/Types.hs view
@@ -4,7 +4,7 @@            , ExistentialQuantification   #-} {-# OPTIONS_GHC -funbox-strict-fields #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -351,8 +351,8 @@ -- Newline translation  -- | The representation of a newline in the external file or stream.-data Newline = LF    -- ^ '\n'-             | CRLF  -- ^ '\r\n'+data Newline = LF    -- ^ @\'\\n\'@+             | CRLF  -- ^ @\'\\r\\n\'@              deriving ( Eq   -- ^ @since 4.2.0.0                       , Ord  -- ^ @since 4.3.0.0                       , Read -- ^ @since 4.3.0.0@@ -361,9 +361,9 @@  -- | Specifies the translation, if any, of newline characters between -- internal Strings and the external file or stream.  Haskell Strings--- are assumed to represent newlines with the '\n' character; the--- newline mode specifies how to translate '\n' on output, and what to--- translate into '\n' on input.+-- are assumed to represent newlines with the @\'\\n\'@ character; the+-- newline mode specifies how to translate @\'\\n\'@ on output, and what to+-- translate into @\'\\n\'@ on input. data NewlineMode   = NewlineMode { inputNL :: Newline,                     -- ^ the representation of newlines on input@@ -385,7 +385,7 @@ nativeNewline = LF #endif --- | Map '\r\n' into '\n' on input, and '\n' to the native newline+-- | Map @\'\\r\\n\'@ into @\'\\n\'@ on input, and @\'\\n\'@ to the native newline -- represetnation on output.  This mode can be used on any platform, and -- works with text files using any newline convention.  The downside is -- that @readFile >>= writeFile@ might yield a different file.
GHC/IO/IOMode.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE NoImplicitPrelude #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/IO/Unsafe.hs view
@@ -3,7 +3,7 @@            , MagicHash            , UnboxedTuples   #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -96,7 +96,8 @@ it gives the same results each time. It may even happen that one of the duplicated IO actions is only run partially, and then interrupted in the middle without an exception being raised. Therefore, functions-like 'bracket' cannot be used safely within 'unsafeDupablePerformIO'.+like 'Control.Exception.bracket' cannot be used safely within+'unsafeDupablePerformIO'.  @since 4.4.0.0 -}
GHC/IOArray.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE Unsafe #-} {-# LANGUAGE NoImplicitPrelude, RoleAnnotations #-} {-# OPTIONS_GHC -funbox-strict-fields #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/IORef.hs view
@@ -1,7 +1,8 @@ {-# LANGUAGE Unsafe #-} {-# LANGUAGE NoImplicitPrelude, MagicHash #-}-{-# OPTIONS_GHC -funbox-strict-fields #-}-{-# OPTIONS_HADDOCK hide #-}+{-# LANGUAGE UnboxedTuples #-}+{-# LANGUAGE BangPatterns #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -19,7 +20,9 @@  module GHC.IORef (         IORef(..),-        newIORef, readIORef, writeIORef, atomicModifyIORef+        newIORef, readIORef, writeIORef, atomicModifyIORef2Lazy,+        atomicModifyIORef2, atomicModifyIORefLazy_, atomicModifyIORef'_,+        atomicModifyIORefP, atomicSwapIORef, atomicModifyIORef'     ) where  import GHC.Base@@ -31,10 +34,10 @@  -- |A mutable variable in the 'IO' monad newtype IORef a = IORef (STRef RealWorld a)-  deriving Eq -- ^ @since 4.2.0.0+  deriving Eq   -- ^ Pointer equality.   ---  -- @since 4.1.0.0+  -- @since 4.0.0.0  -- |Build a new 'IORef' newIORef    :: a -> IO (IORef a)@@ -48,6 +51,120 @@ writeIORef  :: IORef a -> a -> IO () writeIORef (IORef var) v = stToIO (writeSTRef var v) -atomicModifyIORef :: IORef a -> (a -> (a,b)) -> IO b-atomicModifyIORef (IORef (STRef r#)) f = IO $ \s -> atomicModifyMutVar# r# f s+-- 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.+-- As a result, this can lead to memory leaks. It is generally better+-- to use 'atomicModifyIORef2'.+atomicModifyIORef2Lazy :: IORef a -> (a -> (a,b)) -> IO (a, (a, b))+atomicModifyIORef2Lazy (IORef (STRef r#)) f =+  IO (\s -> case atomicModifyMutVar2# r# f s of+              (# s', old, res #) -> (# s', (old, res) #)) +-- 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,+-- but neither of its components is.+atomicModifyIORef2 :: IORef a -> (a -> (a,b)) -> IO (a, (a, b))+atomicModifyIORef2 ref f = do+  r@(_old, (_new, _res)) <- atomicModifyIORef2Lazy ref f+  return r++-- | A version of 'Data.IORef.atomicModifyIORef' that forces+-- the (pair) result of the function.+atomicModifyIORefP :: IORef a -> (a -> (a,b)) -> IO b+atomicModifyIORefP ref f = do+  (_old, (_,r)) <- atomicModifyIORef2 ref f+  pure r++-- | Atomically apply a function to the contents of an+-- 'IORef' and return the old and new values. The result+-- of the function is not forced. As this can lead to a+-- memory leak, it is usually better to use `atomicModifyIORef'_`.+atomicModifyIORefLazy_ :: IORef a -> (a -> a) -> IO (a, a)+atomicModifyIORefLazy_ (IORef (STRef ref)) f = IO $ \s ->+  case atomicModifyMutVar_# ref f s of+    (# s', old, new #) -> (# s', (old, new) #)++-- | Atomically apply a function to the contents of an+-- 'IORef' and return the old and new values. The result+-- of the function is forced.+atomicModifyIORef'_ :: IORef a -> (a -> a) -> IO (a, a)+atomicModifyIORef'_ ref f = do+  (old, !new) <- atomicModifyIORefLazy_ ref f+  return (old, new)++-- | Atomically replace the contents of an 'IORef', returning+-- the old contents.+atomicSwapIORef :: IORef a -> a -> IO a+-- Bad implementation! This will be a primop shortly.+atomicSwapIORef (IORef (STRef ref)) new = IO $ \s ->+  case atomicModifyMutVar2# ref (\_old -> Box new) s of+    (# s', old, Box _new #) -> (# s', old #)++data Box a = Box a++-- | Strict version of 'Data.IORef.atomicModifyIORef'. This forces both+-- the value stored in the 'IORef' and the value returned. The new value+-- is installed in the 'IORef' before the returned value is forced.+-- So+--+-- @atomicModifyIORef' ref (\x -> (x+1, undefined))@+--+-- will increment the 'IORef' and then throw an exception in the calling+-- thread.+--+-- @since 4.6.0.0+atomicModifyIORef' :: IORef a -> (a -> (a,b)) -> IO b+-- See Note [atomicModifyIORef' definition]+atomicModifyIORef' ref f = do+  (_old, (_new, !res)) <- atomicModifyIORef2 ref $+    \old -> case f old of+       r@(!_new, _res) -> r+  pure res++-- Note [atomicModifyIORef' definition]+-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+--+-- atomicModifyIORef' was historically defined+--+--    atomicModifyIORef' ref f = do+--        b <- atomicModifyIORef ref $ \a ->+--                case f a of+--                    v@(a',_) -> a' `seq` v+--        b `seq` return b+--+-- The most obvious definition, now that we have atomicModifyMutVar2#,+-- would be+--+--    atomicModifyIORef' ref f = do+--      (_old, (!_new, !res)) <- atomicModifyIORef2 ref f+--      pure res+--+-- Why do we force the new value on the "inside" instead of afterwards?+-- I initially thought the latter would be okay, but then I realized+-- that if we write+--+--   atomicModifyIORef' ref $ \x -> (x + 5, x - 5)+--+-- then we'll end up building a pair of thunks to calculate x + 5+-- and x - 5. That's no good! With the more complicated definition,+-- we avoid this problem; the result pair is strict in the new IORef+-- contents. Of course, if the function passed to atomicModifyIORef'+-- doesn't inline, we'll build a closure for it. But that was already+-- true for the historical definition of atomicModifyIORef' (in terms+-- of atomicModifyIORef), so we shouldn't lose anything. Note that+-- in keeping with the historical behavior, we *don't* propagate the+-- strict demand on the result inwards. In particular,+--+--   atomicModifyIORef' ref (\x -> (x + 1, undefined))+--+-- will increment the IORef and throw an exception; it will not+-- install an undefined value in the IORef.+--+-- A clearer version, in my opinion (but one quite incompatible with+-- the traditional one) would only force the new IORef value and not+-- the result. This version would have been relatively inefficient+-- to implement using atomicModifyMutVar#, but is just fine now.
GHC/Int.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, NoImplicitPrelude, BangPatterns, MagicHash, UnboxedTuples,              StandaloneDeriving, NegativeLiterals #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -185,9 +185,13 @@     (I8# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#) = I8# (narrow8Int# (x# `iShiftL#` i#))         | otherwise           = I8# (x# `iShiftRA#` negateInt# i#)-    (I8# x#) `shiftL`       (I# i#) = I8# (narrow8Int# (x# `iShiftL#` i#))+    (I8# x#) `shiftL`       (I# i#)+        | isTrue# (i# >=# 0#) = I8# (narrow8Int# (x# `iShiftL#` i#))+        | otherwise           = overflowError     (I8# x#) `unsafeShiftL` (I# i#) = I8# (narrow8Int# (x# `uncheckedIShiftL#` i#))-    (I8# x#) `shiftR`       (I# i#) = I8# (x# `iShiftRA#` i#)+    (I8# x#) `shiftR`       (I# i#)+        | isTrue# (i# >=# 0#) = I8# (x# `iShiftRA#` i#)+        | otherwise           = overflowError     (I8# x#) `unsafeShiftR` (I# i#) = I8# (x# `uncheckedIShiftRA#` i#)     (I8# x#) `rotate` (I# i#)         | isTrue# (i'# ==# 0#)@@ -385,9 +389,13 @@     (I16# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#)  = I16# (narrow16Int# (x# `iShiftL#` i#))         | otherwise            = I16# (x# `iShiftRA#` negateInt# i#)-    (I16# x#) `shiftL`       (I# i#) = I16# (narrow16Int# (x# `iShiftL#` i#))+    (I16# x#) `shiftL`       (I# i#)+        | isTrue# (i# >=# 0#)  = I16# (narrow16Int# (x# `iShiftL#` i#))+        | otherwise            = overflowError     (I16# x#) `unsafeShiftL` (I# i#) = I16# (narrow16Int# (x# `uncheckedIShiftL#` i#))-    (I16# x#) `shiftR`       (I# i#) = I16# (x# `iShiftRA#` i#)+    (I16# x#) `shiftR`       (I# i#)+        | isTrue# (i# >=# 0#)  = I16# (x# `iShiftRA#` i#)+        | otherwise            = overflowError     (I16# x#) `unsafeShiftR` (I# i#) = I16# (x# `uncheckedIShiftRA#` i#)     (I16# x#) `rotate` (I# i#)         | isTrue# (i'# ==# 0#)@@ -587,10 +595,14 @@     (I32# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#)  = I32# (narrow32Int# (x# `iShiftL#` i#))         | otherwise            = I32# (x# `iShiftRA#` negateInt# i#)-    (I32# x#) `shiftL`       (I# i#) = I32# (narrow32Int# (x# `iShiftL#` i#))+    (I32# x#) `shiftL`       (I# i#)+        | isTrue# (i# >=# 0#)  = I32# (narrow32Int# (x# `iShiftL#` i#))+        | otherwise            = overflowError     (I32# x#) `unsafeShiftL` (I# i#) =         I32# (narrow32Int# (x# `uncheckedIShiftL#` i#))-    (I32# x#) `shiftR`       (I# i#) = I32# (x# `iShiftRA#` i#)+    (I32# x#) `shiftR`       (I# i#)+        | isTrue# (i# >=# 0#)  = I32# (x# `iShiftRA#` i#)+        | otherwise            = overflowError     (I32# x#) `unsafeShiftR` (I# i#) = I32# (x# `uncheckedIShiftRA#` i#)     (I32# x#) `rotate` (I# i#)         | isTrue# (i'# ==# 0#)@@ -821,9 +833,13 @@     (I64# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#)  = I64# (x# `iShiftL64#` i#)         | otherwise            = I64# (x# `iShiftRA64#` negateInt# i#)-    (I64# x#) `shiftL` (I# i#) = I64# (x# `iShiftL64#` i#)+    (I64# x#) `shiftL` (I# i#)+        | isTrue# (i# >=# 0#)  = I64# (x# `iShiftL64#` i#)+        | otherwise            = overflowError     (I64# x#) `unsafeShiftL` (I# i#) = I64# (x# `uncheckedIShiftL64#` i#)-    (I64# x#) `shiftR` (I# i#) = I64# (x# `iShiftRA64#` i#)+    (I64# x#) `shiftR` (I# i#)+        | isTrue# (i# >=# 0#)  = I64# (x# `iShiftRA64#` i#)+        | otherwise            = overflowError     (I64# x#) `unsafeShiftR` (I# i#) = I64# (x# `uncheckedIShiftRA64#` i#)     (I64# x#) `rotate` (I# i#)         | isTrue# (i'# ==# 0#)@@ -994,9 +1010,13 @@     (I64# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#)  = I64# (x# `iShiftL#` i#)         | otherwise            = I64# (x# `iShiftRA#` negateInt# i#)-    (I64# x#) `shiftL`       (I# i#) = I64# (x# `iShiftL#` i#)+    (I64# x#) `shiftL`       (I# i#)+        | isTrue# (i# >=# 0#)  = I64# (x# `iShiftL#` i#)+        | otherwise            = overflowError     (I64# x#) `unsafeShiftL` (I# i#) = I64# (x# `uncheckedIShiftL#` i#)-    (I64# x#) `shiftR`       (I# i#) = I64# (x# `iShiftRA#` i#)+    (I64# x#) `shiftR`       (I# i#)+        | isTrue# (i# >=# 0#)  = I64# (x# `iShiftRA#` i#)+        | otherwise            = overflowError     (I64# x#) `unsafeShiftR` (I# i#) = I64# (x# `uncheckedIShiftRA#` i#)     (I64# x#) `rotate` (I# i#)         | isTrue# (i'# ==# 0#)
GHC/List.hs view
@@ -44,7 +44,7 @@ -- List-manipulation functions -------------------------------------------------------------- --- | Extract the first element of a list, which must be non-empty.+-- | /O(1)/. Extract the first element of a list, which must be non-empty. head                    :: [a] -> a head (x:_)              =  x head []                 =  badHead@@ -62,7 +62,7 @@                 head (augment g xs) = g (\x _ -> x) (head xs)  #-} --- | Decompose a list into its head and tail. If the list is empty,+-- | /O(1)/. Decompose a list into its head and tail. If the list is empty, -- returns 'Nothing'. If the list is non-empty, returns @'Just' (x, xs)@, -- where @x@ is the head of the list and @xs@ its tail. --@@ -71,12 +71,14 @@ uncons []               = Nothing uncons (x:xs)           = Just (x, xs) --- | Extract the elements after the head of a list, which must be non-empty.+-- | /O(1)/. Extract the elements after the head of a list, which must be+-- non-empty. tail                    :: [a] -> [a] tail (_:xs)             =  xs tail []                 =  errorEmptyList "tail" --- | Extract the last element of a list, which must be finite and non-empty.+-- | /O(n)/. Extract the last element of a list, which must be finite and+-- non-empty. last                    :: [a] -> a #if defined(USE_REPORT_PRELUDE) last [x]                =  x@@ -94,7 +96,7 @@ lastError = errorEmptyList "last" #endif --- | Return all the elements of a list except the last one.+-- | /O(n)/. Return all the elements of a list except the last one. -- The list must be non-empty. init                    :: [a] -> [a] #if defined(USE_REPORT_PRELUDE)@@ -109,7 +111,7 @@         init' y (z:zs) = y : init' z zs #endif --- | Test whether a list is empty.+-- | /O(1)/. Test whether a list is empty. null                    :: [a] -> Bool null []                 =  True null (_:_)              =  False@@ -140,10 +142,13 @@ idLength :: Int -> Int idLength = id --- | 'filter', applied to a predicate and a list, returns the list of+-- | /O(n)/. 'filter', applied to a predicate and a list, returns the list of -- those elements that satisfy the predicate; i.e., -- -- > filter p xs = [ x | x <- xs, p x]+--+-- >>> filter odd [1, 2, 3]+-- [1,3]  {-# NOINLINE [1] filter #-} filter :: (a -> Bool) -> [a] -> [a]@@ -257,7 +262,7 @@ {-# INLINE product #-} product                 =  foldl (*) 1 --- | 'scanl' is similar to 'foldl', but returns a list of successive+-- | /O(n)/. 'scanl' is similar to 'foldl', but returns a list of successive -- reduced values from the left: -- -- > scanl f z [x1, x2, ...] == [z, z `f` x1, (z `f` x1) `f` x2, ...]@@ -295,7 +300,8 @@ constScanl = const  --- | 'scanl1' is a variant of 'scanl' that has no starting value argument:+-- | /O(n)/. 'scanl1' is a variant of 'scanl' that has no starting value+-- argument: -- -- > scanl1 f [x1, x2, ...] == [x1, x1 `f` x2, ...] @@ -303,7 +309,7 @@ scanl1 f (x:xs)         =  scanl f x xs scanl1 _ []             =  [] --- | A strictly accumulating version of 'scanl'+-- | /O(n)/. A strictly accumulating version of 'scanl' {-# NOINLINE [1] scanl' #-} scanl'           :: (b -> a -> b) -> b -> [a] -> [b] -- This peculiar form is needed to prevent scanl' from being rewritten@@ -375,7 +381,7 @@         go []             =  errorEmptyList "foldr1" {-# INLINE [0] foldr1 #-} --- | 'scanr' is the right-to-left dual of 'scanl'.+-- | /O(n)/. 'scanr' is the right-to-left dual of 'scanl'. -- Note that -- -- > head (scanr f z xs) == foldr f z xs.@@ -385,24 +391,8 @@ scanr f q0 (x:xs)       =  f x q : qs                            where qs@(q:_) = scanr f q0 xs -{-# INLINE [0] strictUncurryScanr #-}-strictUncurryScanr :: (a -> b -> c) -> (a, b) -> c-strictUncurryScanr f pair = case pair of-                              (x, y) -> f x y--{-# INLINE [0] scanrFB #-} -- See Note [Inline FB functions]-scanrFB :: (a -> b -> b) -> (b -> c -> c) -> a -> (b, c) -> (b, c)-scanrFB f c = \x (r, est) -> (f x r, r `c` est)--{-# RULES-"scanr" [~1] forall f q0 ls . scanr f q0 ls =-  build (\c n -> strictUncurryScanr c (foldr (scanrFB f c) (q0,n) ls))-"scanrList" [1] forall f q0 ls .-               strictUncurryScanr (:) (foldr (scanrFB f (:)) (q0,[]) ls) =-                 scanr f q0 ls- #-}---- | 'scanr1' is a variant of 'scanr' that has no starting value argument.+-- | /O(n)/. 'scanr1' is a variant of 'scanr' that has no starting+-- value argument. scanr1                  :: (a -> a -> a) -> [a] -> [a] scanr1 _ []             =  [] scanr1 _ [x]            =  [x]@@ -443,7 +433,7 @@ -- > iterate f x == [x, f x, f (f x), ...] -- -- Note that 'iterate' is lazy, potentially leading to thunk build-up if--- the consumer doesn't force each iterate. See 'iterate\'' for a strict+-- the consumer doesn't force each iterate. See 'iterate'' for a strict -- variant of this function. {-# NOINLINE [1] iterate #-} iterate :: (a -> a) -> a -> [a]@@ -460,7 +450,7 @@  #-}  --- | 'iterate\'' is the strict version of 'iterate'.+-- | 'iterate'' is the strict version of 'iterate'. -- -- It ensures that the result of each application of force to weak head normal -- form before proceeding.@@ -845,11 +835,14 @@  #-} #endif --- | 'lookup' @key assocs@ looks up a key in an association list.+-- | /O(n)/. 'lookup' @key assocs@ looks up a key in an association list.+--+-- >>> 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)-    | key == x          =  Just y+    | key == x           =  Just y     | otherwise         =  lookup key xys  -- | Map a function over a list and concatenate the results.@@ -926,6 +919,28 @@ "foldr2/left"   forall k z ys (g::forall b.(a->b->b)->b->b) .                   foldr2 k z (build g) ys = g (foldr2_left  k z) (\_ -> z) ys  #-}++foldr3 :: (a -> b -> c -> d -> d) -> d -> [a] -> [b] -> [c] -> d+foldr3 k z = go+  where+    go  []    _      _      = z+    go  _     []     _      = z+    go  _     _      []     = z+    go (a:as) (b:bs) (c:cs) = k a b c (go as bs cs)+{-# INLINE [0] foldr3 #-}+++foldr3_left :: (a -> b -> c -> d -> e) -> e -> a ->+               ([b] -> [c] -> d) -> [b] -> [c] -> e+foldr3_left k _z a r (b:bs) (c:cs) = k a b c (r bs cs)+foldr3_left _  z _ _  _      _     = z++-- foldr3 k n xs ys zs = foldr (foldr3_left k n) (\_ _ -> n) xs ys zs+{-# RULES+"foldr3/left"   forall k z (g::forall b.(a->b->b)->b->b).+                  foldr3 k z (build g) = g (foldr3_left k z) (\_ _ -> z)+ #-}+ -- There used to be a foldr2/right rule, allowing foldr2 to fuse with a build -- form on the right. However, this causes trouble if the right list ends in -- a bottom that is only avoided by the left list ending at that spot. That is,@@ -945,7 +960,8 @@ -- Zips for larger tuples are in the List module.  ------------------------------------------------- | 'zip' takes two lists and returns a list of corresponding pairs.+-- | /O(min(m,n))/. 'zip' takes two lists and returns a list of corresponding+-- pairs. -- -- > zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')] --@@ -959,6 +975,9 @@ -- -- > zip [] _|_ = [] -- > zip _|_ [] = _|_+--+-- 'zip' is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list. {-# NOINLINE [1] zip #-} zip :: [a] -> [b] -> [(a,b)] zip []     _bs    = []@@ -977,25 +996,42 @@ ---------------------------------------------- -- | 'zip3' takes three lists and returns a list of triples, analogous to -- 'zip'.+-- It is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list.+{-# NOINLINE [1] zip3 #-} zip3 :: [a] -> [b] -> [c] -> [(a,b,c)] -- Specification -- zip3 =  zipWith3 (,,) zip3 (a:as) (b:bs) (c:cs) = (a,b,c) : zip3 as bs cs zip3 _      _      _      = [] +{-# INLINE [0] zip3FB #-} -- See Note [Inline FB functions]+zip3FB :: ((a,b,c) -> xs -> xs') -> a -> b -> c -> xs -> xs'+zip3FB cons = \a b c r -> (a,b,c) `cons` r +{-# RULES+"zip3"       [~1] forall as bs cs. zip3 as bs cs = build (\c n -> foldr3 (zip3FB c) n as bs cs)+"zip3List"   [1]          foldr3 (zip3FB (:)) [] = zip3+ #-}+ -- The zipWith family generalises the zip family by zipping with the -- function given as the first argument, instead of a tupling function.  ------------------------------------------------- | 'zipWith' generalises 'zip' by zipping with the function given--- as the first argument, instead of a tupling function.--- For example, @'zipWith' (+)@ is applied to two lists to produce the--- list of corresponding sums.+-- | /O(min(m,n))/. 'zipWith' generalises 'zip' by zipping with the function+-- given as the first argument, instead of a tupling function. For example,+-- @'zipWith' (+)@ is applied to two lists to produce the list of corresponding+-- sums: --+-- >>> zipWith (+) [1, 2, 3] [4, 5, 6]+-- [5,7,9]+-- -- 'zipWith' is right-lazy: -- -- > zipWith f [] _|_ = []+--+-- 'zipWith' is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list. {-# NOINLINE [1] zipWith #-} zipWith :: (a->b->c) -> [a]->[b]->[c] zipWith f = go@@ -1018,11 +1054,23 @@ -- | The 'zipWith3' function takes a function which combines three -- elements, as well as three lists and returns a list of their point-wise -- combination, analogous to 'zipWith'.+-- It is capable of list fusion, but it is restricted to its+-- first list argument and its resulting list.+{-# NOINLINE [1] zipWith3 #-} zipWith3                :: (a->b->c->d) -> [a]->[b]->[c]->[d] zipWith3 z = go   where     go (a:as) (b:bs) (c:cs) = z a b c : go as bs cs     go _ _ _                = []++{-# INLINE [0] zipWith3FB #-} -- See Note [Inline FB functions]+zipWith3FB :: (d -> xs -> xs') -> (a -> b -> c -> d) -> a -> b -> c -> xs -> xs'+zipWith3FB cons func = \a b c r -> (func a b c) `cons` r++{-# RULES+"zipWith3"      [~1] forall f as bs cs.   zipWith3 f as bs cs = build (\c n -> foldr3 (zipWith3FB c f) n as bs cs)+"zipWith3List"  [1]  forall f.   foldr3 (zipWith3FB (:) f) [] = zipWith3 f+ #-}  -- | 'unzip' transforms a list of pairs into a list of first components -- and a list of second components.
GHC/MVar.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE Unsafe #-} {-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples #-} {-# OPTIONS_GHC -funbox-strict-fields #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/Maybe.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_HADDOCK not-home #-}  -- | Maybe type module GHC.Maybe@@ -6,7 +7,7 @@    ) where -import GHC.Integer () -- for build order+import GHC.Integer () -- See Note [Depend on GHC.Integer] in GHC.Base import GHC.Classes  default ()@@ -19,7 +20,7 @@ -- @'Maybe' a@ either contains a value of type @a@ (represented as @'Just' a@), -- or it is empty (represented as 'Nothing').  Using 'Maybe' is a good way to -- deal with errors or exceptional cases without resorting to drastic--- measures such as 'error'.+-- measures such as 'Prelude.error'. -- -- The 'Maybe' type is also a monad.  It is a simple kind of error -- monad, where all errors are represented by 'Nothing'.  A richer
GHC/Natural.hs view
@@ -42,19 +42,15 @@     , quotRemNatural     , quotNatural     , remNatural-#if defined(MIN_VERSION_integer_gmp)     , gcdNatural     , lcmNatural-#endif       -- * Bits     , andNatural     , orNatural     , xorNatural     , bitNatural     , testBitNatural-#if defined(MIN_VERSION_integer_gmp)     , popCountNatural-#endif     , shiftLNatural     , shiftRNatural       -- * Conversions@@ -98,6 +94,11 @@ -- --   {-# NOINLINE plusNatural #-} --+--+-- TODO: Note that some functions have commented CONSTANT_FOLDED annotations,+-- that's because the Integer counter-parts of these functions do actually have+-- a builtinRule in PrelRules, where the Natural functions do not. The plan is+-- to eventually also add builtin rules for those function on Natural. #define CONSTANT_FOLDED NOINLINE  -------------------------------------------------------------------------------@@ -127,7 +128,8 @@ -- >>> 2^100 :: Natural -- 1267650600228229401496703205376 ----- Operations whose result would be negative @'throw' ('Underflow' :: 'ArithException')@,+-- Operations whose result would be negative @'Control.Exception.throw'+-- ('Control.Exception.Underflow' :: 'Control.Exception.ArithException')@, -- -- >>> -1 :: Natural -- *** Exception: arithmetic underflow@@ -160,12 +162,12 @@ signumNatural :: Natural -> Natural signumNatural (NatS# 0##) = NatS# 0## signumNatural _           = NatS# 1##-{-# CONSTANT_FOLDED signumNatural #-}+-- {-# CONSTANT_FOLDED signumNatural #-}  negateNatural :: Natural -> Natural negateNatural (NatS# 0##) = NatS# 0## negateNatural _           = underflowError-{-# CONSTANT_FOLDED negateNatural #-}+-- {-# CONSTANT_FOLDED negateNatural #-}  -- | @since 4.10.0.0 naturalFromInteger :: Integer -> Natural@@ -206,7 +208,7 @@     (# q, r #) -> (bigNatToNatural q, NatS# r) quotRemNatural (NatJ# n) (NatJ# d) = case quotRemBigNat n d of     (# q, r #) -> (bigNatToNatural q, bigNatToNatural r)-{-# CONSTANT_FOLDED quotRemNatural #-}+-- {-# CONSTANT_FOLDED quotRemNatural #-}  quotNatural :: Natural -> Natural -> Natural quotNatural _       (NatS# 0##) = divZeroError@@ -215,7 +217,7 @@ quotNatural (NatS# n) (NatS# d) = NatS# (quotWord# n d) quotNatural (NatJ# n) (NatS# d) = bigNatToNatural (quotBigNatWord n d) quotNatural (NatJ# n) (NatJ# d) = bigNatToNatural (quotBigNat n d)-{-# CONSTANT_FOLDED quotNatural #-}+-- {-# CONSTANT_FOLDED quotNatural #-}  remNatural :: Natural -> Natural -> Natural remNatural _         (NatS# 0##) = divZeroError@@ -224,9 +226,9 @@ remNatural   (NatS# n) (NatS# d) = NatS# (remWord# n d) remNatural   (NatJ# n) (NatS# d) = NatS# (remBigNatWord n d) remNatural   (NatJ# n) (NatJ# d) = bigNatToNatural (remBigNat n d)-{-# CONSTANT_FOLDED remNatural #-}+-- {-# CONSTANT_FOLDED remNatural #-} --- | @since 4.X.0.0+-- | @since 4.12.0.0 naturalToInteger :: Natural -> Integer naturalToInteger (NatS# w)  = wordToInteger w naturalToInteger (NatJ# bn) = Jp# bn@@ -237,27 +239,27 @@ andNatural (NatS# n) (NatJ# m) = NatS# (n `and#` bigNatToWord m) andNatural (NatJ# n) (NatS# m) = NatS# (bigNatToWord n `and#` m) andNatural (NatJ# n) (NatJ# m) = bigNatToNatural (andBigNat n m)-{-# CONSTANT_FOLDED andNatural #-}+-- {-# CONSTANT_FOLDED andNatural #-}  orNatural :: Natural -> Natural -> Natural orNatural (NatS# n) (NatS# m) = NatS# (n `or#` m) orNatural (NatS# n) (NatJ# m) = NatJ# (orBigNat (wordToBigNat n) m) orNatural (NatJ# n) (NatS# m) = NatJ# (orBigNat n (wordToBigNat m)) orNatural (NatJ# n) (NatJ# m) = NatJ# (orBigNat n m)-{-# CONSTANT_FOLDED orNatural #-}+-- {-# CONSTANT_FOLDED orNatural #-}  xorNatural :: Natural -> Natural -> Natural xorNatural (NatS# n) (NatS# m) = NatS# (n `xor#` m) xorNatural (NatS# n) (NatJ# m) = NatJ# (xorBigNat (wordToBigNat n) m) xorNatural (NatJ# n) (NatS# m) = NatJ# (xorBigNat n (wordToBigNat m)) xorNatural (NatJ# n) (NatJ# m) = bigNatToNatural (xorBigNat n m)-{-# CONSTANT_FOLDED xorNatural #-}+-- {-# CONSTANT_FOLDED xorNatural #-}  bitNatural :: Int# -> Natural bitNatural i#   | isTrue# (i# <# WORD_SIZE_IN_BITS#) = NatS# (1## `uncheckedShiftL#` i#)   | True                               = NatJ# (bitBigNat i#)-{-# CONSTANT_FOLDED bitNatural #-}+-- {-# CONSTANT_FOLDED bitNatural #-}  testBitNatural :: Natural -> Int -> Bool testBitNatural (NatS# w) (I# i#)@@ -265,12 +267,12 @@       isTrue# ((w `and#` (1## `uncheckedShiftL#` i#)) `neWord#` 0##)   | True                               = False testBitNatural (NatJ# bn) (I# i#)      = testBitBigNat bn i#-{-# CONSTANT_FOLDED testBitNatural #-}+-- {-# CONSTANT_FOLDED testBitNatural #-}  popCountNatural :: Natural -> Int popCountNatural (NatS# w)  = I# (word2Int# (popCnt# w)) popCountNatural (NatJ# bn) = I# (popCountBigNat bn)-{-# CONSTANT_FOLDED popCountNatural #-}+-- {-# CONSTANT_FOLDED popCountNatural #-}  shiftLNatural :: Natural -> Int -> Natural shiftLNatural n           (I# 0#) = n@@ -280,7 +282,7 @@     = bigNatToNatural (shiftLBigNat (wordToBigNat w) i#) shiftLNatural (NatJ# bn) (I# i#)     = bigNatToNatural (shiftLBigNat bn i#)-{-# CONSTANT_FOLDED shiftLNatural #-}+-- {-# CONSTANT_FOLDED shiftLNatural #-}  shiftRNatural :: Natural -> Int -> Natural shiftRNatural n          (I# 0#) = n@@ -288,7 +290,7 @@       | isTrue# (i# >=# WORD_SIZE_IN_BITS#) = NatS# 0##       | True = NatS# (w `uncheckedShiftRL#` i#) shiftRNatural (NatJ# bn) (I# i#) = bigNatToNatural (shiftRBigNat bn i#)-{-# CONSTANT_FOLDED shiftRNatural #-}+-- {-# CONSTANT_FOLDED shiftRNatural #-}  ---------------------------------------------------------------------------- @@ -320,7 +322,8 @@ timesNatural (NatJ# x) (NatJ# y) = NatJ# (timesBigNat     x y) {-# CONSTANT_FOLDED timesNatural #-} --- | 'Natural' subtraction. May @'throw' 'Underflow'@.+-- | 'Natural' subtraction. May @'Control.Exception.throw'+-- 'Control.Exception.Underflow'@. minusNatural :: Natural -> Natural -> Natural minusNatural x         (NatS# 0##) = x minusNatural (NatS# x) (NatS# y) = case subWordC# x y of@@ -351,7 +354,7 @@     res = minusBigNat x y  -- | Convert 'BigNat' to 'Natural'.--- Throws 'Underflow' if passed a 'nullBigNat'.+-- Throws 'Control.Exception.Underflow' if passed a 'nullBigNat'. bigNatToNatural :: BigNat -> Natural bigNatToNatural bn   | isTrue# (sizeofBigNat# bn ==# 1#) = NatS# (bigNatToWord bn)@@ -393,8 +396,8 @@  -- | Type representing arbitrary-precision non-negative integers. ----- Operations whose result would be negative--- @'throw' ('Underflow' :: 'ArithException')@.+-- Operations whose result would be negative @'Control.Exception.throw'+-- ('Control.Exception.Underflow' :: 'Control.Exception.ArithException')@. -- -- @since 4.8.0.0 newtype Natural = Natural Integer -- ^ __Invariant__: non-negative 'Integer'@@ -410,15 +413,15 @@ isValidNatural :: Natural -> Bool isValidNatural (Natural i) = i >= wordToInteger 0## --- | Convert a Word# into a Natural+-- | Convert a 'Word#' into a 'Natural' ----- Built-in rule ensures that applications of this function to literal Word# are--- lifted into Natural literals.+-- Built-in rule ensures that applications of this function to literal 'Word#'+-- are lifted into 'Natural' literals. wordToNatural# :: Word# -> Natural wordToNatural# w## = Natural (wordToInteger w##) {-# CONSTANT_FOLDED wordToNatural# #-} --- | Convert a Word# into a Natural+-- | Convert a 'Word#' into a Natural -- -- In base we can't use wordToNatural# as built-in rules transform some of them -- into Natural literals. Use this function instead.@@ -432,6 +435,15 @@   | True                   = underflowError {-# INLINE naturalFromInteger #-} ++-- | Compute greatest common divisor.+gcdNatural :: Natural -> Natural -> Natural+gcdNatural (Natural n) (Natural m) = Natural (n `gcdInteger` m)++-- | Compute lowest common multiple.+lcmNatural :: Natural -> Natural -> Natural+lcmNatural (Natural n) (Natural m) = Natural (n `lcmInteger` m)+ -- | 'Natural' subtraction. Returns 'Nothing's for non-positive results. -- -- @since 4.8.0.0@@ -442,18 +454,20 @@  shiftLNatural :: Natural -> Int -> Natural shiftLNatural (Natural n) (I# i) = Natural (n `shiftLInteger` i)-{-# CONSTANT_FOLDED shiftLNatural #-}+-- {-# CONSTANT_FOLDED shiftLNatural #-}  shiftRNatural :: Natural -> Int -> Natural shiftRNatural (Natural n) (I# i) = Natural (n `shiftRInteger` i)-{-# CONSTANT_FOLDED shiftRNatural #-}+-- {-# CONSTANT_FOLDED shiftRNatural #-}  plusNatural :: Natural -> Natural -> Natural plusNatural (Natural x) (Natural y) = Natural (x `plusInteger` y) {-# CONSTANT_FOLDED plusNatural #-}  minusNatural :: Natural -> Natural -> Natural-minusNatural (Natural x) (Natural y) = Natural (x `minusInteger` y)+minusNatural (Natural x) (Natural y)+  = if z `ltInteger` wordToInteger 0## then underflowError else Natural z+  where z = x `minusInteger` y {-# CONSTANT_FOLDED minusNatural #-}  timesNatural :: Natural -> Natural -> Natural@@ -462,15 +476,15 @@  orNatural :: Natural -> Natural -> Natural orNatural (Natural x) (Natural y) = Natural (x `orInteger` y)-{-# CONSTANT_FOLDED orNatural #-}+-- {-# CONSTANT_FOLDED orNatural #-}  xorNatural :: Natural -> Natural -> Natural xorNatural (Natural x) (Natural y) = Natural (x `xorInteger` y)-{-# CONSTANT_FOLDED xorNatural #-}+-- {-# CONSTANT_FOLDED xorNatural #-}  andNatural :: Natural -> Natural -> Natural andNatural (Natural x) (Natural y) = Natural (x `andInteger` y)-{-# CONSTANT_FOLDED andNatural #-}+-- {-# CONSTANT_FOLDED andNatural #-}  naturalToInt :: Natural -> Int naturalToInt (Natural i) = I# (integerToInt i)@@ -484,27 +498,30 @@  testBitNatural :: Natural -> Int -> Bool testBitNatural (Natural n) (I# i) = testBitInteger n i-{-# CONSTANT_FOLDED testBitNatural #-}+-- {-# CONSTANT_FOLDED testBitNatural #-} +popCountNatural :: Natural -> Int+popCountNatural (Natural n) = I# (popCountInteger n)+ bitNatural :: Int# -> Natural bitNatural i#   | isTrue# (i# <# WORD_SIZE_IN_BITS#) = wordToNaturalBase (1## `uncheckedShiftL#` i#)   | True                               = Natural (1 `shiftLInteger` i#)-{-# CONSTANT_FOLDED bitNatural #-}+-- {-# CONSTANT_FOLDED bitNatural #-}  quotNatural :: Natural -> Natural -> Natural quotNatural n@(Natural x) (Natural y)    | y == wordToInteger 0## = divZeroError    | y == wordToInteger 1## = n    | True                   = Natural (x `quotInteger` y)-{-# CONSTANT_FOLDED quotNatural #-}+-- {-# CONSTANT_FOLDED quotNatural #-}  remNatural :: Natural -> Natural -> Natural remNatural (Natural x) (Natural y)    | y == wordToInteger 0## = divZeroError    | y == wordToInteger 1## = wordToNaturalBase 0##    | True                   = Natural (x `remInteger` y)-{-# CONSTANT_FOLDED remNatural #-}+-- {-# CONSTANT_FOLDED remNatural #-}  quotRemNatural :: Natural -> Natural -> (Natural, Natural) quotRemNatural n@(Natural x) (Natural y)@@ -512,19 +529,19 @@    | y == wordToInteger 1## = (n,wordToNaturalBase 0##)    | True                   = case quotRemInteger x y of       (# k, r #) -> (Natural k, Natural r)-{-# CONSTANT_FOLDED quotRemNatural #-}+-- {-# CONSTANT_FOLDED quotRemNatural #-}  signumNatural :: Natural -> Natural signumNatural (Natural x)    | x == wordToInteger 0## = wordToNaturalBase 0##    | True                   = wordToNaturalBase 1##-{-# CONSTANT_FOLDED signumNatural #-}+-- {-# CONSTANT_FOLDED signumNatural #-}  negateNatural :: Natural -> Natural negateNatural (Natural x)    | x == wordToInteger 0## = wordToNaturalBase 0##    | True                   = underflowError-{-# CONSTANT_FOLDED negateNatural #-}+-- {-# CONSTANT_FOLDED negateNatural #-}  #endif @@ -598,7 +615,7 @@ {-# CONSTANT_FOLDED mkNatural #-}  -- | Convert 'Int' to 'Natural'.--- Throws 'Underflow' when passed a negative 'Int'.+-- Throws 'Control.Exception.Underflow' when passed a negative 'Int'. intToNatural :: Int -> Natural intToNatural (I# i#)   | isTrue# (i# <# 0#) = underflowError
GHC/Num.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, NoImplicitPrelude, MagicHash, UnboxedTuples #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -24,9 +24,6 @@ import GHC.Base import GHC.Integer import GHC.Natural-#if !defined(MIN_VERSION_integer_gmp)-import {-# SOURCE #-} GHC.Exception.Type (underflowException)-#endif  infixl 7  * infixl 6  +, -@@ -36,22 +33,22 @@  -- | Basic numeric class. ----- The Haskell Report defines no laws for 'Num'. However, '(+)' and '(*)' are+-- The Haskell Report defines no laws for 'Num'. However, @('+')@ and @('*')@ are -- customarily expected to define a ring and have the following properties: ----- [__Associativity of (+)__]: @(x + y) + z@ = @x + (y + z)@--- [__Commutativity of (+)__]: @x + y@ = @y + x@--- [__@fromInteger 0@ is the additive identity__]: @x + fromInteger 0@ = @x@+-- [__Associativity of @('+')@__]: @(x + y) + z@ = @x + (y + z)@+-- [__Commutativity of @('+')@__]: @x + y@ = @y + x@+-- [__@'fromInteger' 0@ is the additive identity__]: @x + fromInteger 0@ = @x@ -- [__'negate' gives the additive inverse__]: @x + negate x@ = @fromInteger 0@--- [__Associativity of (*)__]: @(x * y) * z@ = @x * (y * z)@--- [__@fromInteger 1@ is the multiplicative identity__]:+-- [__Associativity of @('*')@__]: @(x * y) * z@ = @x * (y * z)@+-- [__@'fromInteger' 1@ is the multiplicative identity__]: -- @x * fromInteger 1@ = @x@ and @fromInteger 1 * x@ = @x@--- [__Distributivity of (*) with respect to (+)__]:+-- [__Distributivity of @('*')@ with respect to @('+')@__]: -- @a * (b + c)@ = @(a * b) + (a * c)@ and @(b + c) * a@ = @(b * a) + (c * a)@ -- -- 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--- 'Rational' do.+-- and 'Ord' implement an ordered ring. Indeed, in @base@ only 'Integer' and+-- 'Data.Ratio.Rational' do. class  Num a  where     {-# MINIMAL (+), (*), abs, signum, fromInteger, (negate | (-)) #-} @@ -125,7 +122,6 @@     abs = absInteger     signum = signumInteger -#if defined(MIN_VERSION_integer_gmp) -- | Note that `Natural`'s 'Num' instance isn't a ring: no element but 0 has an -- additive inverse. It is a semiring though. --@@ -140,25 +136,3 @@     abs = id     signum = signumNatural -#else--- | Note that `Natural`'s 'Num' instance isn't a ring: no element but 0 has an--- additive inverse. It is a semiring though.------ @since 4.8.0.0-instance Num Natural where-  Natural n + Natural m = Natural (n + m)-  {-# INLINE (+) #-}-  Natural n * Natural m = Natural (n * m)-  {-# INLINE (*) #-}-  Natural n - Natural m-      | m > n     = raise# underflowException-      | otherwise = Natural (n - m)-  {-# INLINE (-) #-}-  abs (Natural n) = Natural n-  {-# INLINE abs #-}-  signum (Natural n) = Natural (signum n)-  {-# INLINE signum #-}-  fromInteger = naturalFromInteger-  {-# INLINE fromInteger #-}--#endif
GHC/Pack.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Unsafe #-} {-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/Ptr.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Unsafe #-} {-# LANGUAGE CPP, NoImplicitPrelude, MagicHash, RoleAnnotations #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/RTS/Flags.hsc view
@@ -51,7 +51,7 @@ import GHC.Real import GHC.Show --- | @'Time'@ is defined as a @'StgWord64'@ in @stg/Types.h@+-- | 'RtsTime' is defined as a @StgWord64@ in @stg/Types.h@ -- -- @since 4.8.2.0 type RtsTime = Word64@@ -149,21 +149,21 @@ -- -- @since 4.8.0.0 data DebugFlags = DebugFlags-    { scheduler   :: Bool -- ^ 's'-    , interpreter :: Bool -- ^ 'i'-    , weak        :: Bool -- ^ 'w'-    , gccafs      :: Bool -- ^ 'G'-    , gc          :: Bool -- ^ 'g'-    , block_alloc :: Bool -- ^ 'b'-    , sanity      :: Bool -- ^ 'S'-    , stable      :: Bool -- ^ 't'-    , prof        :: Bool -- ^ 'p'-    , linker      :: Bool -- ^ 'l' the object linker-    , apply       :: Bool -- ^ 'a'-    , stm         :: Bool -- ^ 'm'-    , squeeze     :: Bool -- ^ 'z' stack squeezing & lazy blackholing-    , hpc         :: Bool -- ^ 'c' coverage-    , sparks      :: Bool -- ^ 'r'+    { scheduler   :: Bool -- ^ @s@+    , interpreter :: Bool -- ^ @i@+    , weak        :: Bool -- ^ @w@+    , gccafs      :: Bool -- ^ @G@+    , gc          :: Bool -- ^ @g@+    , block_alloc :: Bool -- ^ @b@+    , sanity      :: Bool -- ^ @S@+    , stable      :: Bool -- ^ @t@+    , prof        :: Bool -- ^ @p@+    , linker      :: Bool -- ^ @l@ the object linker+    , apply       :: Bool -- ^ @a@+    , stm         :: Bool -- ^ @m@+    , squeeze     :: Bool -- ^ @z@ stack squeezing & lazy blackholing+    , hpc         :: Bool -- ^ @c@ coverage+    , sparks      :: Bool -- ^ @r@     } deriving ( Show -- ^ @since 4.8.0.0                ) 
GHC/Read.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, NoImplicitPrelude, StandaloneDeriving, ScopedTypeVariables #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -618,17 +618,10 @@   readList     = readListDefault  -#if defined(MIN_VERSION_integer_gmp) -- | @since 4.8.0.0 instance Read Natural where   readsPrec d = map (\(n, s) -> (fromInteger n, s))                   . filter ((>= 0) . (\(x,_)->x)) . readsPrec d-#else--- | @since 4.8.0.0-instance Read Natural where-    readsPrec d = map (\(n, s) -> (Natural n, s))-                  . filter ((>= 0) . (\(x,_)->x)) . readsPrec d-#endif  -- | @since 2.01 instance Read Float where
GHC/Real.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, NoImplicitPrelude, MagicHash, UnboxedTuples, BangPatterns #-} {-# OPTIONS_GHC -Wno-orphans #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -31,12 +31,8 @@                                    , underflowException                                    , ratioZeroDenomException ) -#if defined(OPTIMISE_INTEGER_GCD_LCM)-# if defined(MIN_VERSION_integer_gmp)+#if defined(MIN_VERSION_integer_gmp) import GHC.Integer.GMP.Internals-# else-#  error unsupported OPTIMISE_INTEGER_GCD_LCM configuration-# endif #endif  infixr 8  ^, ^^@@ -138,7 +134,7 @@ -- -- The Haskell Report defines no laws for 'Integral'. However, 'Integral' -- instances are customarily expected to define a Euclidean domain and have the--- following properties for the 'div'/'mod' and 'quot'/'rem' pairs, given+-- following properties for the `div`\/`mod` and `quot`\/`rem` pairs, given -- suitable Euclidean functions @f@ and @g@: -- -- * @x@ = @y * quot x y + rem x y@ with @rem x y@ = @fromInteger 0@ or@@ -182,21 +178,21 @@  -- | Fractional numbers, supporting real division. ----- The Haskell Report defines no laws for 'Fractional'. However, '(+)' and--- '(*)' are customarily expected to define a division ring and have the+-- The Haskell Report defines no laws for 'Fractional'. However, @('+')@ and+-- @('*')@ are customarily expected to define a division ring and have the -- following properties: -- -- [__'recip' gives the multiplicative inverse__]: -- @x * recip x@ = @recip x * x@ = @fromInteger 1@ -- -- Note that it /isn't/ customarily expected that a type instance of--- 'Fractional' implement a field. However, all instances in 'base' do.+-- 'Fractional' implement a field. However, all instances in @base@ do. class  (Num a) => Fractional a  where     {-# MINIMAL fromRational, (recip | (/)) #-} -    -- | fractional division+    -- | Fractional division.     (/)                 :: a -> a -> a-    -- | reciprocal fraction+    -- | Reciprocal fraction.     recip               :: a -> a     -- | Conversion from a 'Rational' (that is @'Ratio' 'Integer'@).     -- A floating literal stands for an application of 'fromRational'@@ -412,17 +408,9 @@ instance  Real Integer  where     toRational x        =  x :% 1 -#if defined(MIN_VERSION_integer_gmp) -- | @since 4.8.0.0 instance Real Natural where-    toRational (NatS# w)  = toRational (W# w)-    toRational (NatJ# bn) = toRational (Jp# bn)-#else--- | @since 4.8.0.0-instance Real Natural where-  toRational (Natural a) = toRational a-  {-# INLINE toRational #-}-#endif+    toRational n = naturalToInteger n :% 1  -- Note [Integer division constant folding] -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@@ -466,7 +454,6 @@     n `quotRem` d = case n `quotRemInteger` d of                       (# q, r #) -> (q, r) -#if defined(MIN_VERSION_integer_gmp) -- | @since 4.8.0.0 instance Integral Natural where     toInteger = naturalToInteger@@ -478,26 +465,6 @@     quotRem = quotRemNatural     quot    = quotNatural     rem     = remNatural-#else--- | @since 4.8.0.0-instance Integral Natural where-  quot (Natural a) (Natural b) = Natural (quot a b)-  {-# INLINE quot #-}-  rem (Natural a) (Natural b) = Natural (rem a b)-  {-# INLINE rem #-}-  div (Natural a) (Natural b) = Natural (div a b)-  {-# INLINE div #-}-  mod (Natural a) (Natural b) = Natural (mod a b)-  {-# INLINE mod #-}-  divMod (Natural a) (Natural b) = (Natural q, Natural r)-    where (q,r) = divMod a b-  {-# INLINE divMod #-}-  quotRem (Natural a) (Natural b) = (Natural q, Natural r)-    where (q,r) = quotRem a b-  {-# INLINE quotRem #-}-  toInteger (Natural a) = a-  {-# INLINE toInteger #-}-#endif  -------------------------------------------------------------- -- Instances for @Ratio@@@ -785,24 +752,27 @@ lcm 0 _         =  0 lcm x y         =  abs ((x `quot` (gcd x y)) * y) -#if defined(OPTIMISE_INTEGER_GCD_LCM) {-# RULES-"gcd/Int->Int->Int"             gcd = gcdInt' "gcd/Integer->Integer->Integer" gcd = gcdInteger "lcm/Integer->Integer->Integer" lcm = lcmInteger "gcd/Natural->Natural->Natural" gcd = gcdNatural "lcm/Natural->Natural->Natural" lcm = lcmNatural  #-} +#if defined(MIN_VERSION_integer_gmp)+-- GMP defines a more efficient Int# and Word# GCD+ gcdInt' :: Int -> Int -> Int gcdInt' (I# x) (I# y) = I# (gcdInt x y) +gcdWord' :: Word -> Word -> Word+gcdWord' (W# x) (W# y) = W# (gcdWord x y)+ {-# RULES+"gcd/Int->Int->Int"             gcd = gcdInt' "gcd/Word->Word->Word"          gcd = gcdWord'  #-} -gcdWord' :: Word -> Word -> Word-gcdWord' (W# x) (W# y) = W# (gcdWord x y) #endif  integralEnumFrom :: (Integral a, Bounded a) => a -> [a]
GHC/Records.hs view
@@ -29,6 +29,13 @@ -- | Constraint representing the fact that the field @x@ belongs to -- the record type @r@ and has field type @a@.  This will be solved -- automatically, but manual instances may be provided as well.-class HasField (x :: k) r a | x r -> a where++--   HasField :: forall {k}. k -> * -> * -> Constraint+--   getField :: forall {k} (x::k) r a. HasField x r a => r -> a+-- NB: The {k} means that k is an 'inferred' type variable, and+--     hence not provided in visible type applications.  Thus you+--     say     getField @"foo"+--     not     getField @Symbol @"foo"+class HasField x r a | x r -> a where   -- | Selector function to extract the field from the record.   getField :: r -> a
GHC/ResponseFile.hs view
@@ -48,7 +48,7 @@  @ --one 1---'two' 2+--\'two\' 2 --"three" 3 @ @@ -100,7 +100,7 @@ escapeArgs :: [String] -> String escapeArgs = unlines . map escapeArg --- | Arguments which look like '@foo' will be replaced with the+-- | Arguments which look like @\@foo@ will be replaced with the -- contents of file @foo@. A gcc-like syntax for response files arguments -- is expected.  This must re-constitute the argument list by doing an -- inverse of the escaping mechanism done by the calling-program side.
GHC/ST.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Unsafe #-} {-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples, RankNTypes #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -30,13 +30,13 @@  default () --- The state-transformer monad proper.  By default the monad is strict;+-- The 'ST' monad proper.  By default the monad is strict; -- too many people got bitten by space leaks when it was lazy. --- | The strict state-transformer monad.--- A computation of type @'ST' s a@ transforms an internal state indexed--- by @s@, and returns a value of type @a@.--- The @s@ parameter is either+-- | The strict 'ST' monad.+-- The 'ST' monad allows for destructive updates, but is escapable (unlike IO).+-- A computation of type @'ST' s a@ returns a value of type @a@, and+-- execute in "thread" @s@. The @s@ parameter is either -- -- * an uninstantiated type variable (inside invocations of 'runST'), or --@@ -131,7 +131,7 @@     showList       = showList__ (showsPrec 0)  {-# INLINE runST #-}--- | Return the value computed by a state transformer computation.+-- | Return the value computed by a state thread. -- The @forall@ ensures that the internal state used by the 'ST' -- computation is inaccessible to the rest of the program. runST :: (forall s. ST s a) -> a
GHC/STRef.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Unsafe #-} {-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/Show.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, NoImplicitPrelude, BangPatterns, StandaloneDeriving,              MagicHash, UnboxedTuples #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  #include "MachDeps.h" #if SIZEOF_HSWORD == 4@@ -53,7 +53,6 @@ import GHC.List ((!!), foldr1, break) import GHC.Num import GHC.Stack.Types-import GHC.Types (TypeLitSort (..))   -- | The @shows@ functions return a function that prepends the
GHC/Stable.hs view
@@ -3,7 +3,7 @@            , MagicHash            , UnboxedTuples   #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -57,7 +57,7 @@ -- | -- Obtain the Haskell value referenced by a stable pointer, i.e., the -- same value that was passed to the corresponding call to--- 'makeStablePtr'.  If the argument to 'deRefStablePtr' has+-- 'newStablePtr'.  If the argument to 'deRefStablePtr' has -- already been freed using 'freeStablePtr', the behaviour of -- 'deRefStablePtr' is undefined. --
GHC/Stack/Types.hs view
@@ -6,7 +6,7 @@ {-# LANGUAGE RankNTypes        #-} {-# LANGUAGE Trustworthy       #-} -{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-} -- we hide this module from haddock to enforce GHC.Stack as the main -- access point. @@ -51,9 +51,9 @@ import GHC.Types (Char, Int)  -- Make implicit dependency known to build system-import GHC.Tuple ()-import GHC.Integer ()-import GHC.Natural ()+import GHC.Tuple ()   -- See Note [Depend on GHC.Tuple] in GHC.Base+import GHC.Integer () -- See Note [Depend on GHC.Integer] in GHC.Base+import GHC.Natural () -- See Note [Depend on GHC.Natural] in GHC.Base  ---------------------------------------------------------------------- -- Explicit call-stacks built via ImplicitParams
GHC/StaticPtr.hs view
@@ -48,9 +48,7 @@   ) where  import Foreign.C.Types     (CInt(..))-import Foreign.Marshal     (allocaArray, peekArray, withArray)-import Foreign.Ptr         (castPtr)-import GHC.Exts            (addrToAny#)+import Foreign.Marshal     (allocaArray, peekArray) import GHC.Ptr             (Ptr(..), nullPtr) import GHC.Fingerprint     (Fingerprint(..)) import GHC.Prim@@ -59,7 +57,7 @@  #include "MachDeps.h" --- | A reference to a value of type 'a'.+-- | A reference to a value of type @a@. #if WORD_SIZE_IN_BITS < 64 data StaticPtr a = StaticPtr Word64# Word64# -- The flattened Fingerprint is                                              -- convenient in the compiler.@@ -72,7 +70,7 @@ deRefStaticPtr :: StaticPtr a -> a deRefStaticPtr (StaticPtr _ _ _ v) = v --- | A key for `StaticPtrs` that can be serialized and used with+-- | A key for 'StaticPtr's that can be serialized and used with -- 'unsafeLookupStaticPtr'. type StaticKey = Fingerprint @@ -89,13 +87,13 @@ -- unsafeLookupStaticPtr :: StaticKey -> IO (Maybe (StaticPtr a)) unsafeLookupStaticPtr (Fingerprint w1 w2) = do-    ptr@(Ptr addr) <- withArray [w1,w2] (hs_spt_lookup . castPtr)+    ptr@(Ptr addr) <- hs_spt_lookup w1 w2     if (ptr == nullPtr)     then return Nothing     else case addrToAny# addr of            (# spe #) -> return (Just spe) -foreign import ccall unsafe hs_spt_lookup :: Ptr () -> IO (Ptr a)+foreign import ccall unsafe hs_spt_lookup :: Word64 -> Word64 -> IO (Ptr a)  -- | A class for things buildable from static pointers. class IsStatic p where
GHC/Storable.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/TopHandler.hs view
@@ -5,7 +5,7 @@            , UnboxedTuples            , UnliftedFFITypes   #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -241,7 +241,7 @@ fastExit = exitHelper useFastExit  unreachable :: IO a-unreachable = fail "If you can read this, shutdownHaskellAndExit did not exit."+unreachable = failIO "If you can read this, shutdownHaskellAndExit did not exit."  exitHelper :: CInt -> Int -> IO a #if defined(mingw32_HOST_OS)
GHC/TypeLits.hs view
@@ -105,6 +105,9 @@ -- @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.  -- | @since 4.7.0.0 instance Eq SomeSymbol where@@ -153,7 +156,7 @@ infixl 5 :$$: infixl 6 :<>: --- | The type-level equivalent of 'error'.+-- | The type-level equivalent of 'Prelude.error'. -- -- The polymorphic kind of this type allows it to be used in several settings. -- For instance, it can be used as a constraint, e.g. to provide a better error
GHC/TypeNats.hs view
@@ -78,6 +78,65 @@ -- @since 4.10.0.0 someNatVal :: Natural -> SomeNat someNatVal n = withSNat SomeNat (SNat n) Proxy+{-# NOINLINE someNatVal #-} -- See Note [NOINLINE someNatVal]++{- Note [NOINLINE someNatVal]++`someNatVal` converts a natural number to an existentially quantified+dictionary for `KnowNat` (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`.++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.++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:++  someNatVal n = withSNat @T (SomeNat @T) (SNat @T n) (Proxy @T)+    where type T = Any Nat++After inlining and simplification, this ends up looking something like this:++  someNatVal n = SomeNat @T (KnownNat @T (SNat @T n)) (Proxy @T)+    where type T = Any Nat++`KnownNat` is the constructor for dictionaries for the class `KnownNat`.+See Note [magicDictId magic] in "basicType/MkId.hs" for details on how+we actually construct the dictionry.++Note that using `Any Nat` is not really correct, as multilple calls to+`someNatVal` would violate coherence:++  type T = Any Nat++  x = SomeNat @T (KnownNat @T (SNat @T 1)) (Proxy @T)+  y = SomeNat @T (KnownNat @T (SNat @T 2)) (Proxy @T)++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.++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.+-}++  -- | @since 4.7.0.0 instance Eq SomeNat where
GHC/Unicode.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, NoImplicitPrelude, StandaloneDeriving #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -71,7 +71,7 @@ -- >>> enumFromTo ModifierLetter SpacingCombiningMark -- [ModifierLetter,OtherLetter,NonSpacingMark,SpacingCombiningMark] ----- 'Read' instance:+-- 'Text.Read.Read' instance: -- -- >>> read "DashPunctuation" :: GeneralCategory -- DashPunctuation
GHC/Weak.hs view
@@ -5,7 +5,7 @@            , UnboxedTuples            , StandaloneDeriving   #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
GHC/Word.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, NoImplicitPrelude, BangPatterns, MagicHash, UnboxedTuples #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |@@ -177,10 +177,14 @@     (W8# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#) = W8# (narrow8Word# (x# `shiftL#` i#))         | otherwise           = W8# (x# `shiftRL#` negateInt# i#)-    (W8# x#) `shiftL`       (I# i#) = W8# (narrow8Word# (x# `shiftL#` i#))+    (W8# x#) `shiftL`       (I# i#)+        | isTrue# (i# >=# 0#) = W8# (narrow8Word# (x# `shiftL#` i#))+        | otherwise           = overflowError     (W8# x#) `unsafeShiftL` (I# i#) =         W8# (narrow8Word# (x# `uncheckedShiftL#` i#))-    (W8# x#) `shiftR`       (I# i#) = W8# (x# `shiftRL#` i#)+    (W8# x#) `shiftR`       (I# i#)+        | isTrue# (i# >=# 0#) = W8# (x# `shiftRL#` i#)+        | otherwise           = overflowError     (W8# x#) `unsafeShiftR` (I# i#) = W8# (x# `uncheckedShiftRL#` i#)     (W8# x#) `rotate`       (I# i#)         | isTrue# (i'# ==# 0#) = W8# x#@@ -361,10 +365,14 @@     (W16# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#)  = W16# (narrow16Word# (x# `shiftL#` i#))         | otherwise            = W16# (x# `shiftRL#` negateInt# i#)-    (W16# x#) `shiftL` (I# i#)       = W16# (narrow16Word# (x# `shiftL#` i#))+    (W16# x#) `shiftL`       (I# i#)+        | isTrue# (i# >=# 0#)  = W16# (narrow16Word# (x# `shiftL#` i#))+        | otherwise            = overflowError     (W16# x#) `unsafeShiftL` (I# i#) =         W16# (narrow16Word# (x# `uncheckedShiftL#` i#))-    (W16# x#) `shiftR`       (I# i#) = W16# (x# `shiftRL#` i#)+    (W16# x#) `shiftR`       (I# i#)+        | isTrue# (i# >=# 0#)  = W16# (x# `shiftRL#` i#)+        | otherwise            = overflowError     (W16# x#) `unsafeShiftR` (I# i#) = W16# (x# `uncheckedShiftRL#` i#)     (W16# x#) `rotate`       (I# i#)         | isTrue# (i'# ==# 0#) = W16# x#@@ -591,10 +599,14 @@     (W32# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#)  = W32# (narrow32Word# (x# `shiftL#` i#))         | otherwise            = W32# (x# `shiftRL#` negateInt# i#)-    (W32# x#) `shiftL`       (I# i#) = W32# (narrow32Word# (x# `shiftL#` i#))+    (W32# x#) `shiftL`       (I# i#)+        | isTrue# (i# >=# 0#)  = W32# (narrow32Word# (x# `shiftL#` i#))+        | otherwise            = overflowError     (W32# x#) `unsafeShiftL` (I# i#) =         W32# (narrow32Word# (x# `uncheckedShiftL#` i#))-    (W32# x#) `shiftR`       (I# i#) = W32# (x# `shiftRL#` i#)+    (W32# x#) `shiftR`       (I# i#)+        | isTrue# (i# >=# 0#)  = W32# (x# `shiftRL#` i#)+        | otherwise            = overflowError     (W32# x#) `unsafeShiftR` (I# i#) = W32# (x# `uncheckedShiftRL#` i#)     (W32# x#) `rotate`       (I# i#)         | isTrue# (i'# ==# 0#) = W32# x#@@ -758,9 +770,13 @@     (W64# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#)  = W64# (x# `shiftL64#` i#)         | otherwise            = W64# (x# `shiftRL64#` negateInt# i#)-    (W64# x#) `shiftL`       (I# i#) = W64# (x# `shiftL64#` i#)+    (W64# x#) `shiftL`       (I# i#)+        | isTrue# (i# >=# 0#)  = W64# (x# `shiftL64#` i#)+        | otherwise            = overflowError     (W64# x#) `unsafeShiftL` (I# i#) = W64# (x# `uncheckedShiftL64#` i#)-    (W64# x#) `shiftR`       (I# i#) = W64# (x# `shiftRL64#` i#)+    (W64# x#) `shiftR`       (I# i#)+        | isTrue# (i# >=# 0#)  = W64# (x# `shiftRL64#` i#)+        | otherwise            = overflowError     (W64# x#) `unsafeShiftR` (I# i#) = W64# (x# `uncheckedShiftRL64#` i#)     (W64# x#) `rotate` (I# i#)         | isTrue# (i'# ==# 0#) = W64# x#@@ -907,9 +923,13 @@     (W64# x#) `shift` (I# i#)         | isTrue# (i# >=# 0#)  = W64# (x# `shiftL#` i#)         | otherwise            = W64# (x# `shiftRL#` negateInt# i#)-    (W64# x#) `shiftL`       (I# i#) = W64# (x# `shiftL#` i#)+    (W64# x#) `shiftL`       (I# i#)+        | isTrue# (i# >=# 0#)  = W64# (x# `shiftL#` i#)+        | otherwise            = overflowError     (W64# x#) `unsafeShiftL` (I# i#) = W64# (x# `uncheckedShiftL#` i#)-    (W64# x#) `shiftR`       (I# i#) = W64# (x# `shiftRL#` i#)+    (W64# x#) `shiftR`       (I# i#)+        | isTrue# (i# >=# 0#)  = W64# (x# `shiftRL#` i#)+        | otherwise            = overflowError     (W64# x#) `unsafeShiftR` (I# i#) = W64# (x# `uncheckedShiftRL#` i#)     (W64# x#) `rotate` (I# i#)         | isTrue# (i'# ==# 0#) = W64# x#
Prelude.hs view
@@ -73,7 +73,8 @@     -- ** Monads and functors     Functor(fmap, (<$)), (<$>),     Applicative(pure, (<*>), (*>), (<*)),-    Monad((>>=), (>>), return, fail),+    Monad((>>=), (>>), return),+    MonadFail(fail),     mapM_, sequence_, (=<<),      -- ** Folds and traversals
System/Environment/ExecutablePath.hsc view
@@ -32,6 +32,15 @@ import Foreign.C import Foreign.Marshal.Array import System.Posix.Internals+#elif defined(freebsd_HOST_OS)+import Foreign.C+import Foreign.Marshal.Alloc+import Foreign.Marshal.Array+import Foreign.Ptr+import Foreign.Storable+import System.Posix.Internals+#include <sys/types.h>+#include <sys/sysctl.h> #elif defined(mingw32_HOST_OS) import Control.Exception import Data.List@@ -130,6 +139,45 @@             peekFilePathLen (buf,fromIntegral len)  getExecutablePath = readSymbolicLink $ "/proc/self/exe"++--------------------------------------------------------------------------------+-- FreeBSD++#elif defined(freebsd_HOST_OS)++foreign import ccall unsafe "sysctl"+  c_sysctl+    :: Ptr CInt   -- MIB+    -> CUInt      -- MIB size+    -> Ptr CChar  -- old / current value buffer+    -> Ptr CSize  -- old / current value buffer size+    -> Ptr CChar  -- new value+    -> CSize      -- new value size+    -> IO CInt    -- result++getExecutablePath = do+  withArrayLen mib $ \n mibPtr -> do+    let mibLen = fromIntegral n+    alloca $ \bufSizePtr -> do+      status <- c_sysctl mibPtr mibLen nullPtr bufSizePtr nullPtr 0+      case status of+        0 -> do+          reqBufSize <- fromIntegral <$> peek bufSizePtr+          allocaBytes reqBufSize $ \buf -> do+            newStatus <- c_sysctl mibPtr mibLen buf bufSizePtr nullPtr 0+            case newStatus of+              0 -> peekFilePath buf+              _ -> barf+        _ -> barf+  where+    barf = throwErrno "getExecutablePath"+    mib =+      [ (#const CTL_KERN)+      , (#const KERN_PROC)+      , (#const KERN_PROC_PATHNAME)+      , -1   -- current process+      ]+  -------------------------------------------------------------------------------- -- Windows
System/Exit.hs view
@@ -47,7 +47,7 @@ -- -- 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 'SomeException', and can+-- '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'.
System/IO.hs view
@@ -197,19 +197,19 @@     -- * Newline conversion      -- | In Haskell, a newline is always represented by the character-    -- '\n'.  However, in files and external character streams, a+    -- @\'\\n\'@.  However, in files and external character streams, a     -- newline may be represented by another character sequence, such-    -- as '\r\n'.+    -- as @\'\\r\\n\'@.     --     -- A text-mode 'Handle' has an associated 'NewlineMode' that     -- specifies how to transate newline characters.  The     -- 'NewlineMode' specifies the input and output translation-    -- separately, so that for instance you can translate '\r\n'-    -- to '\n' on input, but leave newlines as '\n' on output.+    -- separately, so that for instance you can translate @\'\\r\\n\'@+    -- to @\'\\n\'@ on input, but leave newlines as @\'\\n\'@ on output.     --     -- The default 'NewlineMode' for a 'Handle' is     -- 'nativeNewlineMode', which does no translation on Unix systems,-    -- but translates '\r\n' to '\n' and back on Windows.+    -- but translates @\'\\r\\n\'@ to @\'\\n\'@ and back on Windows.     --     -- Binary-mode 'Handle's do no newline translation at all.     --@@ -236,7 +236,7 @@  import GHC.Base import GHC.List-#ifndef mingw32_HOST_OS+#if !defined(mingw32_HOST_OS) import GHC.IORef #endif import GHC.Num@@ -381,7 +381,8 @@ -- --  * 'System.IO.Error.isFullError' if the device is full; or -----  * 'System.IO.Error.isPermissionError' if another system resource limit would be exceeded.+--  * 'System.IO.Error.isPermissionError' if another system resource limit+--    would be exceeded.  hPrint          :: Show a => Handle -> a -> IO () hPrint hdl      =  hPutStrLn hdl . show@@ -391,7 +392,7 @@ -- closed on exit from 'withFile', whether by normal termination or by -- raising an exception.  If closing the handle raises an exception, then -- this exception will be raised by 'withFile' rather than any exception--- raised by 'act'.+-- raised by @act@. withFile :: FilePath -> IOMode -> (Handle -> IO r) -> IO r withFile name mode = bracket (openFile name mode) hClose @@ -405,8 +406,8 @@ -- --------------------------------------------------------------------------- -- fixIO --- | The implementation of 'mfix' for 'IO'. If the function passed--- to 'fixIO' inspects its argument, the resulting action will throw+-- | The implementation of 'Control.Monad.Fix.mfix' for 'IO'. If the function+-- passed to 'fixIO' inspects its argument, the resulting action will throw -- 'FixIOException'. fixIO :: (a -> IO a) -> IO a fixIO k = do@@ -484,7 +485,7 @@               -> IO (FilePath, Handle) openTempFile' loc tmp_dir template binary mode     | pathSeparator template-    = fail $ "openTempFile': Template string must not contain path separator characters: "++template+    = failIO $ "openTempFile': Template string must not contain path separator characters: "++template     | otherwise = findTempName   where     -- We split off the last extension, so we can use .foo.ext files@@ -583,7 +584,7 @@ rand_string :: IO String rand_string = do   r1 <- c_getpid-  r2 <- atomicModifyIORef tempCounter (\n -> (n+1, n))+  (r2, _) <- atomicModifyIORef'_ tempCounter (+1)   return $ show r1 ++ "-" ++ show r2  data OpenNewFileResult
System/Posix/Internals.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE CPP, NoImplicitPrelude, CApiFFI #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-}  ----------------------------------------------------------------------------- -- |
Text/ParserCombinators/ReadP.hs view
@@ -17,7 +17,7 @@ -- This is a library of parser combinators, originally written by Koen Claessen. -- It parses all alternatives in parallel, so it never keeps hold of -- the beginning of the input string, a common source of space leaks with--- other parsers.  The '(+++)' choice combinator is genuinely commutative;+-- other parsers.  The @('+++')@ choice combinator is genuinely commutative; -- it makes no difference which branch is \"shorter\".  -----------------------------------------------------------------------------@@ -120,8 +120,6 @@   (Result x p) >>= k = k x <|> (p >>= k)   (Final r)    >>= k = final [ys' | (x,s) <- r, ys' <- run (k x) s] -  fail _ = Fail- -- | @since 4.9.0.0 instance MonadFail P where   fail _ = Fail@@ -173,7 +171,6 @@  -- | @since 2.01 instance Monad ReadP where-  fail _    = R (\_ -> Fail)   R m >>= f = R (\k -> m (\a -> let R m' = f a in m' k))  -- | @since 4.9.0.0
Text/ParserCombinators/ReadPrec.hs view
@@ -85,7 +85,6 @@  -- | @since 2.01 instance Monad ReadPrec where-  fail s    = P (\_ -> fail s)   P f >>= k = P (\n -> do a <- f n; let P f' = k a in f' n)  -- | @since 4.9.0.0
Text/Printf.hs view
@@ -14,7 +14,7 @@ -- A C @printf(3)@-like formatter. This version has been -- extended by Bart Massey as per the recommendations of -- John Meacham and Simon Marlow--- \<<http://comments.gmane.org/gmane.comp.lang.haskell.libraries/4726>\>+-- <http://comments.gmane.org/gmane.comp.lang.haskell.libraries/4726> -- to support extensible formatting for new datatypes.  It -- has also been extended to support almost all C -- @printf(3)@ syntax.@@ -107,7 +107,7 @@ -- hello, 123, 3.1416 -- -- The return value is either 'String' or @('IO' a)@ (which--- should be @('IO' '()')@, but Haskell's type system+-- should be @('IO' ())@, but Haskell's type system -- makes this hard). -- -- The format string consists of ordinary characters and@@ -115,8 +115,8 @@ -- one of the arguments to 'printf' in the output string. A -- format specification is introduced by the @%@ character; -- this character can be self-escaped into the format string--- using @%%@. A format specification ends with a /format--- character/ that provides the primary information about+-- using @%%@. A format specification ends with a+-- /format character/ that provides the primary information about -- how to format the value. The rest of the conversion -- specification is optional.  In order, one may have flag -- characters, a width specifier, a precision specifier, and@@ -423,7 +423,7 @@ -- @since 4.7.0.0 data FormatSign = SignPlus | SignSpace --- | Description of field formatting for 'formatArg'. See UNIX `printf`(3)+-- | Description of field formatting for 'formatArg'. See UNIX @printf(3)@ -- for a description of how field formatting works. -- -- @since 4.7.0.0@@ -436,7 +436,7 @@                                -- plus sign for positive                                -- numbers.   fmtAlternate :: Bool,        -- ^ Indicates an "alternate-                               -- format".  See printf(3)+                               -- format".  See @printf(3)@                                -- for the details, which                                -- vary by argument spec.   fmtModifiers :: String,      -- ^ Characters that appeared
Text/Show/Functions.hs view
@@ -15,7 +15,7 @@ -- Optional instance of 'Text.Show.Show' for functions: -- -- > instance Show (a -> b) where--- >    showsPrec _ _ = showString \"\<function\>\"+-- >    showsPrec _ _ = showString "<function>" -- ----------------------------------------------------------------------------- 
Type/Reflection.hs view
@@ -16,10 +16,10 @@ -- described by, -- -- * Simon Peyton-Jones, Stephanie Weirich, Richard Eisenberg,--- Dimitrios Vytiniotis. "A reflection on types." /Proc. Philip Wadler's 60th--- birthday Festschrift/, Edinburgh (April 2016).+-- Dimitrios Vytiniotis. "A reflection on types."+-- /Proc. Philip Wadler's 60th birthday Festschrift/, Edinburgh (April 2016). ----- The interface provides 'TypeRep', a type representation which can+-- The interface provides 'I.TypeRep', a type representation which can -- be safely decomposed and composed. See "Data.Dynamic" for an example of this. -- -- @since 4.10.0.0
Unsafe/Coerce.hs view
@@ -20,19 +20,20 @@ -- from compiler to compiler (and version to version). -- --   * Documentation for correct usage in GHC will be found under---     'unsafeCoerce#' in GHC.Base (around which 'unsafeCoerce' is just a+--     'unsafeCoerce#' in "GHC.Base" (around which 'unsafeCoerce' is just a --     trivial wrapper). -----   * In nhc98, the only representation-safe coercions are between Enum---     types with the same range (e.g. Int, Int32, Char, Word32),---     or between a newtype and the type that it wraps.+--   * In nhc98, the only representation-safe coercions are between+--     'Prelude.Enum' types with the same range (e.g. 'Prelude.Int',+--     'Data.Int.Int32', 'Prelude.Char', 'Data.Word.Word32'), or between a+--     newtype and the type that it wraps. -- -----------------------------------------------------------------------------  module Unsafe.Coerce (unsafeCoerce) where -import GHC.Integer () -- for build ordering-import GHC.Natural () -- for build ordering+import GHC.Integer () -- See Note [Depend on GHC.Integer] in GHC.Base+import GHC.Natural () -- See Note [Depend on GHC.Natural] in GHC.Base import GHC.Prim (unsafeCoerce#)  local_id :: a -> a
base.cabal view
@@ -1,12 +1,12 @@-cabal-version:  2.2+cabal-version:  3.0 name:           base-version:        4.12.0.0+version:        4.13.0.0 -- NOTE: Don't forget to update ./changelog.md  license:        BSD-3-Clause license-file:   LICENSE maintainer:     libraries@haskell.org-bug-reports:    http://ghc.haskell.org/trac/ghc/newticket?component=libraries/base+bug-reports:    https://gitlab.haskell.org/ghc/ghc/issues/new synopsis:       Basic libraries category:       Prelude build-type:     Configure@@ -41,7 +41,7 @@  source-repository head     type:     git-    location: http://git.haskell.org/ghc.git+    location: https://gitlab.haskell.org/ghc/ghc.git     subdir:   libraries/base  Flag integer-simple@@ -106,7 +106,6 @@      if flag(integer-gmp)         build-depends: integer-gmp ^>= 1.0.1-        cpp-options: -DOPTIMISE_INTEGER_GCD_LCM      exposed-modules:         Control.Applicative@@ -231,6 +230,7 @@         GHC.Foreign         GHC.ForeignPtr         GHC.GHCi+        GHC.GHCi.Helpers         GHC.Generics         GHC.IO         GHC.IO.Buffer
cbits/WCsubst.c view
@@ -1,4748 +1,5096 @@ /*------------------------------------------------------------------------- This is an automatically generated file: do not edit-Generated by ubconfc at Wed Oct 15 14:24:39 EDT 2014-@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 3073-#define NUM_CONVBLOCKS 1276-#define NUM_SPACEBLOCKS 7-#define NUM_LAT1BLOCKS 63-#define NUM_RULES 181-static const struct _convrule_ rule169={GENCAT_LU, NUMCAT_LU, 1, 0, -35332, 0};-static const struct _convrule_ rule157={GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26};-static const struct _convrule_ rule168={GENCAT_LL, NUMCAT_LL, 1, -7264, 0, -7264};-static const struct _convrule_ rule173={GENCAT_LU, NUMCAT_LU, 1, 0, -42315, 0};-static const struct _convrule_ rule129={GENCAT_LL, NUMCAT_LL, 1, 8, 0, 8};-static const struct _convrule_ rule88={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_ rule37={GENCAT_LU, NUMCAT_LU, 1, 0, 211, 0};-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_ rule121={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_ rule135={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_ rule123={GENCAT_LU, NUMCAT_LU, 1, 0, 7264, 0};-static const struct _convrule_ rule152={GENCAT_LU, NUMCAT_LU, 1, 0, 28, 0};-static const struct _convrule_ rule159={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_ rule180={GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40};-static const struct _convrule_ rule97={GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38};-static const struct _convrule_ rule95={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_ 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_ rule154={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_ rule149={GENCAT_LU, NUMCAT_LU, 1, 0, -7517, 0};-static const struct _convrule_ rule128={GENCAT_LU, NUMCAT_LU, 1, 0, -7615, 0};-static const struct _convrule_ rule98={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_ rule165={GENCAT_LU, NUMCAT_LU, 1, 0, -10783, 0};-static const struct _convrule_ rule133={GENCAT_LL, NUMCAT_LL, 1, 100, 0, 100};-static const struct _convrule_ rule96={GENCAT_LU, NUMCAT_LU, 1, 0, 63, 0};-static const struct _convrule_ rule90={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_ rule93={GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0};-static const struct _convrule_ rule99={GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31};-static const struct _convrule_ rule105={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_ rule175={GENCAT_LU, NUMCAT_LU, 1, 0, -42258, 0};-static const struct _convrule_ rule144={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_ rule132={GENCAT_LL, NUMCAT_LL, 1, 86, 0, 86};-static const struct _convrule_ rule122={GENCAT_MC, NUMCAT_MC, 0, 0, 0, 0};-static const struct _convrule_ rule126={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_ rule153={GENCAT_LL, NUMCAT_LL, 1, -28, 0, -28};-static const struct _convrule_ rule178={GENCAT_CO, NUMCAT_CO, 0, 0, 0, 0};-static const struct _convrule_ rule114={GENCAT_LL, NUMCAT_LL, 1, -96, 0, -96};-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_ rule179={GENCAT_LU, NUMCAT_LU, 1, 0, 40, 0};-static const struct _convrule_ rule124={GENCAT_NL, NUMCAT_NL, 0, 0, 0, 0};-static const struct _convrule_ rule94={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_ rule118={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_ rule30={GENCAT_LU, NUMCAT_LU, 1, 0, 206, 0};-static const struct _convrule_ rule109={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_ rule150={GENCAT_LU, NUMCAT_LU, 1, 0, -8383, 0};-static const struct _convrule_ rule120={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_ rule147={GENCAT_ZL, NUMCAT_ZL, 0, 0, 0, 0};-static const struct _convrule_ rule142={GENCAT_LU, NUMCAT_LU, 1, 0, -86, 0};-static const struct _convrule_ rule171={GENCAT_LU, NUMCAT_LU, 1, 0, -42308, 0};-static const struct _convrule_ rule162={GENCAT_LL, NUMCAT_LL, 1, -10792, 0, -10792};-static const struct _convrule_ rule166={GENCAT_LU, NUMCAT_LU, 1, 0, -10782, 0};-static const struct _convrule_ rule139={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_ rule143={GENCAT_LU, NUMCAT_LU, 1, 0, -100, 0};-static const struct _convrule_ rule125={GENCAT_LL, NUMCAT_LL, 1, 35332, 0, 35332};-static const struct _convrule_ rule141={GENCAT_LL, NUMCAT_LL, 1, -7205, 0, -7205};-static const struct _convrule_ rule138={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_ rule172={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_ rule119={GENCAT_LL, NUMCAT_LL, 1, -15, 0, -15};-static const struct _convrule_ rule110={GENCAT_LL, NUMCAT_LL, 1, -80, 0, -80};-static const struct _convrule_ rule176={GENCAT_LU, NUMCAT_LU, 1, 0, -42282, 0};-static const struct _convrule_ rule151={GENCAT_LU, NUMCAT_LU, 1, 0, -8262, 0};-static const struct _convrule_ rule130={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_ rule111={GENCAT_LL, NUMCAT_LL, 1, 7, 0, 7};-static const struct _convrule_ rule91={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_ rule92={GENCAT_LU, NUMCAT_LU, 1, 0, 116, 0};-static const struct _convrule_ rule83={GENCAT_LL, NUMCAT_LL, 1, 42282, 0, 42282};-static const struct _convrule_ rule155={GENCAT_NL, NUMCAT_NL, 1, -16, 0, -16};-static const struct _convrule_ rule102={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_ rule87={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_ rule163={GENCAT_LU, NUMCAT_LU, 1, 0, -10780, 0};-static const struct _convrule_ rule86={GENCAT_LL, NUMCAT_LL, 1, -71, 0, -71};-static const struct _convrule_ rule84={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_ rule115={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_ rule177={GENCAT_CS, NUMCAT_CS, 0, 0, 0, 0};-static const struct _convrule_ rule140={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_ rule63={GENCAT_LL, NUMCAT_LL, 1, 10782, 0, 10782};-static const struct _convrule_ rule170={GENCAT_LU, NUMCAT_LU, 1, 0, -42280, 0};-static const struct _convrule_ rule145={GENCAT_LU, NUMCAT_LU, 1, 0, -128, 0};-static const struct _convrule_ rule100={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_ rule89={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_ rule131={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_ rule148={GENCAT_ZP, NUMCAT_ZP, 0, 0, 0, 0};-static const struct _convrule_ rule101={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_ rule137={GENCAT_LT, NUMCAT_LT, 1, 0, -8, 0};-static const struct _convrule_ rule134={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_ 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_ rule103={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_ 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_ rule158={GENCAT_LU, NUMCAT_LU, 1, 0, -10743, 0};-static const struct _convrule_ rule127={GENCAT_LL, NUMCAT_LL, 1, -59, 0, -59};-static const struct _convrule_ rule113={GENCAT_LU, NUMCAT_LU, 1, 0, -60, 0};-static const struct _convrule_ rule108={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_ rule136={GENCAT_LL, NUMCAT_LL, 1, 126, 0, 126};-static const struct _convrule_ rule116={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_ rule174={GENCAT_LU, NUMCAT_LU, 1, 0, -42305, 0};-static const struct _convrule_ rule161={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_ rule107={GENCAT_LL, NUMCAT_LL, 1, -54, 0, -54};-static const struct _convrule_ rule146={GENCAT_LU, NUMCAT_LU, 1, 0, -126, 0};-static const struct _convrule_ rule104={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_ rule156={GENCAT_SO, NUMCAT_SO, 1, 0, 26, 0};-static const struct _convrule_ rule85={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_ rule112={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_ rule167={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_ rule164={GENCAT_LU, NUMCAT_LU, 1, 0, -10749, 0};-static const struct _convrule_ rule117={GENCAT_ME, NUMCAT_ME, 0, 0, 0, 0};-static const struct _convrule_ rule106={GENCAT_LL, NUMCAT_LL, 1, -47, 0, -47};-static const struct _convrule_ rule160={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, &rule20},-	{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, 2, &rule20},-	{643, 1, &rule82},-	{644, 3, &rule20},-	{647, 1, &rule83},-	{648, 1, &rule82},-	{649, 1, &rule84},-	{650, 2, &rule85},-	{652, 1, &rule86},-	{653, 5, &rule20},-	{658, 1, &rule87},-	{659, 1, &rule20},-	{660, 1, &rule14},-	{661, 9, &rule20},-	{670, 1, &rule88},-	{671, 17, &rule20},-	{688, 18, &rule89},-	{706, 4, &rule10},-	{710, 12, &rule89},-	{722, 14, &rule10},-	{736, 5, &rule89},-	{741, 7, &rule10},-	{748, 1, &rule89},-	{749, 1, &rule10},-	{750, 1, &rule89},-	{751, 17, &rule10},-	{768, 69, &rule90},-	{837, 1, &rule91},-	{838, 42, &rule90},-	{880, 1, &rule22},-	{881, 1, &rule23},-	{882, 1, &rule22},-	{883, 1, &rule23},-	{884, 1, &rule89},-	{885, 1, &rule10},-	{886, 1, &rule22},-	{887, 1, &rule23},-	{890, 1, &rule89},-	{891, 3, &rule41},-	{894, 1, &rule2},-	{895, 1, &rule92},-	{900, 2, &rule10},-	{902, 1, &rule93},-	{903, 1, &rule2},-	{904, 3, &rule94},-	{908, 1, &rule95},-	{910, 2, &rule96},-	{912, 1, &rule20},-	{913, 17, &rule9},-	{931, 9, &rule9},-	{940, 1, &rule97},-	{941, 3, &rule98},-	{944, 1, &rule20},-	{945, 17, &rule12},-	{962, 1, &rule99},-	{963, 9, &rule12},-	{972, 1, &rule100},-	{973, 2, &rule101},-	{975, 1, &rule102},-	{976, 1, &rule103},-	{977, 1, &rule104},-	{978, 3, &rule105},-	{981, 1, &rule106},-	{982, 1, &rule107},-	{983, 1, &rule108},-	{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, &rule109},-	{1009, 1, &rule110},-	{1010, 1, &rule111},-	{1011, 1, &rule112},-	{1012, 1, &rule113},-	{1013, 1, &rule114},-	{1014, 1, &rule6},-	{1015, 1, &rule22},-	{1016, 1, &rule23},-	{1017, 1, &rule115},-	{1018, 1, &rule22},-	{1019, 1, &rule23},-	{1020, 1, &rule20},-	{1021, 3, &rule53},-	{1024, 16, &rule116},-	{1040, 32, &rule9},-	{1072, 32, &rule12},-	{1104, 16, &rule110},-	{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, &rule90},-	{1160, 2, &rule117},-	{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, &rule118},-	{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, &rule119},-	{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, &rule120},-	{1369, 1, &rule89},-	{1370, 6, &rule2},-	{1377, 38, &rule121},-	{1415, 1, &rule20},-	{1417, 1, &rule2},-	{1418, 1, &rule7},-	{1421, 2, &rule13},-	{1423, 1, &rule3},-	{1425, 45, &rule90},-	{1470, 1, &rule7},-	{1471, 1, &rule90},-	{1472, 1, &rule2},-	{1473, 2, &rule90},-	{1475, 1, &rule2},-	{1476, 2, &rule90},-	{1478, 1, &rule2},-	{1479, 1, &rule90},-	{1488, 27, &rule14},-	{1520, 3, &rule14},-	{1523, 2, &rule2},-	{1536, 6, &rule16},-	{1542, 3, &rule6},-	{1545, 2, &rule2},-	{1547, 1, &rule3},-	{1548, 2, &rule2},-	{1550, 2, &rule13},-	{1552, 11, &rule90},-	{1563, 1, &rule2},-	{1564, 1, &rule16},-	{1566, 2, &rule2},-	{1568, 32, &rule14},-	{1600, 1, &rule89},-	{1601, 10, &rule14},-	{1611, 21, &rule90},-	{1632, 10, &rule8},-	{1642, 4, &rule2},-	{1646, 2, &rule14},-	{1648, 1, &rule90},-	{1649, 99, &rule14},-	{1748, 1, &rule2},-	{1749, 1, &rule14},-	{1750, 7, &rule90},-	{1757, 1, &rule16},-	{1758, 1, &rule13},-	{1759, 6, &rule90},-	{1765, 2, &rule89},-	{1767, 2, &rule90},-	{1769, 1, &rule13},-	{1770, 4, &rule90},-	{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, &rule90},-	{1810, 30, &rule14},-	{1840, 27, &rule90},-	{1869, 89, &rule14},-	{1958, 11, &rule90},-	{1969, 1, &rule14},-	{1984, 10, &rule8},-	{1994, 33, &rule14},-	{2027, 9, &rule90},-	{2036, 2, &rule89},-	{2038, 1, &rule13},-	{2039, 3, &rule2},-	{2042, 1, &rule89},-	{2048, 22, &rule14},-	{2070, 4, &rule90},-	{2074, 1, &rule89},-	{2075, 9, &rule90},-	{2084, 1, &rule89},-	{2085, 3, &rule90},-	{2088, 1, &rule89},-	{2089, 5, &rule90},-	{2096, 15, &rule2},-	{2112, 25, &rule14},-	{2137, 3, &rule90},-	{2142, 1, &rule2},-	{2208, 19, &rule14},-	{2276, 31, &rule90},-	{2307, 1, &rule122},-	{2308, 54, &rule14},-	{2362, 1, &rule90},-	{2363, 1, &rule122},-	{2364, 1, &rule90},-	{2365, 1, &rule14},-	{2366, 3, &rule122},-	{2369, 8, &rule90},-	{2377, 4, &rule122},-	{2381, 1, &rule90},-	{2382, 2, &rule122},-	{2384, 1, &rule14},-	{2385, 7, &rule90},-	{2392, 10, &rule14},-	{2402, 2, &rule90},-	{2404, 2, &rule2},-	{2406, 10, &rule8},-	{2416, 1, &rule2},-	{2417, 1, &rule89},-	{2418, 15, &rule14},-	{2433, 1, &rule90},-	{2434, 2, &rule122},-	{2437, 8, &rule14},-	{2447, 2, &rule14},-	{2451, 22, &rule14},-	{2474, 7, &rule14},-	{2482, 1, &rule14},-	{2486, 4, &rule14},-	{2492, 1, &rule90},-	{2493, 1, &rule14},-	{2494, 3, &rule122},-	{2497, 4, &rule90},-	{2503, 2, &rule122},-	{2507, 2, &rule122},-	{2509, 1, &rule90},-	{2510, 1, &rule14},-	{2519, 1, &rule122},-	{2524, 2, &rule14},-	{2527, 3, &rule14},-	{2530, 2, &rule90},-	{2534, 10, &rule8},-	{2544, 2, &rule14},-	{2546, 2, &rule3},-	{2548, 6, &rule17},-	{2554, 1, &rule13},-	{2555, 1, &rule3},-	{2561, 2, &rule90},-	{2563, 1, &rule122},-	{2565, 6, &rule14},-	{2575, 2, &rule14},-	{2579, 22, &rule14},-	{2602, 7, &rule14},-	{2610, 2, &rule14},-	{2613, 2, &rule14},-	{2616, 2, &rule14},-	{2620, 1, &rule90},-	{2622, 3, &rule122},-	{2625, 2, &rule90},-	{2631, 2, &rule90},-	{2635, 3, &rule90},-	{2641, 1, &rule90},-	{2649, 4, &rule14},-	{2654, 1, &rule14},-	{2662, 10, &rule8},-	{2672, 2, &rule90},-	{2674, 3, &rule14},-	{2677, 1, &rule90},-	{2689, 2, &rule90},-	{2691, 1, &rule122},-	{2693, 9, &rule14},-	{2703, 3, &rule14},-	{2707, 22, &rule14},-	{2730, 7, &rule14},-	{2738, 2, &rule14},-	{2741, 5, &rule14},-	{2748, 1, &rule90},-	{2749, 1, &rule14},-	{2750, 3, &rule122},-	{2753, 5, &rule90},-	{2759, 2, &rule90},-	{2761, 1, &rule122},-	{2763, 2, &rule122},-	{2765, 1, &rule90},-	{2768, 1, &rule14},-	{2784, 2, &rule14},-	{2786, 2, &rule90},-	{2790, 10, &rule8},-	{2800, 1, &rule2},-	{2801, 1, &rule3},-	{2817, 1, &rule90},-	{2818, 2, &rule122},-	{2821, 8, &rule14},-	{2831, 2, &rule14},-	{2835, 22, &rule14},-	{2858, 7, &rule14},-	{2866, 2, &rule14},-	{2869, 5, &rule14},-	{2876, 1, &rule90},-	{2877, 1, &rule14},-	{2878, 1, &rule122},-	{2879, 1, &rule90},-	{2880, 1, &rule122},-	{2881, 4, &rule90},-	{2887, 2, &rule122},-	{2891, 2, &rule122},-	{2893, 1, &rule90},-	{2902, 1, &rule90},-	{2903, 1, &rule122},-	{2908, 2, &rule14},-	{2911, 3, &rule14},-	{2914, 2, &rule90},-	{2918, 10, &rule8},-	{2928, 1, &rule13},-	{2929, 1, &rule14},-	{2930, 6, &rule17},-	{2946, 1, &rule90},-	{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, &rule122},-	{3008, 1, &rule90},-	{3009, 2, &rule122},-	{3014, 3, &rule122},-	{3018, 3, &rule122},-	{3021, 1, &rule90},-	{3024, 1, &rule14},-	{3031, 1, &rule122},-	{3046, 10, &rule8},-	{3056, 3, &rule17},-	{3059, 6, &rule13},-	{3065, 1, &rule3},-	{3066, 1, &rule13},-	{3072, 1, &rule90},-	{3073, 3, &rule122},-	{3077, 8, &rule14},-	{3086, 3, &rule14},-	{3090, 23, &rule14},-	{3114, 16, &rule14},-	{3133, 1, &rule14},-	{3134, 3, &rule90},-	{3137, 4, &rule122},-	{3142, 3, &rule90},-	{3146, 4, &rule90},-	{3157, 2, &rule90},-	{3160, 2, &rule14},-	{3168, 2, &rule14},-	{3170, 2, &rule90},-	{3174, 10, &rule8},-	{3192, 7, &rule17},-	{3199, 1, &rule13},-	{3201, 1, &rule90},-	{3202, 2, &rule122},-	{3205, 8, &rule14},-	{3214, 3, &rule14},-	{3218, 23, &rule14},-	{3242, 10, &rule14},-	{3253, 5, &rule14},-	{3260, 1, &rule90},-	{3261, 1, &rule14},-	{3262, 1, &rule122},-	{3263, 1, &rule90},-	{3264, 5, &rule122},-	{3270, 1, &rule90},-	{3271, 2, &rule122},-	{3274, 2, &rule122},-	{3276, 2, &rule90},-	{3285, 2, &rule122},-	{3294, 1, &rule14},-	{3296, 2, &rule14},-	{3298, 2, &rule90},-	{3302, 10, &rule8},-	{3313, 2, &rule14},-	{3329, 1, &rule90},-	{3330, 2, &rule122},-	{3333, 8, &rule14},-	{3342, 3, &rule14},-	{3346, 41, &rule14},-	{3389, 1, &rule14},-	{3390, 3, &rule122},-	{3393, 4, &rule90},-	{3398, 3, &rule122},-	{3402, 3, &rule122},-	{3405, 1, &rule90},-	{3406, 1, &rule14},-	{3415, 1, &rule122},-	{3424, 2, &rule14},-	{3426, 2, &rule90},-	{3430, 10, &rule8},-	{3440, 6, &rule17},-	{3449, 1, &rule13},-	{3450, 6, &rule14},-	{3458, 2, &rule122},-	{3461, 18, &rule14},-	{3482, 24, &rule14},-	{3507, 9, &rule14},-	{3517, 1, &rule14},-	{3520, 7, &rule14},-	{3530, 1, &rule90},-	{3535, 3, &rule122},-	{3538, 3, &rule90},-	{3542, 1, &rule90},-	{3544, 8, &rule122},-	{3558, 10, &rule8},-	{3570, 2, &rule122},-	{3572, 1, &rule2},-	{3585, 48, &rule14},-	{3633, 1, &rule90},-	{3634, 2, &rule14},-	{3636, 7, &rule90},-	{3647, 1, &rule3},-	{3648, 6, &rule14},-	{3654, 1, &rule89},-	{3655, 8, &rule90},-	{3663, 1, &rule2},-	{3664, 10, &rule8},-	{3674, 2, &rule2},-	{3713, 2, &rule14},-	{3716, 1, &rule14},-	{3719, 2, &rule14},-	{3722, 1, &rule14},-	{3725, 1, &rule14},-	{3732, 4, &rule14},-	{3737, 7, &rule14},-	{3745, 3, &rule14},-	{3749, 1, &rule14},-	{3751, 1, &rule14},-	{3754, 2, &rule14},-	{3757, 4, &rule14},-	{3761, 1, &rule90},-	{3762, 2, &rule14},-	{3764, 6, &rule90},-	{3771, 2, &rule90},-	{3773, 1, &rule14},-	{3776, 5, &rule14},-	{3782, 1, &rule89},-	{3784, 6, &rule90},-	{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, &rule90},-	{3866, 6, &rule13},-	{3872, 10, &rule8},-	{3882, 10, &rule17},-	{3892, 1, &rule13},-	{3893, 1, &rule90},-	{3894, 1, &rule13},-	{3895, 1, &rule90},-	{3896, 1, &rule13},-	{3897, 1, &rule90},-	{3898, 1, &rule4},-	{3899, 1, &rule5},-	{3900, 1, &rule4},-	{3901, 1, &rule5},-	{3902, 2, &rule122},-	{3904, 8, &rule14},-	{3913, 36, &rule14},-	{3953, 14, &rule90},-	{3967, 1, &rule122},-	{3968, 5, &rule90},-	{3973, 1, &rule2},-	{3974, 2, &rule90},-	{3976, 5, &rule14},-	{3981, 11, &rule90},-	{3993, 36, &rule90},-	{4030, 8, &rule13},-	{4038, 1, &rule90},-	{4039, 6, &rule13},-	{4046, 2, &rule13},-	{4048, 5, &rule2},-	{4053, 4, &rule13},-	{4057, 2, &rule2},-	{4096, 43, &rule14},-	{4139, 2, &rule122},-	{4141, 4, &rule90},-	{4145, 1, &rule122},-	{4146, 6, &rule90},-	{4152, 1, &rule122},-	{4153, 2, &rule90},-	{4155, 2, &rule122},-	{4157, 2, &rule90},-	{4159, 1, &rule14},-	{4160, 10, &rule8},-	{4170, 6, &rule2},-	{4176, 6, &rule14},-	{4182, 2, &rule122},-	{4184, 2, &rule90},-	{4186, 4, &rule14},-	{4190, 3, &rule90},-	{4193, 1, &rule14},-	{4194, 3, &rule122},-	{4197, 2, &rule14},-	{4199, 7, &rule122},-	{4206, 3, &rule14},-	{4209, 4, &rule90},-	{4213, 13, &rule14},-	{4226, 1, &rule90},-	{4227, 2, &rule122},-	{4229, 2, &rule90},-	{4231, 6, &rule122},-	{4237, 1, &rule90},-	{4238, 1, &rule14},-	{4239, 1, &rule122},-	{4240, 10, &rule8},-	{4250, 3, &rule122},-	{4253, 1, &rule90},-	{4254, 2, &rule13},-	{4256, 38, &rule123},-	{4295, 1, &rule123},-	{4301, 1, &rule123},-	{4304, 43, &rule14},-	{4347, 1, &rule2},-	{4348, 1, &rule89},-	{4349, 332, &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, &rule90},-	{4960, 9, &rule2},-	{4969, 20, &rule17},-	{4992, 16, &rule14},-	{5008, 10, &rule13},-	{5024, 85, &rule14},-	{5120, 1, &rule7},-	{5121, 620, &rule14},-	{5741, 2, &rule2},-	{5743, 17, &rule14},-	{5760, 1, &rule1},-	{5761, 26, &rule14},-	{5787, 1, &rule4},-	{5788, 1, &rule5},-	{5792, 75, &rule14},-	{5867, 3, &rule2},-	{5870, 3, &rule124},-	{5873, 8, &rule14},-	{5888, 13, &rule14},-	{5902, 4, &rule14},-	{5906, 3, &rule90},-	{5920, 18, &rule14},-	{5938, 3, &rule90},-	{5941, 2, &rule2},-	{5952, 18, &rule14},-	{5970, 2, &rule90},-	{5984, 13, &rule14},-	{5998, 3, &rule14},-	{6002, 2, &rule90},-	{6016, 52, &rule14},-	{6068, 2, &rule90},-	{6070, 1, &rule122},-	{6071, 7, &rule90},-	{6078, 8, &rule122},-	{6086, 1, &rule90},-	{6087, 2, &rule122},-	{6089, 11, &rule90},-	{6100, 3, &rule2},-	{6103, 1, &rule89},-	{6104, 3, &rule2},-	{6107, 1, &rule3},-	{6108, 1, &rule14},-	{6109, 1, &rule90},-	{6112, 10, &rule8},-	{6128, 10, &rule17},-	{6144, 6, &rule2},-	{6150, 1, &rule7},-	{6151, 4, &rule2},-	{6155, 3, &rule90},-	{6158, 1, &rule16},-	{6160, 10, &rule8},-	{6176, 35, &rule14},-	{6211, 1, &rule89},-	{6212, 52, &rule14},-	{6272, 41, &rule14},-	{6313, 1, &rule90},-	{6314, 1, &rule14},-	{6320, 70, &rule14},-	{6400, 31, &rule14},-	{6432, 3, &rule90},-	{6435, 4, &rule122},-	{6439, 2, &rule90},-	{6441, 3, &rule122},-	{6448, 2, &rule122},-	{6450, 1, &rule90},-	{6451, 6, &rule122},-	{6457, 3, &rule90},-	{6464, 1, &rule13},-	{6468, 2, &rule2},-	{6470, 10, &rule8},-	{6480, 30, &rule14},-	{6512, 5, &rule14},-	{6528, 44, &rule14},-	{6576, 17, &rule122},-	{6593, 7, &rule14},-	{6600, 2, &rule122},-	{6608, 10, &rule8},-	{6618, 1, &rule17},-	{6622, 34, &rule13},-	{6656, 23, &rule14},-	{6679, 2, &rule90},-	{6681, 2, &rule122},-	{6683, 1, &rule90},-	{6686, 2, &rule2},-	{6688, 53, &rule14},-	{6741, 1, &rule122},-	{6742, 1, &rule90},-	{6743, 1, &rule122},-	{6744, 7, &rule90},-	{6752, 1, &rule90},-	{6753, 1, &rule122},-	{6754, 1, &rule90},-	{6755, 2, &rule122},-	{6757, 8, &rule90},-	{6765, 6, &rule122},-	{6771, 10, &rule90},-	{6783, 1, &rule90},-	{6784, 10, &rule8},-	{6800, 10, &rule8},-	{6816, 7, &rule2},-	{6823, 1, &rule89},-	{6824, 6, &rule2},-	{6832, 14, &rule90},-	{6846, 1, &rule117},-	{6912, 4, &rule90},-	{6916, 1, &rule122},-	{6917, 47, &rule14},-	{6964, 1, &rule90},-	{6965, 1, &rule122},-	{6966, 5, &rule90},-	{6971, 1, &rule122},-	{6972, 1, &rule90},-	{6973, 5, &rule122},-	{6978, 1, &rule90},-	{6979, 2, &rule122},-	{6981, 7, &rule14},-	{6992, 10, &rule8},-	{7002, 7, &rule2},-	{7009, 10, &rule13},-	{7019, 9, &rule90},-	{7028, 9, &rule13},-	{7040, 2, &rule90},-	{7042, 1, &rule122},-	{7043, 30, &rule14},-	{7073, 1, &rule122},-	{7074, 4, &rule90},-	{7078, 2, &rule122},-	{7080, 2, &rule90},-	{7082, 1, &rule122},-	{7083, 3, &rule90},-	{7086, 2, &rule14},-	{7088, 10, &rule8},-	{7098, 44, &rule14},-	{7142, 1, &rule90},-	{7143, 1, &rule122},-	{7144, 2, &rule90},-	{7146, 3, &rule122},-	{7149, 1, &rule90},-	{7150, 1, &rule122},-	{7151, 3, &rule90},-	{7154, 2, &rule122},-	{7164, 4, &rule2},-	{7168, 36, &rule14},-	{7204, 8, &rule122},-	{7212, 8, &rule90},-	{7220, 2, &rule122},-	{7222, 2, &rule90},-	{7227, 5, &rule2},-	{7232, 10, &rule8},-	{7245, 3, &rule14},-	{7248, 10, &rule8},-	{7258, 30, &rule14},-	{7288, 6, &rule89},-	{7294, 2, &rule2},-	{7360, 8, &rule2},-	{7376, 3, &rule90},-	{7379, 1, &rule2},-	{7380, 13, &rule90},-	{7393, 1, &rule122},-	{7394, 7, &rule90},-	{7401, 4, &rule14},-	{7405, 1, &rule90},-	{7406, 4, &rule14},-	{7410, 2, &rule122},-	{7412, 1, &rule90},-	{7413, 2, &rule14},-	{7416, 2, &rule90},-	{7424, 44, &rule20},-	{7468, 63, &rule89},-	{7531, 13, &rule20},-	{7544, 1, &rule89},-	{7545, 1, &rule125},-	{7546, 3, &rule20},-	{7549, 1, &rule126},-	{7550, 29, &rule20},-	{7579, 37, &rule89},-	{7616, 54, &rule90},-	{7676, 4, &rule90},-	{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, &rule127},-	{7836, 2, &rule20},-	{7838, 1, &rule128},-	{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, &rule129},-	{7944, 8, &rule130},-	{7952, 6, &rule129},-	{7960, 6, &rule130},-	{7968, 8, &rule129},-	{7976, 8, &rule130},-	{7984, 8, &rule129},-	{7992, 8, &rule130},-	{8000, 6, &rule129},-	{8008, 6, &rule130},-	{8016, 1, &rule20},-	{8017, 1, &rule129},-	{8018, 1, &rule20},-	{8019, 1, &rule129},-	{8020, 1, &rule20},-	{8021, 1, &rule129},-	{8022, 1, &rule20},-	{8023, 1, &rule129},-	{8025, 1, &rule130},-	{8027, 1, &rule130},-	{8029, 1, &rule130},-	{8031, 1, &rule130},-	{8032, 8, &rule129},-	{8040, 8, &rule130},-	{8048, 2, &rule131},-	{8050, 4, &rule132},-	{8054, 2, &rule133},-	{8056, 2, &rule134},-	{8058, 2, &rule135},-	{8060, 2, &rule136},-	{8064, 8, &rule129},-	{8072, 8, &rule137},-	{8080, 8, &rule129},-	{8088, 8, &rule137},-	{8096, 8, &rule129},-	{8104, 8, &rule137},-	{8112, 2, &rule129},-	{8114, 1, &rule20},-	{8115, 1, &rule138},-	{8116, 1, &rule20},-	{8118, 2, &rule20},-	{8120, 2, &rule130},-	{8122, 2, &rule139},-	{8124, 1, &rule140},-	{8125, 1, &rule10},-	{8126, 1, &rule141},-	{8127, 3, &rule10},-	{8130, 1, &rule20},-	{8131, 1, &rule138},-	{8132, 1, &rule20},-	{8134, 2, &rule20},-	{8136, 4, &rule142},-	{8140, 1, &rule140},-	{8141, 3, &rule10},-	{8144, 2, &rule129},-	{8146, 2, &rule20},-	{8150, 2, &rule20},-	{8152, 2, &rule130},-	{8154, 2, &rule143},-	{8157, 3, &rule10},-	{8160, 2, &rule129},-	{8162, 3, &rule20},-	{8165, 1, &rule111},-	{8166, 2, &rule20},-	{8168, 2, &rule130},-	{8170, 2, &rule144},-	{8172, 1, &rule115},-	{8173, 3, &rule10},-	{8178, 1, &rule20},-	{8179, 1, &rule138},-	{8180, 1, &rule20},-	{8182, 2, &rule20},-	{8184, 2, &rule145},-	{8186, 2, &rule146},-	{8188, 1, &rule140},-	{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, &rule147},-	{8233, 1, &rule148},-	{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, &rule89},-	{8308, 6, &rule17},-	{8314, 3, &rule6},-	{8317, 1, &rule4},-	{8318, 1, &rule5},-	{8319, 1, &rule89},-	{8320, 10, &rule17},-	{8330, 3, &rule6},-	{8333, 1, &rule4},-	{8334, 1, &rule5},-	{8336, 13, &rule89},-	{8352, 30, &rule3},-	{8400, 13, &rule90},-	{8413, 4, &rule117},-	{8417, 1, &rule90},-	{8418, 3, &rule117},-	{8421, 12, &rule90},-	{8448, 2, &rule13},-	{8450, 1, &rule105},-	{8451, 4, &rule13},-	{8455, 1, &rule105},-	{8456, 2, &rule13},-	{8458, 1, &rule20},-	{8459, 3, &rule105},-	{8462, 2, &rule20},-	{8464, 3, &rule105},-	{8467, 1, &rule20},-	{8468, 1, &rule13},-	{8469, 1, &rule105},-	{8470, 2, &rule13},-	{8472, 1, &rule6},-	{8473, 5, &rule105},-	{8478, 6, &rule13},-	{8484, 1, &rule105},-	{8485, 1, &rule13},-	{8486, 1, &rule149},-	{8487, 1, &rule13},-	{8488, 1, &rule105},-	{8489, 1, &rule13},-	{8490, 1, &rule150},-	{8491, 1, &rule151},-	{8492, 2, &rule105},-	{8494, 1, &rule13},-	{8495, 1, &rule20},-	{8496, 2, &rule105},-	{8498, 1, &rule152},-	{8499, 1, &rule105},-	{8500, 1, &rule20},-	{8501, 4, &rule14},-	{8505, 1, &rule20},-	{8506, 2, &rule13},-	{8508, 2, &rule20},-	{8510, 2, &rule105},-	{8512, 5, &rule6},-	{8517, 1, &rule105},-	{8518, 4, &rule20},-	{8522, 1, &rule13},-	{8523, 1, &rule6},-	{8524, 2, &rule13},-	{8526, 1, &rule153},-	{8527, 1, &rule13},-	{8528, 16, &rule17},-	{8544, 16, &rule154},-	{8560, 16, &rule155},-	{8576, 3, &rule124},-	{8579, 1, &rule22},-	{8580, 1, &rule23},-	{8581, 4, &rule124},-	{8585, 1, &rule17},-	{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, 25, &rule13},-	{9216, 39, &rule13},-	{9280, 11, &rule13},-	{9312, 60, &rule17},-	{9372, 26, &rule13},-	{9398, 26, &rule156},-	{9424, 26, &rule157},-	{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},-	{11160, 34, &rule13},-	{11197, 12, &rule13},-	{11210, 8, &rule13},-	{11264, 47, &rule120},-	{11312, 47, &rule121},-	{11360, 1, &rule22},-	{11361, 1, &rule23},-	{11362, 1, &rule158},-	{11363, 1, &rule159},-	{11364, 1, &rule160},-	{11365, 1, &rule161},-	{11366, 1, &rule162},-	{11367, 1, &rule22},-	{11368, 1, &rule23},-	{11369, 1, &rule22},-	{11370, 1, &rule23},-	{11371, 1, &rule22},-	{11372, 1, &rule23},-	{11373, 1, &rule163},-	{11374, 1, &rule164},-	{11375, 1, &rule165},-	{11376, 1, &rule166},-	{11377, 1, &rule20},-	{11378, 1, &rule22},-	{11379, 1, &rule23},-	{11380, 1, &rule20},-	{11381, 1, &rule22},-	{11382, 1, &rule23},-	{11383, 5, &rule20},-	{11388, 2, &rule89},-	{11390, 2, &rule167},-	{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, &rule90},-	{11506, 1, &rule22},-	{11507, 1, &rule23},-	{11513, 4, &rule2},-	{11517, 1, &rule17},-	{11518, 2, &rule2},-	{11520, 38, &rule168},-	{11559, 1, &rule168},-	{11565, 1, &rule168},-	{11568, 56, &rule14},-	{11631, 1, &rule89},-	{11632, 1, &rule2},-	{11647, 1, &rule90},-	{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, &rule90},-	{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, &rule89},-	{11824, 10, &rule2},-	{11834, 2, &rule7},-	{11836, 4, &rule2},-	{11840, 1, &rule7},-	{11841, 1, &rule2},-	{11842, 1, &rule4},-	{11904, 26, &rule13},-	{11931, 89, &rule13},-	{12032, 214, &rule13},-	{12272, 12, &rule13},-	{12288, 1, &rule1},-	{12289, 3, &rule2},-	{12292, 1, &rule13},-	{12293, 1, &rule89},-	{12294, 1, &rule14},-	{12295, 1, &rule124},-	{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, &rule124},-	{12330, 4, &rule90},-	{12334, 2, &rule122},-	{12336, 1, &rule7},-	{12337, 5, &rule89},-	{12342, 2, &rule13},-	{12344, 3, &rule124},-	{12347, 1, &rule89},-	{12348, 1, &rule14},-	{12349, 1, &rule2},-	{12350, 2, &rule13},-	{12353, 86, &rule14},-	{12441, 2, &rule90},-	{12443, 2, &rule10},-	{12445, 2, &rule89},-	{12447, 1, &rule14},-	{12448, 1, &rule7},-	{12449, 90, &rule14},-	{12539, 1, &rule2},-	{12540, 3, &rule89},-	{12543, 1, &rule14},-	{12549, 41, &rule14},-	{12593, 94, &rule14},-	{12688, 2, &rule13},-	{12690, 4, &rule17},-	{12694, 10, &rule13},-	{12704, 27, &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, 63, &rule13},-	{13056, 256, &rule13},-	{13312, 6582, &rule14},-	{19904, 64, &rule13},-	{19968, 20941, &rule14},-	{40960, 21, &rule14},-	{40981, 1, &rule89},-	{40982, 1143, &rule14},-	{42128, 55, &rule13},-	{42192, 40, &rule14},-	{42232, 6, &rule89},-	{42238, 2, &rule2},-	{42240, 268, &rule14},-	{42508, 1, &rule89},-	{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, &rule90},-	{42608, 3, &rule117},-	{42611, 1, &rule2},-	{42612, 10, &rule90},-	{42622, 1, &rule2},-	{42623, 1, &rule89},-	{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, &rule89},-	{42655, 1, &rule90},-	{42656, 70, &rule14},-	{42726, 10, &rule124},-	{42736, 2, &rule90},-	{42738, 6, &rule2},-	{42752, 23, &rule10},-	{42775, 9, &rule89},-	{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, &rule89},-	{42865, 8, &rule20},-	{42873, 1, &rule22},-	{42874, 1, &rule23},-	{42875, 1, &rule22},-	{42876, 1, &rule23},-	{42877, 1, &rule169},-	{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, &rule89},-	{42889, 2, &rule10},-	{42891, 1, &rule22},-	{42892, 1, &rule23},-	{42893, 1, &rule170},-	{42894, 1, &rule20},-	{42896, 1, &rule22},-	{42897, 1, &rule23},-	{42898, 1, &rule22},-	{42899, 1, &rule23},-	{42900, 2, &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, &rule171},-	{42923, 1, &rule172},-	{42924, 1, &rule173},-	{42925, 1, &rule174},-	{42928, 1, &rule175},-	{42929, 1, &rule176},-	{42999, 1, &rule14},-	{43000, 2, &rule89},-	{43002, 1, &rule20},-	{43003, 7, &rule14},-	{43010, 1, &rule90},-	{43011, 3, &rule14},-	{43014, 1, &rule90},-	{43015, 4, &rule14},-	{43019, 1, &rule90},-	{43020, 23, &rule14},-	{43043, 2, &rule122},-	{43045, 2, &rule90},-	{43047, 1, &rule122},-	{43048, 4, &rule13},-	{43056, 6, &rule17},-	{43062, 2, &rule13},-	{43064, 1, &rule3},-	{43065, 1, &rule13},-	{43072, 52, &rule14},-	{43124, 4, &rule2},-	{43136, 2, &rule122},-	{43138, 50, &rule14},-	{43188, 16, &rule122},-	{43204, 1, &rule90},-	{43214, 2, &rule2},-	{43216, 10, &rule8},-	{43232, 18, &rule90},-	{43250, 6, &rule14},-	{43256, 3, &rule2},-	{43259, 1, &rule14},-	{43264, 10, &rule8},-	{43274, 28, &rule14},-	{43302, 8, &rule90},-	{43310, 2, &rule2},-	{43312, 23, &rule14},-	{43335, 11, &rule90},-	{43346, 2, &rule122},-	{43359, 1, &rule2},-	{43360, 29, &rule14},-	{43392, 3, &rule90},-	{43395, 1, &rule122},-	{43396, 47, &rule14},-	{43443, 1, &rule90},-	{43444, 2, &rule122},-	{43446, 4, &rule90},-	{43450, 2, &rule122},-	{43452, 1, &rule90},-	{43453, 4, &rule122},-	{43457, 13, &rule2},-	{43471, 1, &rule89},-	{43472, 10, &rule8},-	{43486, 2, &rule2},-	{43488, 5, &rule14},-	{43493, 1, &rule90},-	{43494, 1, &rule89},-	{43495, 9, &rule14},-	{43504, 10, &rule8},-	{43514, 5, &rule14},-	{43520, 41, &rule14},-	{43561, 6, &rule90},-	{43567, 2, &rule122},-	{43569, 2, &rule90},-	{43571, 2, &rule122},-	{43573, 2, &rule90},-	{43584, 3, &rule14},-	{43587, 1, &rule90},-	{43588, 8, &rule14},-	{43596, 1, &rule90},-	{43597, 1, &rule122},-	{43600, 10, &rule8},-	{43612, 4, &rule2},-	{43616, 16, &rule14},-	{43632, 1, &rule89},-	{43633, 6, &rule14},-	{43639, 3, &rule13},-	{43642, 1, &rule14},-	{43643, 1, &rule122},-	{43644, 1, &rule90},-	{43645, 1, &rule122},-	{43646, 50, &rule14},-	{43696, 1, &rule90},-	{43697, 1, &rule14},-	{43698, 3, &rule90},-	{43701, 2, &rule14},-	{43703, 2, &rule90},-	{43705, 5, &rule14},-	{43710, 2, &rule90},-	{43712, 1, &rule14},-	{43713, 1, &rule90},-	{43714, 1, &rule14},-	{43739, 2, &rule14},-	{43741, 1, &rule89},-	{43742, 2, &rule2},-	{43744, 11, &rule14},-	{43755, 1, &rule122},-	{43756, 2, &rule90},-	{43758, 2, &rule122},-	{43760, 2, &rule2},-	{43762, 1, &rule14},-	{43763, 2, &rule89},-	{43765, 1, &rule122},-	{43766, 1, &rule90},-	{43777, 6, &rule14},-	{43785, 6, &rule14},-	{43793, 6, &rule14},-	{43808, 7, &rule14},-	{43816, 7, &rule14},-	{43824, 43, &rule20},-	{43867, 1, &rule10},-	{43868, 4, &rule89},-	{43876, 2, &rule20},-	{43968, 35, &rule14},-	{44003, 2, &rule122},-	{44005, 1, &rule90},-	{44006, 2, &rule122},-	{44008, 1, &rule90},-	{44009, 2, &rule122},-	{44011, 1, &rule2},-	{44012, 1, &rule122},-	{44013, 1, &rule90},-	{44016, 10, &rule8},-	{44032, 11172, &rule14},-	{55216, 23, &rule14},-	{55243, 49, &rule14},-	{55296, 896, &rule177},-	{56192, 128, &rule177},-	{56320, 1024, &rule177},-	{57344, 6400, &rule178},-	{63744, 366, &rule14},-	{64112, 106, &rule14},-	{64256, 7, &rule20},-	{64275, 5, &rule20},-	{64285, 1, &rule14},-	{64286, 1, &rule90},-	{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, 16, &rule10},-	{64467, 363, &rule14},-	{64830, 1, &rule5},-	{64831, 1, &rule4},-	{64848, 64, &rule14},-	{64914, 54, &rule14},-	{65008, 12, &rule14},-	{65020, 1, &rule3},-	{65021, 1, &rule13},-	{65024, 16, &rule90},-	{65040, 7, &rule2},-	{65047, 1, &rule4},-	{65048, 1, &rule5},-	{65049, 1, &rule2},-	{65056, 14, &rule90},-	{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, &rule89},-	{65393, 45, &rule14},-	{65438, 2, &rule89},-	{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, &rule124},-	{65909, 4, &rule17},-	{65913, 17, &rule13},-	{65930, 2, &rule17},-	{65932, 1, &rule13},-	{65936, 12, &rule13},-	{65952, 1, &rule13},-	{66000, 45, &rule13},-	{66045, 1, &rule90},-	{66176, 29, &rule14},-	{66208, 49, &rule14},-	{66272, 1, &rule90},-	{66273, 27, &rule17},-	{66304, 32, &rule14},-	{66336, 4, &rule17},-	{66352, 17, &rule14},-	{66369, 1, &rule124},-	{66370, 8, &rule14},-	{66378, 1, &rule124},-	{66384, 38, &rule14},-	{66422, 5, &rule90},-	{66432, 30, &rule14},-	{66463, 1, &rule2},-	{66464, 36, &rule14},-	{66504, 8, &rule14},-	{66512, 1, &rule2},-	{66513, 5, &rule124},-	{66560, 40, &rule179},-	{66600, 40, &rule180},-	{66640, 78, &rule14},-	{66720, 10, &rule8},-	{66816, 40, &rule14},-	{66864, 52, &rule14},-	{66927, 1, &rule2},-	{67072, 311, &rule14},-	{67392, 22, &rule14},-	{67424, 8, &rule14},-	{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},-	{67840, 22, &rule14},-	{67862, 6, &rule17},-	{67871, 1, &rule2},-	{67872, 26, &rule14},-	{67903, 1, &rule2},-	{67968, 56, &rule14},-	{68030, 2, &rule14},-	{68096, 1, &rule14},-	{68097, 3, &rule90},-	{68101, 2, &rule90},-	{68108, 4, &rule90},-	{68112, 4, &rule14},-	{68117, 3, &rule14},-	{68121, 27, &rule14},-	{68152, 3, &rule90},-	{68159, 1, &rule90},-	{68160, 8, &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, &rule90},-	{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},-	{69216, 31, &rule17},-	{69632, 1, &rule122},-	{69633, 1, &rule90},-	{69634, 1, &rule122},-	{69635, 53, &rule14},-	{69688, 15, &rule90},-	{69703, 7, &rule2},-	{69714, 20, &rule17},-	{69734, 10, &rule8},-	{69759, 3, &rule90},-	{69762, 1, &rule122},-	{69763, 45, &rule14},-	{69808, 3, &rule122},-	{69811, 4, &rule90},-	{69815, 2, &rule122},-	{69817, 2, &rule90},-	{69819, 2, &rule2},-	{69821, 1, &rule16},-	{69822, 4, &rule2},-	{69840, 25, &rule14},-	{69872, 10, &rule8},-	{69888, 3, &rule90},-	{69891, 36, &rule14},-	{69927, 5, &rule90},-	{69932, 1, &rule122},-	{69933, 8, &rule90},-	{69942, 10, &rule8},-	{69952, 4, &rule2},-	{69968, 35, &rule14},-	{70003, 1, &rule90},-	{70004, 2, &rule2},-	{70006, 1, &rule14},-	{70016, 2, &rule90},-	{70018, 1, &rule122},-	{70019, 48, &rule14},-	{70067, 3, &rule122},-	{70070, 9, &rule90},-	{70079, 2, &rule122},-	{70081, 4, &rule14},-	{70085, 4, &rule2},-	{70093, 1, &rule2},-	{70096, 10, &rule8},-	{70106, 1, &rule14},-	{70113, 20, &rule17},-	{70144, 18, &rule14},-	{70163, 25, &rule14},-	{70188, 3, &rule122},-	{70191, 3, &rule90},-	{70194, 2, &rule122},-	{70196, 1, &rule90},-	{70197, 1, &rule122},-	{70198, 2, &rule90},-	{70200, 6, &rule2},-	{70320, 47, &rule14},-	{70367, 1, &rule90},-	{70368, 3, &rule122},-	{70371, 8, &rule90},-	{70384, 10, &rule8},-	{70401, 1, &rule90},-	{70402, 2, &rule122},-	{70405, 8, &rule14},-	{70415, 2, &rule14},-	{70419, 22, &rule14},-	{70442, 7, &rule14},-	{70450, 2, &rule14},-	{70453, 5, &rule14},-	{70460, 1, &rule90},-	{70461, 1, &rule14},-	{70462, 2, &rule122},-	{70464, 1, &rule90},-	{70465, 4, &rule122},-	{70471, 2, &rule122},-	{70475, 3, &rule122},-	{70487, 1, &rule122},-	{70493, 5, &rule14},-	{70498, 2, &rule122},-	{70502, 7, &rule90},-	{70512, 5, &rule90},-	{70784, 48, &rule14},-	{70832, 3, &rule122},-	{70835, 6, &rule90},-	{70841, 1, &rule122},-	{70842, 1, &rule90},-	{70843, 4, &rule122},-	{70847, 2, &rule90},-	{70849, 1, &rule122},-	{70850, 2, &rule90},-	{70852, 2, &rule14},-	{70854, 1, &rule2},-	{70855, 1, &rule14},-	{70864, 10, &rule8},-	{71040, 47, &rule14},-	{71087, 3, &rule122},-	{71090, 4, &rule90},-	{71096, 4, &rule122},-	{71100, 2, &rule90},-	{71102, 1, &rule122},-	{71103, 2, &rule90},-	{71105, 9, &rule2},-	{71168, 48, &rule14},-	{71216, 3, &rule122},-	{71219, 8, &rule90},-	{71227, 2, &rule122},-	{71229, 1, &rule90},-	{71230, 1, &rule122},-	{71231, 2, &rule90},-	{71233, 3, &rule2},-	{71236, 1, &rule14},-	{71248, 10, &rule8},-	{71296, 43, &rule14},-	{71339, 1, &rule90},-	{71340, 1, &rule122},-	{71341, 1, &rule90},-	{71342, 2, &rule122},-	{71344, 6, &rule90},-	{71350, 1, &rule122},-	{71351, 1, &rule90},-	{71360, 10, &rule8},-	{71840, 32, &rule9},-	{71872, 32, &rule12},-	{71904, 10, &rule8},-	{71914, 9, &rule17},-	{71935, 1, &rule14},-	{72384, 57, &rule14},-	{73728, 921, &rule14},-	{74752, 111, &rule124},-	{74864, 5, &rule2},-	{77824, 1071, &rule14},-	{92160, 569, &rule14},-	{92736, 31, &rule14},-	{92768, 10, &rule8},-	{92782, 2, &rule2},-	{92880, 30, &rule14},-	{92912, 5, &rule90},-	{92917, 1, &rule2},-	{92928, 48, &rule14},-	{92976, 7, &rule90},-	{92983, 5, &rule2},-	{92988, 4, &rule13},-	{92992, 4, &rule89},-	{92996, 1, &rule2},-	{92997, 1, &rule13},-	{93008, 10, &rule8},-	{93019, 7, &rule17},-	{93027, 21, &rule14},-	{93053, 19, &rule14},-	{93952, 69, &rule14},-	{94032, 1, &rule14},-	{94033, 46, &rule122},-	{94095, 4, &rule90},-	{94099, 13, &rule89},-	{110592, 2, &rule14},-	{113664, 107, &rule14},-	{113776, 13, &rule14},-	{113792, 9, &rule14},-	{113808, 10, &rule14},-	{113820, 1, &rule13},-	{113821, 2, &rule90},-	{113823, 1, &rule2},-	{113824, 4, &rule16},-	{118784, 246, &rule13},-	{119040, 39, &rule13},-	{119081, 60, &rule13},-	{119141, 2, &rule122},-	{119143, 3, &rule90},-	{119146, 3, &rule13},-	{119149, 6, &rule122},-	{119155, 8, &rule16},-	{119163, 8, &rule90},-	{119171, 2, &rule13},-	{119173, 7, &rule90},-	{119180, 30, &rule13},-	{119210, 4, &rule90},-	{119214, 48, &rule13},-	{119296, 66, &rule13},-	{119362, 3, &rule90},-	{119365, 1, &rule13},-	{119552, 87, &rule13},-	{119648, 18, &rule17},-	{119808, 26, &rule105},-	{119834, 26, &rule20},-	{119860, 26, &rule105},-	{119886, 7, &rule20},-	{119894, 18, &rule20},-	{119912, 26, &rule105},-	{119938, 26, &rule20},-	{119964, 1, &rule105},-	{119966, 2, &rule105},-	{119970, 1, &rule105},-	{119973, 2, &rule105},-	{119977, 4, &rule105},-	{119982, 8, &rule105},-	{119990, 4, &rule20},-	{119995, 1, &rule20},-	{119997, 7, &rule20},-	{120005, 11, &rule20},-	{120016, 26, &rule105},-	{120042, 26, &rule20},-	{120068, 2, &rule105},-	{120071, 4, &rule105},-	{120077, 8, &rule105},-	{120086, 7, &rule105},-	{120094, 26, &rule20},-	{120120, 2, &rule105},-	{120123, 4, &rule105},-	{120128, 5, &rule105},-	{120134, 1, &rule105},-	{120138, 7, &rule105},-	{120146, 26, &rule20},-	{120172, 26, &rule105},-	{120198, 26, &rule20},-	{120224, 26, &rule105},-	{120250, 26, &rule20},-	{120276, 26, &rule105},-	{120302, 26, &rule20},-	{120328, 26, &rule105},-	{120354, 26, &rule20},-	{120380, 26, &rule105},-	{120406, 26, &rule20},-	{120432, 26, &rule105},-	{120458, 28, &rule20},-	{120488, 25, &rule105},-	{120513, 1, &rule6},-	{120514, 25, &rule20},-	{120539, 1, &rule6},-	{120540, 6, &rule20},-	{120546, 25, &rule105},-	{120571, 1, &rule6},-	{120572, 25, &rule20},-	{120597, 1, &rule6},-	{120598, 6, &rule20},-	{120604, 25, &rule105},-	{120629, 1, &rule6},-	{120630, 25, &rule20},-	{120655, 1, &rule6},-	{120656, 6, &rule20},-	{120662, 25, &rule105},-	{120687, 1, &rule6},-	{120688, 25, &rule20},-	{120713, 1, &rule6},-	{120714, 6, &rule20},-	{120720, 25, &rule105},-	{120745, 1, &rule6},-	{120746, 25, &rule20},-	{120771, 1, &rule6},-	{120772, 6, &rule20},-	{120778, 1, &rule105},-	{120779, 1, &rule20},-	{120782, 50, &rule8},-	{124928, 197, &rule14},-	{125127, 9, &rule17},-	{125136, 7, &rule90},-	{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},-	{127248, 31, &rule13},-	{127280, 60, &rule13},-	{127344, 43, &rule13},-	{127462, 29, &rule13},-	{127504, 43, &rule13},-	{127552, 9, &rule13},-	{127568, 2, &rule13},-	{127744, 45, &rule13},-	{127792, 78, &rule13},-	{127872, 79, &rule13},-	{127956, 36, &rule13},-	{128000, 255, &rule13},-	{128256, 75, &rule13},-	{128336, 42, &rule13},-	{128379, 41, &rule13},-	{128421, 158, &rule13},-	{128581, 139, &rule13},-	{128736, 13, &rule13},-	{128752, 4, &rule13},-	{128768, 116, &rule13},-	{128896, 85, &rule13},-	{129024, 12, &rule13},-	{129040, 56, &rule13},-	{129104, 10, &rule13},-	{129120, 40, &rule13},-	{129168, 30, &rule13},-	{131072, 42711, &rule14},-	{173824, 4149, &rule14},-	{177984, 222, &rule14},-	{194560, 542, &rule14},-	{917505, 1, &rule16},-	{917536, 96, &rule16},-	{917760, 240, &rule90},-	{983040, 65534, &rule178},-	{1048576, 65534, &rule178}-};-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},-	{619, 1, &rule76},-	{620, 1, &rule77},-	{623, 1, &rule75},-	{625, 1, &rule78},-	{626, 1, &rule79},-	{629, 1, &rule80},-	{637, 1, &rule81},-	{640, 1, &rule82},-	{643, 1, &rule82},-	{647, 1, &rule83},-	{648, 1, &rule82},-	{649, 1, &rule84},-	{650, 2, &rule85},-	{652, 1, &rule86},-	{658, 1, &rule87},-	{670, 1, &rule88},-	{837, 1, &rule91},-	{880, 1, &rule22},-	{881, 1, &rule23},-	{882, 1, &rule22},-	{883, 1, &rule23},-	{886, 1, &rule22},-	{887, 1, &rule23},-	{891, 3, &rule41},-	{895, 1, &rule92},-	{902, 1, &rule93},-	{904, 3, &rule94},-	{908, 1, &rule95},-	{910, 2, &rule96},-	{913, 17, &rule9},-	{931, 9, &rule9},-	{940, 1, &rule97},-	{941, 3, &rule98},-	{945, 17, &rule12},-	{962, 1, &rule99},-	{963, 9, &rule12},-	{972, 1, &rule100},-	{973, 2, &rule101},-	{975, 1, &rule102},-	{976, 1, &rule103},-	{977, 1, &rule104},-	{981, 1, &rule106},-	{982, 1, &rule107},-	{983, 1, &rule108},-	{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, &rule109},-	{1009, 1, &rule110},-	{1010, 1, &rule111},-	{1011, 1, &rule112},-	{1012, 1, &rule113},-	{1013, 1, &rule114},-	{1015, 1, &rule22},-	{1016, 1, &rule23},-	{1017, 1, &rule115},-	{1018, 1, &rule22},-	{1019, 1, &rule23},-	{1021, 3, &rule53},-	{1024, 16, &rule116},-	{1040, 32, &rule9},-	{1072, 32, &rule12},-	{1104, 16, &rule110},-	{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, &rule118},-	{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, &rule119},-	{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, &rule120},-	{1377, 38, &rule121},-	{4256, 38, &rule123},-	{4295, 1, &rule123},-	{4301, 1, &rule123},-	{7545, 1, &rule125},-	{7549, 1, &rule126},-	{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, &rule127},-	{7838, 1, &rule128},-	{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, &rule129},-	{7944, 8, &rule130},-	{7952, 6, &rule129},-	{7960, 6, &rule130},-	{7968, 8, &rule129},-	{7976, 8, &rule130},-	{7984, 8, &rule129},-	{7992, 8, &rule130},-	{8000, 6, &rule129},-	{8008, 6, &rule130},-	{8017, 1, &rule129},-	{8019, 1, &rule129},-	{8021, 1, &rule129},-	{8023, 1, &rule129},-	{8025, 1, &rule130},-	{8027, 1, &rule130},-	{8029, 1, &rule130},-	{8031, 1, &rule130},-	{8032, 8, &rule129},-	{8040, 8, &rule130},-	{8048, 2, &rule131},-	{8050, 4, &rule132},-	{8054, 2, &rule133},-	{8056, 2, &rule134},-	{8058, 2, &rule135},-	{8060, 2, &rule136},-	{8064, 8, &rule129},-	{8072, 8, &rule137},-	{8080, 8, &rule129},-	{8088, 8, &rule137},-	{8096, 8, &rule129},-	{8104, 8, &rule137},-	{8112, 2, &rule129},-	{8115, 1, &rule138},-	{8120, 2, &rule130},-	{8122, 2, &rule139},-	{8124, 1, &rule140},-	{8126, 1, &rule141},-	{8131, 1, &rule138},-	{8136, 4, &rule142},-	{8140, 1, &rule140},-	{8144, 2, &rule129},-	{8152, 2, &rule130},-	{8154, 2, &rule143},-	{8160, 2, &rule129},-	{8165, 1, &rule111},-	{8168, 2, &rule130},-	{8170, 2, &rule144},-	{8172, 1, &rule115},-	{8179, 1, &rule138},-	{8184, 2, &rule145},-	{8186, 2, &rule146},-	{8188, 1, &rule140},-	{8486, 1, &rule149},-	{8490, 1, &rule150},-	{8491, 1, &rule151},-	{8498, 1, &rule152},-	{8526, 1, &rule153},-	{8544, 16, &rule154},-	{8560, 16, &rule155},-	{8579, 1, &rule22},-	{8580, 1, &rule23},-	{9398, 26, &rule156},-	{9424, 26, &rule157},-	{11264, 47, &rule120},-	{11312, 47, &rule121},-	{11360, 1, &rule22},-	{11361, 1, &rule23},-	{11362, 1, &rule158},-	{11363, 1, &rule159},-	{11364, 1, &rule160},-	{11365, 1, &rule161},-	{11366, 1, &rule162},-	{11367, 1, &rule22},-	{11368, 1, &rule23},-	{11369, 1, &rule22},-	{11370, 1, &rule23},-	{11371, 1, &rule22},-	{11372, 1, &rule23},-	{11373, 1, &rule163},-	{11374, 1, &rule164},-	{11375, 1, &rule165},-	{11376, 1, &rule166},-	{11378, 1, &rule22},-	{11379, 1, &rule23},-	{11381, 1, &rule22},-	{11382, 1, &rule23},-	{11390, 2, &rule167},-	{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, &rule168},-	{11559, 1, &rule168},-	{11565, 1, &rule168},-	{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, &rule169},-	{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, &rule170},-	{42896, 1, &rule22},-	{42897, 1, &rule23},-	{42898, 1, &rule22},-	{42899, 1, &rule23},-	{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, &rule171},-	{42923, 1, &rule172},-	{42924, 1, &rule173},-	{42925, 1, &rule174},-	{42928, 1, &rule175},-	{42929, 1, &rule176},-	{65313, 26, &rule9},-	{65345, 26, &rule12},-	{66560, 40, &rule179},-	{66600, 40, &rule180},-	{71840, 32, &rule9},-	{71872, 32, &rule12}-};-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_MC|GENCAT_ME|GENCAT_MN|-		    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;-}-+Generated by ubconfc at Tue Aug 14 10:04:18 UTC 2018+@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 3349+#define NUM_CONVBLOCKS 1326+#define NUM_SPACEBLOCKS 7+#define NUM_LAT1BLOCKS 63+#define NUM_RULES 205+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_ 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_ 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_ rule204={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_ rule203={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},+	{1566, 2, &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},+	{2208, 21, &rule14},+	{2230, 8, &rule14},+	{2259, 15, &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},+	{2902, 1, &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},+	{3133, 1, &rule14},+	{3134, 3, &rule92},+	{3137, 4, &rule124},+	{3142, 3, &rule92},+	{3146, 4, &rule92},+	{3157, 2, &rule92},+	{3160, 3, &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},+	{3294, 1, &rule14},+	{3296, 2, &rule14},+	{3298, 2, &rule92},+	{3302, 10, &rule8},+	{3313, 2, &rule14},+	{3328, 2, &rule92},+	{3330, 2, &rule124},+	{3333, 8, &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},+	{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, 2, &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, 13, &rule14},+	{5902, 4, &rule14},+	{5906, 3, &rule92},+	{5920, 18, &rule14},+	{5938, 3, &rule92},+	{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},+	{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},+	{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, 7, &rule14},+	{6992, 10, &rule8},+	{7002, 7, &rule2},+	{7009, 10, &rule13},+	{7019, 9, &rule92},+	{7028, 9, &rule13},+	{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, 58, &rule92},+	{7675, 5, &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, 32, &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},+	{11160, 104, &rule13},+	{11264, 47, &rule122},+	{11312, 47, &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},+	{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, 27, &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, 63, &rule13},+	{13056, 256, &rule13},+	{13312, 6582, &rule14},+	{19904, 64, &rule13},+	{19968, 20976, &rule14},+	{40960, 21, &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},+	{42946, 1, &rule22},+	{42947, 1, &rule23},+	{42948, 1, &rule194},+	{42949, 1, &rule195},+	{42950, 1, &rule196},+	{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},+	{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, 1, &rule92},+	{43453, 4, &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, 8, &rule20},+	{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, 16, &rule10},+	{64467, 363, &rule14},+	{64830, 1, &rule5},+	{64831, 1, &rule4},+	{64848, 64, &rule14},+	{64914, 54, &rule14},+	{65008, 12, &rule14},+	{65020, 1, &rule3},+	{65021, 1, &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, 12, &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},+	{67072, 311, &rule14},+	{67392, 22, &rule14},+	{67424, 8, &rule14},+	{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},+	{69376, 29, &rule14},+	{69405, 10, &rule17},+	{69415, 1, &rule14},+	{69424, 22, &rule14},+	{69446, 11, &rule92},+	{69457, 4, &rule17},+	{69461, 5, &rule2},+	{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},+	{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},+	{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},+	{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},+	{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},+	{70747, 1, &rule2},+	{70749, 1, &rule2},+	{70750, 1, &rule92},+	{70751, 1, &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},+	{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},+	{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, 1, &rule14},+	{72096, 8, &rule14},+	{72106, 39, &rule14},+	{72145, 1, &rule124},+	{72146, 1, &rule92},+	{72147, 1, &rule124},+	{72148, 4, &rule92},+	{72154, 2, &rule92},+	{72156, 4, &rule124},+	{72160, 1, &rule92},+	{72161, 3, &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},+	{72384, 57, &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},+	{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},+	{77824, 1071, &rule14},+	{78896, 9, &rule16},+	{82944, 583, &rule14},+	{92160, 569, &rule14},+	{92736, 31, &rule14},+	{92768, 10, &rule8},+	{92782, 2, &rule2},+	{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},+	{94208, 6136, &rule14},+	{100352, 755, &rule14},+	{110592, 287, &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},+	{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, 59, &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},+	{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, 2, &rule14},+	{123584, 44, &rule14},+	{123628, 4, &rule92},+	{123632, 10, &rule8},+	{123647, 1, &rule3},+	{124928, 197, &rule14},+	{125127, 9, &rule17},+	{125136, 7, &rule92},+	{125184, 34, &rule203},+	{125218, 34, &rule204},+	{125252, 7, &rule92},+	{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},+	{127248, 93, &rule13},+	{127344, 61, &rule13},+	{127462, 29, &rule13},+	{127504, 44, &rule13},+	{127552, 9, &rule13},+	{127568, 2, &rule13},+	{127584, 6, &rule13},+	{127744, 251, &rule13},+	{127995, 5, &rule10},+	{128000, 726, &rule13},+	{128736, 13, &rule13},+	{128752, 11, &rule13},+	{128768, 116, &rule13},+	{128896, 89, &rule13},+	{128992, 12, &rule13},+	{129024, 12, &rule13},+	{129040, 56, &rule13},+	{129104, 10, &rule13},+	{129120, 40, &rule13},+	{129168, 30, &rule13},+	{129280, 12, &rule13},+	{129293, 101, &rule13},+	{129395, 4, &rule13},+	{129402, 41, &rule13},+	{129445, 6, &rule13},+	{129454, 29, &rule13},+	{129485, 135, &rule13},+	{129632, 14, &rule13},+	{129648, 4, &rule13},+	{129656, 3, &rule13},+	{129664, 3, &rule13},+	{129680, 6, &rule13},+	{131072, 42711, &rule14},+	{173824, 4149, &rule14},+	{177984, 222, &rule14},+	{178208, 5762, &rule14},+	{183984, 7473, &rule14},+	{194560, 542, &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, 47, &rule122},+	{11312, 47, &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},+	{42946, 1, &rule22},+	{42947, 1, &rule23},+	{42948, 1, &rule194},+	{42949, 1, &rule195},+	{42950, 1, &rule196},+	{43859, 1, &rule197},+	{43888, 80, &rule198},+	{65313, 26, &rule9},+	{65345, 26, &rule12},+	{66560, 40, &rule201},+	{66600, 40, &rule202},+	{66736, 36, &rule201},+	{66776, 36, &rule202},+	{68736, 51, &rule97},+	{68800, 51, &rule102},+	{71840, 32, &rule9},+	{71872, 32, &rule12},+	{93760, 32, &rule9},+	{93792, 32, &rule12},+	{125184, 34, &rule203},+	{125218, 34, &rule204}+};+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/fs.c view
@@ -107,15 +107,13 @@   /* Construct access mode.  */   DWORD dwDesiredAccess = 0;   if (HAS_FLAG (oflag, _O_RDONLY))-    dwDesiredAccess |= GENERIC_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES |-                       FILE_WRITE_ATTRIBUTES;;+    dwDesiredAccess |= GENERIC_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES;   if (HAS_FLAG (oflag, _O_RDWR))     dwDesiredAccess |= GENERIC_WRITE | GENERIC_READ | FILE_READ_DATA |                        FILE_WRITE_DATA | FILE_READ_ATTRIBUTES |                        FILE_WRITE_ATTRIBUTES;   if (HAS_FLAG (oflag,  _O_WRONLY))-    dwDesiredAccess|= GENERIC_WRITE | FILE_WRITE_DATA |-                      FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES;+    dwDesiredAccess|= GENERIC_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES;    /* Construct shared mode.  */   DWORD dwShareMode = FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE;
changelog.md view
@@ -1,6 +1,37 @@ # Changelog for [`base` package](http://hackage.haskell.org/package/base) -## 4.12.0.0 *August 2018*+## 4.13.0.0 *July 2019*+  * Bundled with GHC 8.8.1++  * The final phase of the `MonadFail` proposal has been implemented:++    * The `fail` method of `Monad` has been removed in favor of the method of+      the same name in the `MonadFail` class.++    * `MonadFail(fail)` is now re-exported from the `Prelude` and+      `Control.Monad` modules.++  * Fix `Show` instance of `Data.Fixed`: Negative numbers are now parenthesized+    according to their surrounding context. I.e. `Data.Fixed.show` produces+    syntactically correct Haskell for expressions like `Just (-1 :: Fixed E2)`.+    (#16031)++  * Support the characters from recent versions of Unicode (up to v. 12) in+    literals (#5518).++  * The `StableName` type parameter now has a phantom role instead of+    a representational one. There is really no reason to care about the+    type of the underlying object.++  * Add `foldMap'`, a strict version of `foldMap`, to `Foldable`.++  * The `shiftL` and `shiftR` methods in the `Bits` instances of `Int`, `IntN`,+    `Word`, and `WordN` now throw an overflow exception for negative shift+    values (instead of being undefined behaviour).++  * `scanr` no longer participates in list fusion (due #16943)++## 4.12.0.0 *21 September 2018*   * Bundled with GHC 8.6.1    * The STM invariant-checking mechanism (`always` and `alwaysSucceeds`), which@@ -28,8 +59,8 @@   * `asinh` for `Float` and `Double` is now numerically stable in the face of     non-small negative arguments and enormous arguments of either sign. (#14927) -	* `Numeric.showEFloat (Just 0)` and `Numeric.showGFloat (Just 0)`-    now respect the user's requested precision. (#15115)+  * `Numeric.showEFloat (Just 0)` now respects the user's requested precision.+    (#15115)    * `Data.Monoid.Alt` now has `Foldable` and `Traversable` instances. (#15099) @@ -42,13 +73,13 @@     `Read1`, `Show1`, `Generic`, `Generic1`. (#15098)  -## 4.11.1.0 *April 2018*+## 4.11.1.0 *19 April 2018*   * Bundled with GHC 8.4.2    * Add the `readFieldHash` function to `GHC.Read` which behaves like     `readField`, but for a field that ends with a `#` symbol (#14918). -## 4.11.0.0 *March 2018*+## 4.11.0.0 *8 March 2018*   * Bundled with GHC 8.4.1    * `System.IO.openTempFile` is now thread-safe on Windows.
config.guess view
@@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name.-#   Copyright 1992-2017 Free Software Foundation, Inc.+#   Copyright 1992-2019 Free Software Foundation, Inc. -timestamp='2017-07-19'+timestamp='2019-03-04'  # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by@@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License-# along with this program; if not, see <http://www.gnu.org/licenses/>.+# along with this program; if not, see <https://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a@@ -27,7 +27,7 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from:-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to <config-patches@gnu.org>. @@ -39,7 +39,7 @@  Output the configuration name of the system \`$me' is run on. -Operation modes:+Options:   -h, --help         print this help, then exit   -t, --time-stamp   print date of last modification, then exit   -v, --version      print version number, then exit@@ -50,7 +50,7 @@ GNU config.guess ($timestamp)  Originally written by Per Bothner.-Copyright 1992-2017 Free Software Foundation, Inc.+Copyright 1992-2019 Free Software Foundation, Inc.  This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."@@ -84,8 +84,6 @@   exit 1 fi -trap 'exit 1' 1 2 15- # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a@@ -96,34 +94,38 @@  # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build='-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;-: ${TMPDIR=/tmp} ;- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;-dummy=$tmp/dummy ;-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;-case $CC_FOR_BUILD,$HOST_CC,$CC in- ,,)    echo "int x;" > $dummy.c ;-	for c in cc gcc c89 c99 ; do-	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then-	     CC_FOR_BUILD="$c"; break ;-	  fi ;-	done ;-	if test x"$CC_FOR_BUILD" = x ; then-	  CC_FOR_BUILD=no_compiler_found ;-	fi-	;;- ,,*)   CC_FOR_BUILD=$CC ;;- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;-esac ; set_cc_for_build= ;'+tmp=+# shellcheck disable=SC2172+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 +set_cc_for_build() {+    : "${TMPDIR=/tmp}"+    # shellcheck disable=SC2039+    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||+	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||+	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||+	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }+    dummy=$tmp/dummy+    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in+	,,)    echo "int x;" > "$dummy.c"+	       for driver in cc gcc c89 c99 ; do+		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then+		       CC_FOR_BUILD="$driver"+		       break+		   fi+	       done+	       if test x"$CC_FOR_BUILD" = x ; then+		   CC_FOR_BUILD=no_compiler_found+	       fi+	       ;;+	,,*)   CC_FOR_BUILD=$CC ;;+	,*,*)  CC_FOR_BUILD=$HOST_CC ;;+    esac+}+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24)-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then+if test -f /.attbin/uname ; then 	PATH=$PATH:/.attbin ; export PATH fi @@ -132,14 +134,14 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in+case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) 	# If the system lacks a compiler, then just pick glibc. 	# We could probably try harder. 	LIBC=gnu -	eval $set_cc_for_build-	cat <<-EOF > $dummy.c+	set_cc_for_build+	cat <<-EOF > "$dummy.c" 	#include <features.h> 	#if defined(__UCLIBC__) 	LIBC=uclibc@@ -149,13 +151,20 @@ 	LIBC=gnu 	#endif 	EOF-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`+	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"++	# If ldd exists, use it to detect musl libc.+	if command -v ldd >/dev/null && \+		ldd --version 2>&1 | grep -q ^musl+	then+	    LIBC=musl+	fi 	;; esac  # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in     *:NetBSD:*:*) 	# NetBSD (nbsd) targets should (where applicable) match one or 	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,@@ -169,30 +178,30 @@ 	# portion of the name.  We always set it to "unknown". 	sysctl="sysctl -n hw.machine_arch" 	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \-	    /sbin/$sysctl 2>/dev/null || \-	    /usr/sbin/$sysctl 2>/dev/null || \+	    "/sbin/$sysctl" 2>/dev/null || \+	    "/usr/sbin/$sysctl" 2>/dev/null || \ 	    echo unknown)`-	case "${UNAME_MACHINE_ARCH}" in+	case "$UNAME_MACHINE_ARCH" in 	    armeb) machine=armeb-unknown ;; 	    arm*) machine=arm-unknown ;; 	    sh3el) machine=shl-unknown ;; 	    sh3eb) machine=sh-unknown ;; 	    sh5el) machine=sh5le-unknown ;; 	    earmv*)-		arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`-		endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`-		machine=${arch}${endian}-unknown+		arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`+		endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`+		machine="${arch}${endian}"-unknown 		;;-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;+	    *) machine="$UNAME_MACHINE_ARCH"-unknown ;; 	esac 	# The Operating System including object format, if it has switched 	# to ELF recently (or will in the future) and ABI.-	case "${UNAME_MACHINE_ARCH}" in+	case "$UNAME_MACHINE_ARCH" in 	    earm*) 		os=netbsdelf 		;; 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)-		eval $set_cc_for_build+		set_cc_for_build 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ 			| grep -q __ELF__ 		then@@ -208,10 +217,10 @@ 		;; 	esac 	# Determine ABI tags.-	case "${UNAME_MACHINE_ARCH}" in+	case "$UNAME_MACHINE_ARCH" in 	    earm*) 		expr='s/^earmv[0-9]/-eabi/;s/eb$//'-		abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`+		abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` 		;; 	esac 	# The OS release@@ -219,46 +228,55 @@ 	# thus, need a distinct triplet. However, they do not need 	# kernel version information, so it can be replaced with a 	# suitable tag, in the style of linux-gnu.-	case "${UNAME_VERSION}" in+	case "$UNAME_VERSION" in 	    Debian*) 		release='-gnu' 		;; 	    *)-		release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`+		release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` 		;; 	esac 	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: 	# contains redundant information, the shorter form: 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.-	echo "${machine}-${os}${release}${abi}"+	echo "$machine-${os}${release}${abi-}" 	exit ;;     *:Bitrig:*:*) 	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`-	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}+	echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" 	exit ;;     *:OpenBSD:*:*) 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`-	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}+	echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" 	exit ;;     *:LibertyBSD:*:*) 	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`-	echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}+	echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" 	exit ;;+    *:MidnightBSD:*:*)+	echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"+	exit ;;     *:ekkoBSD:*:*)-	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}+	echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" 	exit ;;     *:SolidBSD:*:*)-	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}+	echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" 	exit ;;     macppc:MirBSD:*:*)-	echo powerpc-unknown-mirbsd${UNAME_RELEASE}+	echo powerpc-unknown-mirbsd"$UNAME_RELEASE" 	exit ;;     *:MirBSD:*:*)-	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}+	echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" 	exit ;;     *:Sortix:*:*)-	echo ${UNAME_MACHINE}-unknown-sortix+	echo "$UNAME_MACHINE"-unknown-sortix 	exit ;;+    *:Redox:*:*)+	echo "$UNAME_MACHINE"-unknown-redox+	exit ;;+    mips:OSF1:*.*)+        echo mips-dec-osf1+        exit ;;     alpha:OSF1:*:*) 	case $UNAME_RELEASE in 	*4.0)@@ -310,28 +328,19 @@ 	# A Tn.n version is a released field test version. 	# A Xn.n version is an unreleased experimental baselevel. 	# 1.2 uses "1.2" for uname -r.-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`+	echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" 	# Reset EXIT trap before exiting to avoid spurious non-zero exit code. 	exitcode=$? 	trap '' 0 	exit $exitcode ;;-    Alpha\ *:Windows_NT*:*)-	# How do we know it's Interix rather than the generic POSIX subsystem?-	# Should we change UNAME_MACHINE based on the output of uname instead-	# of the specific Alpha model?-	echo alpha-pc-interix-	exit ;;-    21064:Windows_NT:50:3)-	echo alpha-dec-winnt3.5-	exit ;;     Amiga*:UNIX_System_V:4.0:*) 	echo m68k-unknown-sysv4 	exit ;;     *:[Aa]miga[Oo][Ss]:*:*)-	echo ${UNAME_MACHINE}-unknown-amigaos+	echo "$UNAME_MACHINE"-unknown-amigaos 	exit ;;     *:[Mm]orph[Oo][Ss]:*:*)-	echo ${UNAME_MACHINE}-unknown-morphos+	echo "$UNAME_MACHINE"-unknown-morphos 	exit ;;     *:OS/390:*:*) 	echo i370-ibm-openedition@@ -343,7 +352,7 @@ 	echo powerpc-ibm-os400 	exit ;;     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)-	echo arm-acorn-riscix${UNAME_RELEASE}+	echo arm-acorn-riscix"$UNAME_RELEASE" 	exit ;;     arm*:riscos:*:*|arm*:RISCOS:*:*) 	echo arm-unknown-riscos@@ -370,19 +379,19 @@ 	    sparc) echo sparc-icl-nx7; exit ;; 	esac ;;     s390x:SunOS:*:*)-	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`+	echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" 	exit ;;     sun4H:SunOS:5.*:*)-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`+	echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" 	exit ;;     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`+	echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" 	exit ;;     i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)-	echo i386-pc-auroraux${UNAME_RELEASE}+	echo i386-pc-auroraux"$UNAME_RELEASE" 	exit ;;     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)-	eval $set_cc_for_build+	set_cc_for_build 	SUN_ARCH=i386 	# If there is a compiler, see if it is configured for 64-bit objects. 	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.@@ -395,13 +404,13 @@ 		SUN_ARCH=x86_64 	    fi 	fi-	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`+	echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" 	exit ;;     sun4*:SunOS:6*:*) 	# According to config.sub, this is the proper way to canonicalize 	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but 	# it's likely to be more like Solaris than SunOS4.-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`+	echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" 	exit ;;     sun4*:SunOS:*:*) 	case "`/usr/bin/arch -k`" in@@ -410,25 +419,25 @@ 		;; 	esac 	# Japanese Language versions have a version number like `4.1.3-JL'.-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`+	echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" 	exit ;;     sun3*:SunOS:*:*)-	echo m68k-sun-sunos${UNAME_RELEASE}+	echo m68k-sun-sunos"$UNAME_RELEASE" 	exit ;;     sun*:*:4.2BSD:*) 	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`-	test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3+	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 	case "`/bin/arch`" in 	    sun3)-		echo m68k-sun-sunos${UNAME_RELEASE}+		echo m68k-sun-sunos"$UNAME_RELEASE" 		;; 	    sun4)-		echo sparc-sun-sunos${UNAME_RELEASE}+		echo sparc-sun-sunos"$UNAME_RELEASE" 		;; 	esac 	exit ;;     aushp:SunOS:*:*)-	echo sparc-auspex-sunos${UNAME_RELEASE}+	echo sparc-auspex-sunos"$UNAME_RELEASE" 	exit ;;     # The situation for MiNT is a little confusing.  The machine name     # can be virtually everything (everything which is not@@ -439,44 +448,44 @@     # MiNT.  But MiNT is downward compatible to TOS, so this should     # be no problem.     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)-	echo m68k-atari-mint${UNAME_RELEASE}+	echo m68k-atari-mint"$UNAME_RELEASE" 	exit ;;     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)-	echo m68k-atari-mint${UNAME_RELEASE}+	echo m68k-atari-mint"$UNAME_RELEASE" 	exit ;;     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)-	echo m68k-atari-mint${UNAME_RELEASE}+	echo m68k-atari-mint"$UNAME_RELEASE" 	exit ;;     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)-	echo m68k-milan-mint${UNAME_RELEASE}+	echo m68k-milan-mint"$UNAME_RELEASE" 	exit ;;     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)-	echo m68k-hades-mint${UNAME_RELEASE}+	echo m68k-hades-mint"$UNAME_RELEASE" 	exit ;;     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)-	echo m68k-unknown-mint${UNAME_RELEASE}+	echo m68k-unknown-mint"$UNAME_RELEASE" 	exit ;;     m68k:machten:*:*)-	echo m68k-apple-machten${UNAME_RELEASE}+	echo m68k-apple-machten"$UNAME_RELEASE" 	exit ;;     powerpc:machten:*:*)-	echo powerpc-apple-machten${UNAME_RELEASE}+	echo powerpc-apple-machten"$UNAME_RELEASE" 	exit ;;     RISC*:Mach:*:*) 	echo mips-dec-mach_bsd4.3 	exit ;;     RISC*:ULTRIX:*:*)-	echo mips-dec-ultrix${UNAME_RELEASE}+	echo mips-dec-ultrix"$UNAME_RELEASE" 	exit ;;     VAX*:ULTRIX*:*:*)-	echo vax-dec-ultrix${UNAME_RELEASE}+	echo vax-dec-ultrix"$UNAME_RELEASE" 	exit ;;     2020:CLIX:*:* | 2430:CLIX:*:*)-	echo clipper-intergraph-clix${UNAME_RELEASE}+	echo clipper-intergraph-clix"$UNAME_RELEASE" 	exit ;;     mips:*:*:UMIPS | mips:*:*:RISCos)-	eval $set_cc_for_build-	sed 's/^	//' << EOF >$dummy.c+	set_cc_for_build+	sed 's/^	//' << EOF > "$dummy.c" #ifdef __cplusplus #include <stdio.h>  /* for printf() prototype */ 	int main (int argc, char *argv[]) {@@ -485,23 +494,23 @@ #endif 	#if defined (host_mips) && defined (MIPSEB) 	#if defined (SYSTYPE_SYSV)-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);+	  printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); 	#endif 	#if defined (SYSTYPE_SVR4)-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);+	  printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); 	#endif 	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);+	  printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); 	#endif 	#endif 	  exit (-1); 	} EOF-	$CC_FOR_BUILD -o $dummy $dummy.c &&-	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&-	  SYSTEM_NAME=`$dummy $dummyarg` &&+	$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&+	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&+	  SYSTEM_NAME=`"$dummy" "$dummyarg"` && 	    { echo "$SYSTEM_NAME"; exit; }-	echo mips-mips-riscos${UNAME_RELEASE}+	echo mips-mips-riscos"$UNAME_RELEASE" 	exit ;;     Motorola:PowerMAX_OS:*:*) 	echo powerpc-motorola-powermax@@ -527,17 +536,17 @@     AViiON:dgux:*:*) 	# DG/UX returns AViiON for all architectures 	UNAME_PROCESSOR=`/usr/bin/uname -p`-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]+	if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] 	then-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \-	       [ ${TARGET_BINARY_INTERFACE}x = x ]+	    if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \+	       [ "$TARGET_BINARY_INTERFACE"x = x ] 	    then-		echo m88k-dg-dgux${UNAME_RELEASE}+		echo m88k-dg-dgux"$UNAME_RELEASE" 	    else-		echo m88k-dg-dguxbcs${UNAME_RELEASE}+		echo m88k-dg-dguxbcs"$UNAME_RELEASE" 	    fi 	else-	    echo i586-dg-dgux${UNAME_RELEASE}+	    echo i586-dg-dgux"$UNAME_RELEASE" 	fi 	exit ;;     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)@@ -554,7 +563,7 @@ 	echo m68k-tektronix-bsd 	exit ;;     *:IRIX*:*:*)-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`+	echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" 	exit ;;     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. 	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id@@ -566,14 +575,14 @@ 	if [ -x /usr/bin/oslevel ] ; then 		IBM_REV=`/usr/bin/oslevel` 	else-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}+		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" 	fi-	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}+	echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" 	exit ;;     *:AIX:2:3) 	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then-		eval $set_cc_for_build-		sed 's/^		//' << EOF >$dummy.c+		set_cc_for_build+		sed 's/^		//' << EOF > "$dummy.c" 		#include <sys/systemcfg.h>  		main()@@ -584,7 +593,7 @@ 			exit(0); 			} EOF-		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`+		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` 		then 			echo "$SYSTEM_NAME" 		else@@ -598,7 +607,7 @@ 	exit ;;     *:AIX:*:[4567]) 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`-	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then+	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then 		IBM_ARCH=rs6000 	else 		IBM_ARCH=powerpc@@ -607,18 +616,18 @@ 		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | 			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` 	else-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}+		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" 	fi-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}+	echo "$IBM_ARCH"-ibm-aix"$IBM_REV" 	exit ;;     *:AIX:*:*) 	echo rs6000-ibm-aix 	exit ;;-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)+    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) 	echo romp-ibm-bsd4.4 	exit ;;     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to+	echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to 	exit ;;                             # report: romp-ibm BSD 4.3     *:BOSX:*:*) 	echo rs6000-bull-bosx@@ -633,28 +642,28 @@ 	echo m68k-hp-bsd4.4 	exit ;;     9000/[34678]??:HP-UX:*:*)-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`-	case "${UNAME_MACHINE}" in-	    9000/31? )            HP_ARCH=m68000 ;;-	    9000/[34]?? )         HP_ARCH=m68k ;;+	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`+	case "$UNAME_MACHINE" in+	    9000/31?)            HP_ARCH=m68000 ;;+	    9000/[34]??)         HP_ARCH=m68k ;; 	    9000/[678][0-9][0-9]) 		if [ -x /usr/bin/getconf ]; then 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` 		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`-		    case "${sc_cpu_version}" in+		    case "$sc_cpu_version" in 		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 		      532)                      # CPU_PA_RISC2_0-			case "${sc_kernel_bits}" in+			case "$sc_kernel_bits" in 			  32) HP_ARCH=hppa2.0n ;; 			  64) HP_ARCH=hppa2.0w ;; 			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20 			esac ;; 		    esac 		fi-		if [ "${HP_ARCH}" = "" ]; then-		    eval $set_cc_for_build-		    sed 's/^		//' << EOF >$dummy.c+		if [ "$HP_ARCH" = "" ]; then+		    set_cc_for_build+		    sed 's/^		//' << EOF > "$dummy.c"  		#define _HPUX_SOURCE 		#include <stdlib.h>@@ -687,13 +696,13 @@ 		    exit (0); 		} EOF-		    (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`+		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` 		    test -z "$HP_ARCH" && HP_ARCH=hppa 		fi ;; 	esac-	if [ ${HP_ARCH} = hppa2.0w ]+	if [ "$HP_ARCH" = hppa2.0w ] 	then-	    eval $set_cc_for_build+	    set_cc_for_build  	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating 	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler@@ -712,15 +721,15 @@ 		HP_ARCH=hppa64 	    fi 	fi-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}+	echo "$HP_ARCH"-hp-hpux"$HPUX_REV" 	exit ;;     ia64:HP-UX:*:*)-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`-	echo ia64-hp-hpux${HPUX_REV}+	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`+	echo ia64-hp-hpux"$HPUX_REV" 	exit ;;     3050*:HI-UX:*:*)-	eval $set_cc_for_build-	sed 's/^	//' << EOF >$dummy.c+	set_cc_for_build+	sed 's/^	//' << EOF > "$dummy.c" 	#include <unistd.h> 	int 	main ()@@ -745,11 +754,11 @@ 	  exit (0); 	} EOF-	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&+	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && 		{ echo "$SYSTEM_NAME"; exit; } 	echo unknown-hitachi-hiuxwe2 	exit ;;-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) 	echo hppa1.1-hp-bsd 	exit ;;     9000/8??:4.3bsd:*:*)@@ -758,7 +767,7 @@     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) 	echo hppa1.0-hp-mpeix 	exit ;;-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) 	echo hppa1.1-hp-osf 	exit ;;     hp8??:OSF1:*:*)@@ -766,9 +775,9 @@ 	exit ;;     i*86:OSF1:*:*) 	if [ -x /usr/sbin/sysversion ] ; then-	    echo ${UNAME_MACHINE}-unknown-osf1mk+	    echo "$UNAME_MACHINE"-unknown-osf1mk 	else-	    echo ${UNAME_MACHINE}-unknown-osf1+	    echo "$UNAME_MACHINE"-unknown-osf1 	fi 	exit ;;     parisc*:Lites*:*:*)@@ -793,128 +802,120 @@ 	echo c4-convex-bsd 	exit ;;     CRAY*Y-MP:*:*:*)-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'+	echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' 	exit ;;     CRAY*[A-Z]90:*:*:*)-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \+	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ 	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ 	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ 	      -e 's/\.[^.]*$/.X/' 	exit ;;     CRAY*TS:*:*:*)-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'+	echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' 	exit ;;     CRAY*T3E:*:*:*)-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'+	echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' 	exit ;;     CRAY*SV1:*:*:*)-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'+	echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' 	exit ;;     *:UNICOS/mp:*:*)-	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'+	echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' 	exit ;;     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) 	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` 	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`-	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`+	FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` 	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 	exit ;;     5000:UNIX_System_V:4.*:*) 	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`-	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`+	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` 	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 	exit ;;     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}+	echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" 	exit ;;     sparc*:BSD/OS:*:*)-	echo sparc-unknown-bsdi${UNAME_RELEASE}+	echo sparc-unknown-bsdi"$UNAME_RELEASE" 	exit ;;     *:BSD/OS:*:*)-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}+	echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" 	exit ;;+    arm:FreeBSD:*:*)+	UNAME_PROCESSOR=`uname -p`+	set_cc_for_build+	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \+	    | grep -q __ARM_PCS_VFP+	then+	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi+	else+	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf+	fi+	exit ;;     *:FreeBSD:*:*) 	UNAME_PROCESSOR=`/usr/bin/uname -p`-	case ${UNAME_PROCESSOR} in+	case "$UNAME_PROCESSOR" in 	    amd64) 		UNAME_PROCESSOR=x86_64 ;; 	    i386) 		UNAME_PROCESSOR=i586 ;; 	esac-	echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`+	echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" 	exit ;;     i*:CYGWIN*:*)-	echo ${UNAME_MACHINE}-pc-cygwin+	echo "$UNAME_MACHINE"-pc-cygwin 	exit ;;     *:MINGW64*:*)-	echo ${UNAME_MACHINE}-pc-mingw64+	echo "$UNAME_MACHINE"-pc-mingw64 	exit ;;     *:MINGW*:*)-	echo ${UNAME_MACHINE}-pc-mingw32+	echo "$UNAME_MACHINE"-pc-mingw32 	exit ;;     *:MSYS*:*)-	echo ${UNAME_MACHINE}-pc-msys-	exit ;;-    i*:windows32*:*)-	# uname -m includes "-pc" on this system.-	echo ${UNAME_MACHINE}-mingw32+	echo "$UNAME_MACHINE"-pc-msys 	exit ;;     i*:PW*:*)-	echo ${UNAME_MACHINE}-pc-pw32+	echo "$UNAME_MACHINE"-pc-pw32 	exit ;;     *:Interix*:*)-	case ${UNAME_MACHINE} in+	case "$UNAME_MACHINE" in 	    x86)-		echo i586-pc-interix${UNAME_RELEASE}+		echo i586-pc-interix"$UNAME_RELEASE" 		exit ;; 	    authenticamd | genuineintel | EM64T)-		echo x86_64-unknown-interix${UNAME_RELEASE}+		echo x86_64-unknown-interix"$UNAME_RELEASE" 		exit ;; 	    IA64)-		echo ia64-unknown-interix${UNAME_RELEASE}+		echo ia64-unknown-interix"$UNAME_RELEASE" 		exit ;; 	esac ;;-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)-	echo i${UNAME_MACHINE}-pc-mks-	exit ;;-    8664:Windows_NT:*)-	echo x86_64-pc-mks-	exit ;;-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)-	# How do we know it's Interix rather than the generic POSIX subsystem?-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we-	# UNAME_MACHINE based on the output of uname instead of i386?-	echo i586-pc-interix-	exit ;;     i*:UWIN*:*)-	echo ${UNAME_MACHINE}-pc-uwin+	echo "$UNAME_MACHINE"-pc-uwin 	exit ;;     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)-	echo x86_64-unknown-cygwin-	exit ;;-    p*:CYGWIN*:*)-	echo powerpcle-unknown-cygwin+	echo x86_64-pc-cygwin 	exit ;;     prep*:SunOS:5.*:*)-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`+	echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" 	exit ;;     *:GNU:*:*) 	# the GNU system-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`+	echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" 	exit ;;     *:GNU/*:*:*) 	# other systems with GNU libc and userland-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}+	echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" 	exit ;;-    i*86:Minix:*:*)-	echo ${UNAME_MACHINE}-pc-minix+    *:Minix:*:*)+	echo "$UNAME_MACHINE"-unknown-minix 	exit ;;     aarch64:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     aarch64_be:Linux:*:*) 	UNAME_MACHINE=aarch64_be-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     alpha:Linux:*:*) 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in@@ -928,140 +929,168 @@ 	esac 	objdump --private-headers /bin/sh | grep -q ld.so.1 	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     arc:Linux:*:* | arceb:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     arm*:Linux:*:*)-	eval $set_cc_for_build+	set_cc_for_build 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ 	    | grep -q __ARM_EABI__ 	then-	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	    echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	else 	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ 		| grep -q __ARM_PCS_VFP 	    then-		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi+		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi 	    else-		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf+		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf 	    fi 	fi 	exit ;;     avr32*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     cris:Linux:*:*)-	echo ${UNAME_MACHINE}-axis-linux-${LIBC}+	echo "$UNAME_MACHINE"-axis-linux-"$LIBC" 	exit ;;     crisv32:Linux:*:*)-	echo ${UNAME_MACHINE}-axis-linux-${LIBC}+	echo "$UNAME_MACHINE"-axis-linux-"$LIBC" 	exit ;;     e2k:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     frv:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     hexagon:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     i*86:Linux:*:*)-	echo ${UNAME_MACHINE}-pc-linux-${LIBC}+	echo "$UNAME_MACHINE"-pc-linux-"$LIBC" 	exit ;;     ia64:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     k1om:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     m32r*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     m68*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     mips:Linux:*:* | mips64:Linux:*:*)-	eval $set_cc_for_build-	sed 's/^	//' << EOF >$dummy.c+	set_cc_for_build+	IS_GLIBC=0+	test x"${LIBC}" = xgnu && IS_GLIBC=1+	sed 's/^	//' << EOF > "$dummy.c" 	#undef CPU-	#undef ${UNAME_MACHINE}-	#undef ${UNAME_MACHINE}el+	#undef mips+	#undef mipsel+	#undef mips64+	#undef mips64el+	#if ${IS_GLIBC} && defined(_ABI64)+	LIBCABI=gnuabi64+	#else+	#if ${IS_GLIBC} && defined(_ABIN32)+	LIBCABI=gnuabin32+	#else+	LIBCABI=${LIBC}+	#endif+	#endif++	#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6+	CPU=mipsisa64r6+	#else+	#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6+	CPU=mipsisa32r6+	#else+	#if defined(__mips64)+	CPU=mips64+	#else+	CPU=mips+	#endif+	#endif+	#endif+ 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)-	CPU=${UNAME_MACHINE}el+	MIPS_ENDIAN=el 	#else 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)-	CPU=${UNAME_MACHINE}+	MIPS_ENDIAN= 	#else-	CPU=+	MIPS_ENDIAN= 	#endif 	#endif EOF-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }+	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"+	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } 	;;     mips64el:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     openrisc*:Linux:*:*)-	echo or1k-unknown-linux-${LIBC}+	echo or1k-unknown-linux-"$LIBC" 	exit ;;     or32:Linux:*:* | or1k*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     padre:Linux:*:*)-	echo sparc-unknown-linux-${LIBC}+	echo sparc-unknown-linux-"$LIBC" 	exit ;;     parisc64:Linux:*:* | hppa64:Linux:*:*)-	echo hppa64-unknown-linux-${LIBC}+	echo hppa64-unknown-linux-"$LIBC" 	exit ;;     parisc:Linux:*:* | hppa:Linux:*:*) 	# Look for CPU level 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in-	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;-	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;-	  *)    echo hppa-unknown-linux-${LIBC} ;;+	  PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;+	  PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;+	  *)    echo hppa-unknown-linux-"$LIBC" ;; 	esac 	exit ;;     ppc64:Linux:*:*)-	echo powerpc64-unknown-linux-${LIBC}+	echo powerpc64-unknown-linux-"$LIBC" 	exit ;;     ppc:Linux:*:*)-	echo powerpc-unknown-linux-${LIBC}+	echo powerpc-unknown-linux-"$LIBC" 	exit ;;     ppc64le:Linux:*:*)-	echo powerpc64le-unknown-linux-${LIBC}+	echo powerpc64le-unknown-linux-"$LIBC" 	exit ;;     ppcle:Linux:*:*)-	echo powerpcle-unknown-linux-${LIBC}+	echo powerpcle-unknown-linux-"$LIBC" 	exit ;;     riscv32:Linux:*:* | riscv64:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     s390:Linux:*:* | s390x:Linux:*:*)-	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}+	echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" 	exit ;;     sh64*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     sh*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     sparc:Linux:*:* | sparc64:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     tile*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     vax:Linux:*:*)-	echo ${UNAME_MACHINE}-dec-linux-${LIBC}+	echo "$UNAME_MACHINE"-dec-linux-"$LIBC" 	exit ;;     x86_64:Linux:*:*)-	echo ${UNAME_MACHINE}-pc-linux-${LIBC}+	echo "$UNAME_MACHINE"-pc-linux-"$LIBC" 	exit ;;     xtensa*:Linux:*:*)-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" 	exit ;;     i*86:DYNIX/ptx:4*:*) 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.@@ -1075,34 +1104,34 @@ 	# I am not positive that other SVR4 systems won't match this, 	# I just have to hope.  -- rms. 	# Use sysv4.2uw... so that sysv4* matches it.-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}+	echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" 	exit ;;     i*86:OS/2:*:*) 	# If we were able to find `uname', then EMX Unix compatibility 	# is probably installed.-	echo ${UNAME_MACHINE}-pc-os2-emx+	echo "$UNAME_MACHINE"-pc-os2-emx 	exit ;;     i*86:XTS-300:*:STOP)-	echo ${UNAME_MACHINE}-unknown-stop+	echo "$UNAME_MACHINE"-unknown-stop 	exit ;;     i*86:atheos:*:*)-	echo ${UNAME_MACHINE}-unknown-atheos+	echo "$UNAME_MACHINE"-unknown-atheos 	exit ;;     i*86:syllable:*:*)-	echo ${UNAME_MACHINE}-pc-syllable+	echo "$UNAME_MACHINE"-pc-syllable 	exit ;;     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)-	echo i386-unknown-lynxos${UNAME_RELEASE}+	echo i386-unknown-lynxos"$UNAME_RELEASE" 	exit ;;     i*86:*DOS:*:*)-	echo ${UNAME_MACHINE}-pc-msdosdjgpp+	echo "$UNAME_MACHINE"-pc-msdosdjgpp 	exit ;;-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`+    i*86:*:4.*:*)+	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}+		echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" 	else-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}+		echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" 	fi 	exit ;;     i*86:*:5:[678]*)@@ -1112,12 +1141,12 @@ 	    *Pentium)	     UNAME_MACHINE=i586 ;; 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;; 	esac-	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}+	echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" 	exit ;;     i*86:*:3.2:*) 	if test -f /usr/options/cb.name; then 		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL+		echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL" 	elif /bin/uname -X 2>/dev/null >/dev/null ; then 		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` 		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486@@ -1127,9 +1156,9 @@ 			&& UNAME_MACHINE=i686 		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ 			&& UNAME_MACHINE=i686-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL+		echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" 	else-		echo ${UNAME_MACHINE}-pc-sysv32+		echo "$UNAME_MACHINE"-pc-sysv32 	fi 	exit ;;     pc:*:*:*)@@ -1149,9 +1178,9 @@ 	exit ;;     i860:*:4.*:*) # i860-SVR4 	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4+	  echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 	else # Add other i860-SVR4 vendors below as they are discovered.-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4+	  echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4 	fi 	exit ;;     mini*:CTIX:SYS*5:*)@@ -1171,9 +1200,9 @@ 	test -r /etc/.relid \ 	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \-	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }+	  && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \-	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;+	  && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 	  && { echo i486-ncr-sysv4; exit; } ;;@@ -1182,28 +1211,28 @@ 	test -r /etc/.relid \ 	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \-	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }+	    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }+	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } 	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;+	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)-	echo m68k-unknown-lynxos${UNAME_RELEASE}+	echo m68k-unknown-lynxos"$UNAME_RELEASE" 	exit ;;     mc68030:UNIX_System_V:4.*:*) 	echo m68k-atari-sysv4 	exit ;;     TSUNAMI:LynxOS:2.*:*)-	echo sparc-unknown-lynxos${UNAME_RELEASE}+	echo sparc-unknown-lynxos"$UNAME_RELEASE" 	exit ;;     rs6000:LynxOS:2.*:*)-	echo rs6000-unknown-lynxos${UNAME_RELEASE}+	echo rs6000-unknown-lynxos"$UNAME_RELEASE" 	exit ;;     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)-	echo powerpc-unknown-lynxos${UNAME_RELEASE}+	echo powerpc-unknown-lynxos"$UNAME_RELEASE" 	exit ;;     SM[BE]S:UNIX_SV:*:*)-	echo mips-dde-sysv${UNAME_RELEASE}+	echo mips-dde-sysv"$UNAME_RELEASE" 	exit ;;     RM*:ReliantUNIX-*:*:*) 	echo mips-sni-sysv4@@ -1214,7 +1243,7 @@     *:SINIX-*:*:*) 	if uname -p 2>/dev/null >/dev/null ; then 		UNAME_MACHINE=`(uname -p) 2>/dev/null`-		echo ${UNAME_MACHINE}-sni-sysv4+		echo "$UNAME_MACHINE"-sni-sysv4 	else 		echo ns32k-sni-sysv 	fi@@ -1234,23 +1263,23 @@ 	exit ;;     i*86:VOS:*:*) 	# From Paul.Green@stratus.com.-	echo ${UNAME_MACHINE}-stratus-vos+	echo "$UNAME_MACHINE"-stratus-vos 	exit ;;     *:VOS:*:*) 	# From Paul.Green@stratus.com. 	echo hppa1.1-stratus-vos 	exit ;;     mc68*:A/UX:*:*)-	echo m68k-apple-aux${UNAME_RELEASE}+	echo m68k-apple-aux"$UNAME_RELEASE" 	exit ;;     news*:NEWS-OS:6*:*) 	echo mips-sony-newsos6 	exit ;;     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) 	if [ -d /usr/nec ]; then-		echo mips-nec-sysv${UNAME_RELEASE}+		echo mips-nec-sysv"$UNAME_RELEASE" 	else-		echo mips-unknown-sysv${UNAME_RELEASE}+		echo mips-unknown-sysv"$UNAME_RELEASE" 	fi 	exit ;;     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.@@ -1269,39 +1298,39 @@ 	echo x86_64-unknown-haiku 	exit ;;     SX-4:SUPER-UX:*:*)-	echo sx4-nec-superux${UNAME_RELEASE}+	echo sx4-nec-superux"$UNAME_RELEASE" 	exit ;;     SX-5:SUPER-UX:*:*)-	echo sx5-nec-superux${UNAME_RELEASE}+	echo sx5-nec-superux"$UNAME_RELEASE" 	exit ;;     SX-6:SUPER-UX:*:*)-	echo sx6-nec-superux${UNAME_RELEASE}+	echo sx6-nec-superux"$UNAME_RELEASE" 	exit ;;     SX-7:SUPER-UX:*:*)-	echo sx7-nec-superux${UNAME_RELEASE}+	echo sx7-nec-superux"$UNAME_RELEASE" 	exit ;;     SX-8:SUPER-UX:*:*)-	echo sx8-nec-superux${UNAME_RELEASE}+	echo sx8-nec-superux"$UNAME_RELEASE" 	exit ;;     SX-8R:SUPER-UX:*:*)-	echo sx8r-nec-superux${UNAME_RELEASE}+	echo sx8r-nec-superux"$UNAME_RELEASE" 	exit ;;     SX-ACE:SUPER-UX:*:*)-	echo sxace-nec-superux${UNAME_RELEASE}+	echo sxace-nec-superux"$UNAME_RELEASE" 	exit ;;     Power*:Rhapsody:*:*)-	echo powerpc-apple-rhapsody${UNAME_RELEASE}+	echo powerpc-apple-rhapsody"$UNAME_RELEASE" 	exit ;;     *:Rhapsody:*:*)-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}+	echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" 	exit ;;     *:Darwin:*:*) 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown-	eval $set_cc_for_build+	set_cc_for_build 	if test "$UNAME_PROCESSOR" = unknown ; then 	    UNAME_PROCESSOR=powerpc 	fi-	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then+	if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then 	    if [ "$CC_FOR_BUILD" != no_compiler_found ]; then 		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ 		       (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \@@ -1329,7 +1358,7 @@ 	    # that Apple uses in portable devices. 	    UNAME_PROCESSOR=x86_64 	fi-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}+	echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" 	exit ;;     *:procnto*:*:* | *:QNX:[0123456789]*:*) 	UNAME_PROCESSOR=`uname -p`@@ -1337,22 +1366,25 @@ 		UNAME_PROCESSOR=i386 		UNAME_MACHINE=pc 	fi-	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}+	echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" 	exit ;;     *:QNX:*:4*) 	echo i386-pc-qnx 	exit ;;     NEO-*:NONSTOP_KERNEL:*:*)-	echo neo-tandem-nsk${UNAME_RELEASE}+	echo neo-tandem-nsk"$UNAME_RELEASE" 	exit ;;     NSE-*:NONSTOP_KERNEL:*:*)-	echo nse-tandem-nsk${UNAME_RELEASE}+	echo nse-tandem-nsk"$UNAME_RELEASE" 	exit ;;     NSR-*:NONSTOP_KERNEL:*:*)-	echo nsr-tandem-nsk${UNAME_RELEASE}+	echo nsr-tandem-nsk"$UNAME_RELEASE" 	exit ;;+    NSV-*:NONSTOP_KERNEL:*:*)+	echo nsv-tandem-nsk"$UNAME_RELEASE"+	exit ;;     NSX-*:NONSTOP_KERNEL:*:*)-	echo nsx-tandem-nsk${UNAME_RELEASE}+	echo nsx-tandem-nsk"$UNAME_RELEASE" 	exit ;;     *:NonStop-UX:*:*) 	echo mips-compaq-nonstopux@@ -1361,18 +1393,19 @@ 	echo bs2000-siemens-sysv 	exit ;;     DS/*:UNIX_System_V:*:*)-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}+	echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" 	exit ;;     *:Plan9:*:*) 	# "uname -m" is not consistent, so use $cputype instead. 386 	# is converted to i386 for consistency with other x86 	# operating systems.+	# shellcheck disable=SC2154 	if test "$cputype" = 386; then 	    UNAME_MACHINE=i386 	else 	    UNAME_MACHINE="$cputype" 	fi-	echo ${UNAME_MACHINE}-unknown-plan9+	echo "$UNAME_MACHINE"-unknown-plan9 	exit ;;     *:TOPS-10:*:*) 	echo pdp10-unknown-tops10@@ -1393,14 +1426,14 @@ 	echo pdp10-unknown-its 	exit ;;     SEI:*:*:SEIUX)-	echo mips-sei-seiux${UNAME_RELEASE}+	echo mips-sei-seiux"$UNAME_RELEASE" 	exit ;;     *:DragonFly:*:*)-	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`+	echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" 	exit ;;     *:*VMS:*:*) 	UNAME_MACHINE=`(uname -p) 2>/dev/null`-	case "${UNAME_MACHINE}" in+	case "$UNAME_MACHINE" in 	    A*) echo alpha-dec-vms ; exit ;; 	    I*) echo ia64-dec-vms ; exit ;; 	    V*) echo vax-dec-vms ; exit ;;@@ -1409,32 +1442,171 @@ 	echo i386-pc-xenix 	exit ;;     i*86:skyos:*:*)-	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`+	echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" 	exit ;;     i*86:rdos:*:*)-	echo ${UNAME_MACHINE}-pc-rdos+	echo "$UNAME_MACHINE"-pc-rdos 	exit ;;     i*86:AROS:*:*)-	echo ${UNAME_MACHINE}-pc-aros+	echo "$UNAME_MACHINE"-pc-aros 	exit ;;     x86_64:VMkernel:*:*)-	echo ${UNAME_MACHINE}-unknown-esx+	echo "$UNAME_MACHINE"-unknown-esx 	exit ;;     amd64:Isilon\ OneFS:*:*) 	echo x86_64-unknown-onefs 	exit ;;+    *:Unleashed:*:*)+	echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"+	exit ;; esac +# No uname command or uname output not recognized.+set_cc_for_build+cat > "$dummy.c" <<EOF+#ifdef _SEQUENT_+#include <sys/types.h>+#include <sys/utsname.h>+#endif+main ()+{+#if defined (sony)+#if defined (MIPSEB)+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,+     I don't know....  */+  printf ("mips-sony-bsd\n"); exit (0);+#else+#include <sys/param.h>+  printf ("m68k-sony-newsos%s\n",+#ifdef NEWSOS4+  "4"+#else+  ""+#endif+  ); exit (0);+#endif+#endif++#if defined (NeXT)+#if !defined (__ARCHITECTURE__)+#define __ARCHITECTURE__ "m68k"+#endif+  int version;+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;+  if (version < 4)+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);+  else+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);+  exit (0);+#endif++#if defined (MULTIMAX) || defined (n16)+#if defined (UMAXV)+  printf ("ns32k-encore-sysv\n"); exit (0);+#else+#if defined (CMU)+  printf ("ns32k-encore-mach\n"); exit (0);+#else+  printf ("ns32k-encore-bsd\n"); exit (0);+#endif+#endif+#endif++#if defined (__386BSD__)+  printf ("i386-pc-bsd\n"); exit (0);+#endif++#if defined (sequent)+#if defined (i386)+  printf ("i386-sequent-dynix\n"); exit (0);+#endif+#if defined (ns32000)+  printf ("ns32k-sequent-dynix\n"); exit (0);+#endif+#endif++#if defined (_SEQUENT_)+  struct utsname un;++  uname(&un);+  if (strncmp(un.version, "V2", 2) == 0) {+    printf ("i386-sequent-ptx2\n"); exit (0);+  }+  if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */+    printf ("i386-sequent-ptx1\n"); exit (0);+  }+  printf ("i386-sequent-ptx\n"); exit (0);+#endif++#if defined (vax)+#if !defined (ultrix)+#include <sys/param.h>+#if defined (BSD)+#if BSD == 43+  printf ("vax-dec-bsd4.3\n"); exit (0);+#else+#if BSD == 199006+  printf ("vax-dec-bsd4.3reno\n"); exit (0);+#else+  printf ("vax-dec-bsd\n"); exit (0);+#endif+#endif+#else+  printf ("vax-dec-bsd\n"); exit (0);+#endif+#else+  printf ("vax-dec-ultrix\n"); exit (0);+#endif+#endif+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)+#include <signal.h>+#if defined(_SIZE_T_) /* >= ULTRIX4 */+  printf ("mips-dec-ultrix4\n"); exit (0);+#else+#if defined(ULTRIX3) || defined(ultrix3) || defined(SIGLOST)+  printf ("mips-dec-ultrix3\n"); exit (0);+#endif+#endif+#endif+#endif++#if defined (alliant) && defined (i860)+  printf ("i860-alliant-bsd\n"); exit (0);+#endif++  exit (1);+}+EOF++$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` &&+	{ echo "$SYSTEM_NAME"; exit; }++# Apollos put the system type in the environment.+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }++echo "$0: unable to guess system type" >&2++case "$UNAME_MACHINE:$UNAME_SYSTEM" in+    mips:Linux | mips64:Linux)+	# If we got here on MIPS GNU/Linux, output extra information.+	cat >&2 <<EOF++NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize+the system type. Please install a C compiler and try again.+EOF+	;;+esac+ cat >&2 <<EOF-$0: unable to guess system type  This script (version $timestamp), has failed to recognize the operating system you are using. If your script is old, overwrite *all* copies of config.guess and config.sub with the latest versions from: -  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess and-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub  If $0 has already been updated, send the following data and any information you think might be pertinent to config-patches@gnu.org to@@ -1457,16 +1629,16 @@ /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE}-UNAME_RELEASE = ${UNAME_RELEASE}-UNAME_SYSTEM  = ${UNAME_SYSTEM}-UNAME_VERSION = ${UNAME_VERSION}+UNAME_MACHINE = "$UNAME_MACHINE"+UNAME_RELEASE = "$UNAME_RELEASE"+UNAME_SYSTEM  = "$UNAME_SYSTEM"+UNAME_VERSION = "$UNAME_VERSION" EOF  exit 1  # Local variables:-# eval: (add-hook 'write-file-hooks 'time-stamp)+# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'"
config.sub view
@@ -1,1835 +1,1797 @@ #! /bin/sh # Configuration validation subroutine script.-#   Copyright 1992-2017 Free Software Foundation, Inc.--timestamp='2017-04-02'--# This file is free software; you can redistribute it and/or modify it-# under the terms of the GNU General Public License as published by-# the Free Software Foundation; either version 3 of the License, or-# (at your option) any later version.-#-# This program is distributed in the hope that it will be useful, but-# WITHOUT ANY WARRANTY; without even the implied warranty of-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU-# General Public License for more details.-#-# You should have received a copy of the GNU General Public License-# along with this program; if not, see <http://www.gnu.org/licenses/>.-#-# As a special exception to the GNU General Public License, if you-# distribute this file as part of a program that contains a-# configuration script generated by Autoconf, you may include it under-# the same distribution terms that you use for the rest of that-# program.  This Exception is an additional permission under section 7-# of the GNU General Public License, version 3 ("GPLv3").---# Please send patches to <config-patches@gnu.org>.-#-# Configuration subroutine to validate and canonicalize a configuration type.-# Supply the specified configuration type as an argument.-# If it is invalid, we print an error message on stderr and exit with code 1.-# Otherwise, we print the canonical config type on stdout and succeed.--# You can get the latest version of this script from:-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub--# This file is supposed to be the same for all GNU packages-# and recognize all the CPU types, system types and aliases-# that are meaningful with *any* GNU software.-# Each package is responsible for reporting which valid configurations-# it does not support.  The user should be able to distinguish-# a failure to support a valid configuration from a meaningless-# configuration.--# The goal of this file is to map all the various variations of a given-# machine specification into a single specification in the form:-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM-# or in some cases, the newer four-part form:-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM-# It is wrong to echo any other type of specification.--me=`echo "$0" | sed -e 's,.*/,,'`--usage="\-Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS--Canonicalize a configuration name.--Operation modes:-  -h, --help         print this help, then exit-  -t, --time-stamp   print date of last modification, then exit-  -v, --version      print version number, then exit--Report bugs and patches to <config-patches@gnu.org>."--version="\-GNU config.sub ($timestamp)--Copyright 1992-2017 Free Software Foundation, Inc.--This is free software; see the source for copying conditions.  There is NO-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."--help="-Try \`$me --help' for more information."--# Parse command line-while test $# -gt 0 ; do-  case $1 in-    --time-stamp | --time* | -t )-       echo "$timestamp" ; exit ;;-    --version | -v )-       echo "$version" ; exit ;;-    --help | --h* | -h )-       echo "$usage"; exit ;;-    -- )     # Stop option processing-       shift; break ;;-    - )	# Use stdin as input.-       break ;;-    -* )-       echo "$me: invalid option $1$help"-       exit 1 ;;--    *local*)-       # First pass through any local machine types.-       echo $1-       exit ;;--    * )-       break ;;-  esac-done--case $# in- 0) echo "$me: missing argument$help" >&2-    exit 1;;- 1) ;;- *) echo "$me: too many arguments$help" >&2-    exit 1;;-esac--# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).-# Here we must recognize all the valid KERNEL-OS combinations.-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`-case $maybe_os in-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \-  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \-  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \-  kopensolaris*-gnu* | cloudabi*-eabi* | \-  storm-chaos* | os2-emx* | rtmk-nova*)-    os=-$maybe_os-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-    ;;-  android-linux)-    os=-linux-android-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown-    ;;-  *)-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`-    if [ $basic_machine != $1 ]-    then os=`echo $1 | sed 's/.*-/-/'`-    else os=; fi-    ;;-esac--### Let's recognize common machines as not being operating systems so-### that things like config.sub decstation-3100 work.  We also-### recognize some manufacturers as not being operating systems, so we-### can provide default operating systems below.-case $os in-	-sun*os*)-		# Prevent following clause from handling this invalid input.-		;;-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \-	-apple | -axis | -knuth | -cray | -microblaze*)-		os=-		basic_machine=$1-		;;-	-bluegene*)-		os=-cnk-		;;-	-sim | -cisco | -oki | -wec | -winbond)-		os=-		basic_machine=$1-		;;-	-scout)-		;;-	-wrs)-		os=-vxworks-		basic_machine=$1-		;;-	-chorusos*)-		os=-chorusos-		basic_machine=$1-		;;-	-chorusrdb)-		os=-chorusrdb-		basic_machine=$1-		;;-	-hiux*)-		os=-hiuxwe2-		;;-	-sco6)-		os=-sco5v6-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco5)-		os=-sco3.2v5-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco4)-		os=-sco3.2v4-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco3.2.[4-9]*)-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco3.2v[4-9]*)-		# Don't forget version if it is 3.2v4 or newer.-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco5v6*)-		# Don't forget version if it is 3.2v4 or newer.-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-sco*)-		os=-sco3.2v2-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-udk*)-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-isc)-		os=-isc2.2-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-clix*)-		basic_machine=clipper-intergraph-		;;-	-isc*)-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`-		;;-	-lynx*178)-		os=-lynxos178-		;;-	-lynx*5)-		os=-lynxos5-		;;-	-lynx*)-		os=-lynxos-		;;-	-ptx*)-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`-		;;-	-windowsnt*)-		os=`echo $os | sed -e 's/windowsnt/winnt/'`-		;;-	-psos*)-		os=-psos-		;;-	-mint | -mint[0-9]*)-		basic_machine=m68k-atari-		os=-mint-		;;-esac--# Decode aliases for certain CPU-COMPANY combinations.-case $basic_machine in-	# Recognize the basic CPU types without company name.-	# Some are omitted here because they have special meanings below.-	1750a | 580 \-	| a29k \-	| aarch64 | aarch64_be \-	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \-	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \-	| am33_2.0 \-	| arc | arceb \-	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \-	| avr | avr32 \-	| ba \-	| be32 | be64 \-	| bfin \-	| c4x | c8051 | clipper \-	| d10v | d30v | dlx | dsp16xx \-	| e2k | epiphany \-	| fido | fr30 | frv | ft32 \-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \-	| hexagon \-	| i370 | i860 | i960 | ia16 | ia64 \-	| ip2k | iq2000 \-	| k1om \-	| le32 | le64 \-	| lm32 \-	| m32c | m32r | m32rle | m68000 | m68k | m88k \-	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \-	| mips | mipsbe | mipseb | mipsel | mipsle \-	| mips16 \-	| mips64 | mips64el \-	| mips64octeon | mips64octeonel \-	| mips64orion | mips64orionel \-	| mips64r5900 | mips64r5900el \-	| mips64vr | mips64vrel \-	| mips64vr4100 | mips64vr4100el \-	| mips64vr4300 | mips64vr4300el \-	| mips64vr5000 | mips64vr5000el \-	| mips64vr5900 | mips64vr5900el \-	| mipsisa32 | mipsisa32el \-	| mipsisa32r2 | mipsisa32r2el \-	| mipsisa32r6 | mipsisa32r6el \-	| mipsisa64 | mipsisa64el \-	| mipsisa64r2 | mipsisa64r2el \-	| mipsisa64r6 | mipsisa64r6el \-	| mipsisa64sb1 | mipsisa64sb1el \-	| mipsisa64sr71k | mipsisa64sr71kel \-	| mipsr5900 | mipsr5900el \-	| mipstx39 | mipstx39el \-	| mn10200 | mn10300 \-	| moxie \-	| mt \-	| msp430 \-	| nds32 | nds32le | nds32be \-	| nios | nios2 | nios2eb | nios2el \-	| ns16k | ns32k \-	| open8 | or1k | or1knd | or32 \-	| pdp10 | pdp11 | pj | pjl \-	| powerpc | powerpc64 | powerpc64le | powerpcle \-	| pru \-	| pyramid \-	| riscv32 | riscv64 \-	| rl78 | rx \-	| score \-	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \-	| sh64 | sh64le \-	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \-	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \-	| spu \-	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \-	| ubicom32 \-	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \-	| visium \-	| wasm32 \-	| we32k \-	| x86 | xc16x | xstormy16 | xtensa \-	| z8k | z80)-		basic_machine=$basic_machine-unknown-		;;-	c54x)-		basic_machine=tic54x-unknown-		;;-	c55x)-		basic_machine=tic55x-unknown-		;;-	c6x)-		basic_machine=tic6x-unknown-		;;-	leon|leon[3-9])-		basic_machine=sparc-$basic_machine-		;;-	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)-		basic_machine=$basic_machine-unknown-		os=-none-		;;-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)-		;;-	ms1)-		basic_machine=mt-unknown-		;;--	strongarm | thumb | xscale)-		basic_machine=arm-unknown-		;;-	xgate)-		basic_machine=$basic_machine-unknown-		os=-none-		;;-	xscaleeb)-		basic_machine=armeb-unknown-		;;--	xscaleel)-		basic_machine=armel-unknown-		;;--	# We use `pc' rather than `unknown'-	# because (1) that's what they normally are, and-	# (2) the word "unknown" tends to confuse beginning users.-	i*86 | x86_64)-	  basic_machine=$basic_machine-pc-	  ;;-	# Object if more than one company name word.-	*-*-*)-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2-		exit 1-		;;-	# Recognize the basic CPU types with company name.-	580-* \-	| a29k-* \-	| aarch64-* | aarch64_be-* \-	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \-	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \-	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \-	| avr-* | avr32-* \-	| ba-* \-	| be32-* | be64-* \-	| bfin-* | bs2000-* \-	| c[123]* | c30-* | [cjt]90-* | c4x-* \-	| c8051-* | clipper-* | craynv-* | cydra-* \-	| d10v-* | d30v-* | dlx-* \-	| e2k-* | elxsi-* \-	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \-	| h8300-* | h8500-* \-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \-	| hexagon-* \-	| i*86-* | i860-* | i960-* | ia16-* | ia64-* \-	| ip2k-* | iq2000-* \-	| k1om-* \-	| le32-* | le64-* \-	| lm32-* \-	| m32c-* | m32r-* | m32rle-* \-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \-	| microblaze-* | microblazeel-* \-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \-	| mips16-* \-	| mips64-* | mips64el-* \-	| mips64octeon-* | mips64octeonel-* \-	| mips64orion-* | mips64orionel-* \-	| mips64r5900-* | mips64r5900el-* \-	| mips64vr-* | mips64vrel-* \-	| mips64vr4100-* | mips64vr4100el-* \-	| mips64vr4300-* | mips64vr4300el-* \-	| mips64vr5000-* | mips64vr5000el-* \-	| mips64vr5900-* | mips64vr5900el-* \-	| mipsisa32-* | mipsisa32el-* \-	| mipsisa32r2-* | mipsisa32r2el-* \-	| mipsisa32r6-* | mipsisa32r6el-* \-	| mipsisa64-* | mipsisa64el-* \-	| mipsisa64r2-* | mipsisa64r2el-* \-	| mipsisa64r6-* | mipsisa64r6el-* \-	| mipsisa64sb1-* | mipsisa64sb1el-* \-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \-	| mipsr5900-* | mipsr5900el-* \-	| mipstx39-* | mipstx39el-* \-	| mmix-* \-	| mt-* \-	| msp430-* \-	| nds32-* | nds32le-* | nds32be-* \-	| nios-* | nios2-* | nios2eb-* | nios2el-* \-	| none-* | np1-* | ns16k-* | ns32k-* \-	| open8-* \-	| or1k*-* \-	| orion-* \-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \-	| pru-* \-	| pyramid-* \-	| riscv32-* | riscv64-* \-	| rl78-* | romp-* | rs6000-* | rx-* \-	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \-	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \-	| sparclite-* \-	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \-	| tahoe-* \-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \-	| tile*-* \-	| tron-* \-	| ubicom32-* \-	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \-	| vax-* \-	| visium-* \-	| wasm32-* \-	| we32k-* \-	| x86-* | x86_64-* | xc16x-* | xps100-* \-	| xstormy16-* | xtensa*-* \-	| ymp-* \-	| z8k-* | z80-*)-		;;-	# Recognize the basic CPU types without company name, with glob match.-	xtensa*)-		basic_machine=$basic_machine-unknown-		;;-	# Recognize the various machine names and aliases which stand-	# for a CPU type and a company and sometimes even an OS.-	386bsd)-		basic_machine=i386-unknown-		os=-bsd-		;;-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)-		basic_machine=m68000-att-		;;-	3b*)-		basic_machine=we32k-att-		;;-	a29khif)-		basic_machine=a29k-amd-		os=-udi-		;;-	abacus)-		basic_machine=abacus-unknown-		;;-	adobe68k)-		basic_machine=m68010-adobe-		os=-scout-		;;-	alliant | fx80)-		basic_machine=fx80-alliant-		;;-	altos | altos3068)-		basic_machine=m68k-altos-		;;-	am29k)-		basic_machine=a29k-none-		os=-bsd-		;;-	amd64)-		basic_machine=x86_64-pc-		;;-	amd64-*)-		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	amdahl)-		basic_machine=580-amdahl-		os=-sysv-		;;-	amiga | amiga-*)-		basic_machine=m68k-unknown-		;;-	amigaos | amigados)-		basic_machine=m68k-unknown-		os=-amigaos-		;;-	amigaunix | amix)-		basic_machine=m68k-unknown-		os=-sysv4-		;;-	apollo68)-		basic_machine=m68k-apollo-		os=-sysv-		;;-	apollo68bsd)-		basic_machine=m68k-apollo-		os=-bsd-		;;-	aros)-		basic_machine=i386-pc-		os=-aros-		;;-	asmjs)-		basic_machine=asmjs-unknown-		;;-	aux)-		basic_machine=m68k-apple-		os=-aux-		;;-	balance)-		basic_machine=ns32k-sequent-		os=-dynix-		;;-	blackfin)-		basic_machine=bfin-unknown-		os=-linux-		;;-	blackfin-*)-		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`-		os=-linux-		;;-	bluegene*)-		basic_machine=powerpc-ibm-		os=-cnk-		;;-	c54x-*)-		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	c55x-*)-		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	c6x-*)-		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	c90)-		basic_machine=c90-cray-		os=-unicos-		;;-	cegcc)-		basic_machine=arm-unknown-		os=-cegcc-		;;-	convex-c1)-		basic_machine=c1-convex-		os=-bsd-		;;-	convex-c2)-		basic_machine=c2-convex-		os=-bsd-		;;-	convex-c32)-		basic_machine=c32-convex-		os=-bsd-		;;-	convex-c34)-		basic_machine=c34-convex-		os=-bsd-		;;-	convex-c38)-		basic_machine=c38-convex-		os=-bsd-		;;-	cray | j90)-		basic_machine=j90-cray-		os=-unicos-		;;-	craynv)-		basic_machine=craynv-cray-		os=-unicosmp-		;;-	cr16 | cr16-*)-		basic_machine=cr16-unknown-		os=-elf-		;;-	crds | unos)-		basic_machine=m68k-crds-		;;-	crisv32 | crisv32-* | etraxfs*)-		basic_machine=crisv32-axis-		;;-	cris | cris-* | etrax*)-		basic_machine=cris-axis-		;;-	crx)-		basic_machine=crx-unknown-		os=-elf-		;;-	da30 | da30-*)-		basic_machine=m68k-da30-		;;-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)-		basic_machine=mips-dec-		;;-	decsystem10* | dec10*)-		basic_machine=pdp10-dec-		os=-tops10-		;;-	decsystem20* | dec20*)-		basic_machine=pdp10-dec-		os=-tops20-		;;-	delta | 3300 | motorola-3300 | motorola-delta \-	      | 3300-motorola | delta-motorola)-		basic_machine=m68k-motorola-		;;-	delta88)-		basic_machine=m88k-motorola-		os=-sysv3-		;;-	dicos)-		basic_machine=i686-pc-		os=-dicos-		;;-	djgpp)-		basic_machine=i586-pc-		os=-msdosdjgpp-		;;-	dpx20 | dpx20-*)-		basic_machine=rs6000-bull-		os=-bosx-		;;-	dpx2* | dpx2*-bull)-		basic_machine=m68k-bull-		os=-sysv3-		;;-	e500v[12])-		basic_machine=powerpc-unknown-		os=$os"spe"-		;;-	e500v[12]-*)-		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`-		os=$os"spe"-		;;-	ebmon29k)-		basic_machine=a29k-amd-		os=-ebmon-		;;-	elxsi)-		basic_machine=elxsi-elxsi-		os=-bsd-		;;-	encore | umax | mmax)-		basic_machine=ns32k-encore-		;;-	es1800 | OSE68k | ose68k | ose | OSE)-		basic_machine=m68k-ericsson-		os=-ose-		;;-	fx2800)-		basic_machine=i860-alliant-		;;-	genix)-		basic_machine=ns32k-ns-		;;-	gmicro)-		basic_machine=tron-gmicro-		os=-sysv-		;;-	go32)-		basic_machine=i386-pc-		os=-go32-		;;-	h3050r* | hiux*)-		basic_machine=hppa1.1-hitachi-		os=-hiuxwe2-		;;-	h8300hms)-		basic_machine=h8300-hitachi-		os=-hms-		;;-	h8300xray)-		basic_machine=h8300-hitachi-		os=-xray-		;;-	h8500hms)-		basic_machine=h8500-hitachi-		os=-hms-		;;-	harris)-		basic_machine=m88k-harris-		os=-sysv3-		;;-	hp300-*)-		basic_machine=m68k-hp-		;;-	hp300bsd)-		basic_machine=m68k-hp-		os=-bsd-		;;-	hp300hpux)-		basic_machine=m68k-hp-		os=-hpux-		;;-	hp3k9[0-9][0-9] | hp9[0-9][0-9])-		basic_machine=hppa1.0-hp-		;;-	hp9k2[0-9][0-9] | hp9k31[0-9])-		basic_machine=m68000-hp-		;;-	hp9k3[2-9][0-9])-		basic_machine=m68k-hp-		;;-	hp9k6[0-9][0-9] | hp6[0-9][0-9])-		basic_machine=hppa1.0-hp-		;;-	hp9k7[0-79][0-9] | hp7[0-79][0-9])-		basic_machine=hppa1.1-hp-		;;-	hp9k78[0-9] | hp78[0-9])-		# FIXME: really hppa2.0-hp-		basic_machine=hppa1.1-hp-		;;-	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)-		# FIXME: really hppa2.0-hp-		basic_machine=hppa1.1-hp-		;;-	hp9k8[0-9][13679] | hp8[0-9][13679])-		basic_machine=hppa1.1-hp-		;;-	hp9k8[0-9][0-9] | hp8[0-9][0-9])-		basic_machine=hppa1.0-hp-		;;-	hppa-next)-		os=-nextstep3-		;;-	hppaosf)-		basic_machine=hppa1.1-hp-		os=-osf-		;;-	hppro)-		basic_machine=hppa1.1-hp-		os=-proelf-		;;-	i370-ibm* | ibm*)-		basic_machine=i370-ibm-		;;-	i*86v32)-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`-		os=-sysv32-		;;-	i*86v4*)-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`-		os=-sysv4-		;;-	i*86v)-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`-		os=-sysv-		;;-	i*86sol2)-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`-		os=-solaris2-		;;-	i386mach)-		basic_machine=i386-mach-		os=-mach-		;;-	i386-vsta | vsta)-		basic_machine=i386-unknown-		os=-vsta-		;;-	iris | iris4d)-		basic_machine=mips-sgi-		case $os in-		    -irix*)-			;;-		    *)-			os=-irix4-			;;-		esac-		;;-	isi68 | isi)-		basic_machine=m68k-isi-		os=-sysv-		;;-	leon-*|leon[3-9]-*)-		basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`-		;;-	m68knommu)-		basic_machine=m68k-unknown-		os=-linux-		;;-	m68knommu-*)-		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`-		os=-linux-		;;-	m88k-omron*)-		basic_machine=m88k-omron-		;;-	magnum | m3230)-		basic_machine=mips-mips-		os=-sysv-		;;-	merlin)-		basic_machine=ns32k-utek-		os=-sysv-		;;-	microblaze*)-		basic_machine=microblaze-xilinx-		;;-	mingw64)-		basic_machine=x86_64-pc-		os=-mingw64-		;;-	mingw32)-		basic_machine=i686-pc-		os=-mingw32-		;;-	mingw32ce)-		basic_machine=arm-unknown-		os=-mingw32ce-		;;-	miniframe)-		basic_machine=m68000-convergent-		;;-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)-		basic_machine=m68k-atari-		os=-mint-		;;-	mips3*-*)-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-		;;-	mips3*)-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown-		;;-	monitor)-		basic_machine=m68k-rom68k-		os=-coff-		;;-	morphos)-		basic_machine=powerpc-unknown-		os=-morphos-		;;-	moxiebox)-		basic_machine=moxie-unknown-		os=-moxiebox-		;;-	msdos)-		basic_machine=i386-pc-		os=-msdos-		;;-	ms1-*)-		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`-		;;-	msys)-		basic_machine=i686-pc-		os=-msys-		;;-	mvs)-		basic_machine=i370-ibm-		os=-mvs-		;;-	nacl)-		basic_machine=le32-unknown-		os=-nacl-		;;-	ncr3000)-		basic_machine=i486-ncr-		os=-sysv4-		;;-	netbsd386)-		basic_machine=i386-unknown-		os=-netbsd-		;;-	netwinder)-		basic_machine=armv4l-rebel-		os=-linux-		;;-	news | news700 | news800 | news900)-		basic_machine=m68k-sony-		os=-newsos-		;;-	news1000)-		basic_machine=m68030-sony-		os=-newsos-		;;-	news-3600 | risc-news)-		basic_machine=mips-sony-		os=-newsos-		;;-	necv70)-		basic_machine=v70-nec-		os=-sysv-		;;-	next | m*-next )-		basic_machine=m68k-next-		case $os in-		    -nextstep* )-			;;-		    -ns2*)-		      os=-nextstep2-			;;-		    *)-		      os=-nextstep3-			;;-		esac-		;;-	nh3000)-		basic_machine=m68k-harris-		os=-cxux-		;;-	nh[45]000)-		basic_machine=m88k-harris-		os=-cxux-		;;-	nindy960)-		basic_machine=i960-intel-		os=-nindy-		;;-	mon960)-		basic_machine=i960-intel-		os=-mon960-		;;-	nonstopux)-		basic_machine=mips-compaq-		os=-nonstopux-		;;-	np1)-		basic_machine=np1-gould-		;;-	neo-tandem)-		basic_machine=neo-tandem-		;;-	nse-tandem)-		basic_machine=nse-tandem-		;;-	nsr-tandem)-		basic_machine=nsr-tandem-		;;-	nsx-tandem)-		basic_machine=nsx-tandem-		;;-	op50n-* | op60c-*)-		basic_machine=hppa1.1-oki-		os=-proelf-		;;-	openrisc | openrisc-*)-		basic_machine=or32-unknown-		;;-	os400)-		basic_machine=powerpc-ibm-		os=-os400-		;;-	OSE68000 | ose68000)-		basic_machine=m68000-ericsson-		os=-ose-		;;-	os68k)-		basic_machine=m68k-none-		os=-os68k-		;;-	pa-hitachi)-		basic_machine=hppa1.1-hitachi-		os=-hiuxwe2-		;;-	paragon)-		basic_machine=i860-intel-		os=-osf-		;;-	parisc)-		basic_machine=hppa-unknown-		os=-linux-		;;-	parisc-*)-		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`-		os=-linux-		;;-	pbd)-		basic_machine=sparc-tti-		;;-	pbb)-		basic_machine=m68k-tti-		;;-	pc532 | pc532-*)-		basic_machine=ns32k-pc532-		;;-	pc98)-		basic_machine=i386-pc-		;;-	pc98-*)-		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	pentium | p5 | k5 | k6 | nexgen | viac3)-		basic_machine=i586-pc-		;;-	pentiumpro | p6 | 6x86 | athlon | athlon_*)-		basic_machine=i686-pc-		;;-	pentiumii | pentium2 | pentiumiii | pentium3)-		basic_machine=i686-pc-		;;-	pentium4)-		basic_machine=i786-pc-		;;-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	pentiumpro-* | p6-* | 6x86-* | athlon-*)-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	pentium4-*)-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	pn)-		basic_machine=pn-gould-		;;-	power)	basic_machine=power-ibm-		;;-	ppc | ppcbe)	basic_machine=powerpc-unknown-		;;-	ppc-* | ppcbe-*)-		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	ppcle | powerpclittle)-		basic_machine=powerpcle-unknown-		;;-	ppcle-* | powerpclittle-*)-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	ppc64)	basic_machine=powerpc64-unknown-		;;-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	ppc64le | powerpc64little)-		basic_machine=powerpc64le-unknown-		;;-	ppc64le-* | powerpc64little-*)-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	ps2)-		basic_machine=i386-ibm-		;;-	pw32)-		basic_machine=i586-unknown-		os=-pw32-		;;-	rdos | rdos64)-		basic_machine=x86_64-pc-		os=-rdos-		;;-	rdos32)-		basic_machine=i386-pc-		os=-rdos-		;;-	rom68k)-		basic_machine=m68k-rom68k-		os=-coff-		;;-	rm[46]00)-		basic_machine=mips-siemens-		;;-	rtpc | rtpc-*)-		basic_machine=romp-ibm-		;;-	s390 | s390-*)-		basic_machine=s390-ibm-		;;-	s390x | s390x-*)-		basic_machine=s390x-ibm-		;;-	sa29200)-		basic_machine=a29k-amd-		os=-udi-		;;-	sb1)-		basic_machine=mipsisa64sb1-unknown-		;;-	sb1el)-		basic_machine=mipsisa64sb1el-unknown-		;;-	sde)-		basic_machine=mipsisa32-sde-		os=-elf-		;;-	sei)-		basic_machine=mips-sei-		os=-seiux-		;;-	sequent)-		basic_machine=i386-sequent-		;;-	sh)-		basic_machine=sh-hitachi-		os=-hms-		;;-	sh5el)-		basic_machine=sh5le-unknown-		;;-	sh64)-		basic_machine=sh64-unknown-		;;-	sparclite-wrs | simso-wrs)-		basic_machine=sparclite-wrs-		os=-vxworks-		;;-	sps7)-		basic_machine=m68k-bull-		os=-sysv2-		;;-	spur)-		basic_machine=spur-unknown-		;;-	st2000)-		basic_machine=m68k-tandem-		;;-	stratus)-		basic_machine=i860-stratus-		os=-sysv4-		;;-	strongarm-* | thumb-*)-		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`-		;;-	sun2)-		basic_machine=m68000-sun-		;;-	sun2os3)-		basic_machine=m68000-sun-		os=-sunos3-		;;-	sun2os4)-		basic_machine=m68000-sun-		os=-sunos4-		;;-	sun3os3)-		basic_machine=m68k-sun-		os=-sunos3-		;;-	sun3os4)-		basic_machine=m68k-sun-		os=-sunos4-		;;-	sun4os3)-		basic_machine=sparc-sun-		os=-sunos3-		;;-	sun4os4)-		basic_machine=sparc-sun-		os=-sunos4-		;;-	sun4sol2)-		basic_machine=sparc-sun-		os=-solaris2-		;;-	sun3 | sun3-*)-		basic_machine=m68k-sun-		;;-	sun4)-		basic_machine=sparc-sun-		;;-	sun386 | sun386i | roadrunner)-		basic_machine=i386-sun-		;;-	sv1)-		basic_machine=sv1-cray-		os=-unicos-		;;-	symmetry)-		basic_machine=i386-sequent-		os=-dynix-		;;-	t3e)-		basic_machine=alphaev5-cray-		os=-unicos-		;;-	t90)-		basic_machine=t90-cray-		os=-unicos-		;;-	tile*)-		basic_machine=$basic_machine-unknown-		os=-linux-gnu-		;;-	tx39)-		basic_machine=mipstx39-unknown-		;;-	tx39el)-		basic_machine=mipstx39el-unknown-		;;-	toad1)-		basic_machine=pdp10-xkl-		os=-tops20-		;;-	tower | tower-32)-		basic_machine=m68k-ncr-		;;-	tpf)-		basic_machine=s390x-ibm-		os=-tpf-		;;-	udi29k)-		basic_machine=a29k-amd-		os=-udi-		;;-	ultra3)-		basic_machine=a29k-nyu-		os=-sym1-		;;-	v810 | necv810)-		basic_machine=v810-nec-		os=-none-		;;-	vaxv)-		basic_machine=vax-dec-		os=-sysv-		;;-	vms)-		basic_machine=vax-dec-		os=-vms-		;;-	vpp*|vx|vx-*)-		basic_machine=f301-fujitsu-		;;-	vxworks960)-		basic_machine=i960-wrs-		os=-vxworks-		;;-	vxworks68)-		basic_machine=m68k-wrs-		os=-vxworks-		;;-	vxworks29k)-		basic_machine=a29k-wrs-		os=-vxworks-		;;-	wasm32)-		basic_machine=wasm32-unknown-		;;-	w65*)-		basic_machine=w65-wdc-		os=-none-		;;-	w89k-*)-		basic_machine=hppa1.1-winbond-		os=-proelf-		;;-	xbox)-		basic_machine=i686-pc-		os=-mingw32-		;;-	xps | xps100)-		basic_machine=xps100-honeywell-		;;-	xscale-* | xscalee[bl]-*)-		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`-		;;-	ymp)-		basic_machine=ymp-cray-		os=-unicos-		;;-	z8k-*-coff)-		basic_machine=z8k-unknown-		os=-sim-		;;-	z80-*-coff)-		basic_machine=z80-unknown-		os=-sim-		;;-	none)-		basic_machine=none-none-		os=-none-		;;--# Here we handle the default manufacturer of certain CPU types.  It is in-# some cases the only manufacturer, in others, it is the most popular.-	w89k)-		basic_machine=hppa1.1-winbond-		;;-	op50n)-		basic_machine=hppa1.1-oki-		;;-	op60c)-		basic_machine=hppa1.1-oki-		;;-	romp)-		basic_machine=romp-ibm-		;;-	mmix)-		basic_machine=mmix-knuth-		;;-	rs6000)-		basic_machine=rs6000-ibm-		;;-	vax)-		basic_machine=vax-dec-		;;-	pdp10)-		# there are many clones, so DEC is not a safe bet-		basic_machine=pdp10-unknown-		;;-	pdp11)-		basic_machine=pdp11-dec-		;;-	we32k)-		basic_machine=we32k-att-		;;-	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)-		basic_machine=sh-unknown-		;;-	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)-		basic_machine=sparc-sun-		;;-	cydra)-		basic_machine=cydra-cydrome-		;;-	orion)-		basic_machine=orion-highlevel-		;;-	orion105)-		basic_machine=clipper-highlevel-		;;-	mac | mpw | mac-mpw)-		basic_machine=m68k-apple-		;;-	pmac | pmac-mpw)-		basic_machine=powerpc-apple-		;;-	*-unknown)-		# Make sure to match an already-canonicalized machine name.-		;;-	*)-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2-		exit 1-		;;-esac--# Here we canonicalize certain aliases for manufacturers.-case $basic_machine in-	*-digital*)-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`-		;;-	*-commodore*)-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`-		;;-	*)-		;;-esac--# Decode manufacturer-specific aliases for certain operating systems.--if [ x"$os" != x"" ]-then-case $os in-	# First match some system type aliases-	# that might get confused with valid system types.-	# -solaris* is a basic system type, with this one exception.-	-auroraux)-		os=-auroraux-		;;-	-solaris1 | -solaris1.*)-		os=`echo $os | sed -e 's|solaris1|sunos4|'`-		;;-	-solaris)-		os=-solaris2-		;;-	-svr4*)-		os=-sysv4-		;;-	-unixware*)-		os=-sysv4.2uw-		;;-	-gnu/linux*)-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`-		;;-	# First accept the basic system types.-	# The portable systems comes first.-	# Each alternative MUST END IN A *, to match a version number.-	# -sysv* is not here because it comes later, after sysvr4.-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \-	      | -sym* | -kopensolaris* | -plan9* \-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \-	      | -aos* | -aros* | -cloudabi* | -sortix* \-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \-	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \-	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \-	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \-	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \-	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \-	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \-	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \-	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \-	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \-	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \-	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \-	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \-	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)-	# Remember, each alternative MUST END IN *, to match a version number.-		;;-	-qnx*)-		case $basic_machine in-		    x86-* | i*86-*)-			;;-		    *)-			os=-nto$os-			;;-		esac-		;;-	-nto-qnx*)-		;;-	-nto*)-		os=`echo $os | sed -e 's|nto|nto-qnx|'`-		;;-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)-		;;-	-mac*)-		os=`echo $os | sed -e 's|mac|macos|'`-		;;-	-linux-dietlibc)-		os=-linux-dietlibc-		;;-	-linux*)-		os=`echo $os | sed -e 's|linux|linux-gnu|'`-		;;-	-sunos5*)-		os=`echo $os | sed -e 's|sunos5|solaris2|'`-		;;-	-sunos6*)-		os=`echo $os | sed -e 's|sunos6|solaris3|'`-		;;-	-opened*)-		os=-openedition-		;;-	-os400*)-		os=-os400-		;;-	-wince*)-		os=-wince-		;;-	-osfrose*)-		os=-osfrose-		;;-	-osf*)-		os=-osf-		;;-	-utek*)-		os=-bsd-		;;-	-dynix*)-		os=-bsd-		;;-	-acis*)-		os=-aos-		;;-	-atheos*)-		os=-atheos-		;;-	-syllable*)-		os=-syllable-		;;-	-386bsd)-		os=-bsd-		;;-	-ctix* | -uts*)-		os=-sysv-		;;-	-nova*)-		os=-rtmk-nova-		;;-	-ns2 )-		os=-nextstep2-		;;-	-nsk*)-		os=-nsk-		;;-	# Preserve the version number of sinix5.-	-sinix5.*)-		os=`echo $os | sed -e 's|sinix|sysv|'`-		;;-	-sinix*)-		os=-sysv4-		;;-	-tpf*)-		os=-tpf-		;;-	-triton*)-		os=-sysv3-		;;-	-oss*)-		os=-sysv3-		;;-	-svr4)-		os=-sysv4-		;;-	-svr3)-		os=-sysv3-		;;-	-sysvr4)-		os=-sysv4-		;;-	# This must come after -sysvr4.-	-sysv*)-		;;-	-ose*)-		os=-ose-		;;-	-es1800*)-		os=-ose-		;;-	-xenix)-		os=-xenix-		;;-	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)-		os=-mint-		;;-	-aros*)-		os=-aros-		;;-	-zvmoe)-		os=-zvmoe-		;;-	-dicos*)-		os=-dicos-		;;-	-nacl*)-		;;-	-ios)-		;;-	-none)-		;;-	*)-		# Get rid of the `-' at the beginning of $os.-		os=`echo $os | sed 's/[^-]*-//'`-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2-		exit 1-		;;-esac-else--# Here we handle the default operating systems that come with various machines.-# The value should be what the vendor currently ships out the door with their-# machine or put another way, the most popular os provided with the machine.--# Note that if you're going to try to match "-MANUFACTURER" here (say,-# "-sun"), then you have to tell the case statement up towards the top-# that MANUFACTURER isn't an operating system.  Otherwise, code above-# will signal an error saying that MANUFACTURER isn't an operating-# system, and we'll never get to this point.--case $basic_machine in-	score-*)-		os=-elf-		;;-	spu-*)-		os=-elf-		;;-	*-acorn)-		os=-riscix1.2-		;;-	arm*-rebel)-		os=-linux-		;;-	arm*-semi)-		os=-aout-		;;-	c4x-* | tic4x-*)-		os=-coff-		;;-	c8051-*)-		os=-elf-		;;-	hexagon-*)-		os=-elf-		;;-	tic54x-*)-		os=-coff-		;;-	tic55x-*)-		os=-coff-		;;-	tic6x-*)-		os=-coff-		;;-	# This must come before the *-dec entry.-	pdp10-*)-		os=-tops20-		;;-	pdp11-*)-		os=-none-		;;-	*-dec | vax-*)-		os=-ultrix4.2-		;;-	m68*-apollo)-		os=-domain-		;;-	i386-sun)-		os=-sunos4.0.2-		;;-	m68000-sun)-		os=-sunos3-		;;-	m68*-cisco)-		os=-aout-		;;-	mep-*)-		os=-elf-		;;-	mips*-cisco)-		os=-elf-		;;-	mips*-*)-		os=-elf-		;;-	or32-*)-		os=-coff-		;;-	*-tti)	# must be before sparc entry or we get the wrong os.-		os=-sysv3-		;;-	sparc-* | *-sun)-		os=-sunos4.1.1-		;;-	pru-*)-		os=-elf-		;;-	*-be)-		os=-beos-		;;-	*-haiku)-		os=-haiku-		;;-	*-ibm)-		os=-aix-		;;-	*-knuth)-		os=-mmixware-		;;-	*-wec)-		os=-proelf-		;;-	*-winbond)-		os=-proelf-		;;-	*-oki)-		os=-proelf-		;;-	*-hp)-		os=-hpux-		;;-	*-hitachi)-		os=-hiux-		;;-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)-		os=-sysv-		;;-	*-cbm)-		os=-amigaos-		;;-	*-dg)-		os=-dgux-		;;-	*-dolphin)-		os=-sysv3-		;;-	m68k-ccur)-		os=-rtu-		;;-	m88k-omron*)-		os=-luna-		;;-	*-next )-		os=-nextstep-		;;-	*-sequent)-		os=-ptx-		;;-	*-crds)-		os=-unos-		;;-	*-ns)-		os=-genix-		;;-	i370-*)-		os=-mvs-		;;-	*-next)-		os=-nextstep3-		;;-	*-gould)-		os=-sysv-		;;-	*-highlevel)-		os=-bsd-		;;-	*-encore)-		os=-bsd-		;;-	*-sgi)-		os=-irix-		;;-	*-siemens)-		os=-sysv4-		;;-	*-masscomp)-		os=-rtu-		;;-	f30[01]-fujitsu | f700-fujitsu)-		os=-uxpv-		;;-	*-rom68k)-		os=-coff-		;;-	*-*bug)-		os=-coff-		;;-	*-apple)-		os=-macos-		;;-	*-atari*)-		os=-mint-		;;-	*)-		os=-none-		;;-esac-fi--# Here we handle the case where we know the os, and the CPU type, but not the-# manufacturer.  We pick the logical manufacturer.-vendor=unknown-case $basic_machine in-	*-unknown)-		case $os in-			-riscix*)-				vendor=acorn-				;;-			-sunos*)-				vendor=sun-				;;-			-cnk*|-aix*)-				vendor=ibm-				;;-			-beos*)-				vendor=be-				;;-			-hpux*)-				vendor=hp-				;;-			-mpeix*)-				vendor=hp-				;;-			-hiux*)-				vendor=hitachi-				;;-			-unos*)-				vendor=crds-				;;-			-dgux*)-				vendor=dg-				;;-			-luna*)-				vendor=omron-				;;-			-genix*)-				vendor=ns-				;;-			-mvs* | -opened*)-				vendor=ibm-				;;-			-os400*)-				vendor=ibm-				;;-			-ptx*)-				vendor=sequent-				;;-			-tpf*)-				vendor=ibm-				;;-			-vxsim* | -vxworks* | -windiss*)-				vendor=wrs-				;;-			-aux*)-				vendor=apple-				;;-			-hms*)-				vendor=hitachi-				;;-			-mpw* | -macos*)-				vendor=apple-				;;-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)-				vendor=atari-				;;-			-vos*)-				vendor=stratus-				;;-		esac-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`-		;;-esac--echo $basic_machine$os-exit--# Local variables:-# eval: (add-hook 'write-file-hooks 'time-stamp)+#   Copyright 1992-2019 Free Software Foundation, Inc.++timestamp='2019-01-05'++# This file is free software; you can redistribute it and/or modify it+# under the terms of the GNU General Public License as published by+# the Free Software Foundation; either version 3 of the License, or+# (at your option) any later version.+#+# This program is distributed in the hope that it will be useful, but+# WITHOUT ANY WARRANTY; without even the implied warranty of+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU+# General Public License for more details.+#+# You should have received a copy of the GNU General Public License+# along with this program; if not, see <https://www.gnu.org/licenses/>.+#+# As a special exception to the GNU General Public License, if you+# distribute this file as part of a program that contains a+# configuration script generated by Autoconf, you may include it under+# the same distribution terms that you use for the rest of that+# program.  This Exception is an additional permission under section 7+# of the GNU General Public License, version 3 ("GPLv3").+++# Please send patches to <config-patches@gnu.org>.+#+# Configuration subroutine to validate and canonicalize a configuration type.+# Supply the specified configuration type as an argument.+# If it is invalid, we print an error message on stderr and exit with code 1.+# Otherwise, we print the canonical config type on stdout and succeed.++# You can get the latest version of this script from:+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub++# This file is supposed to be the same for all GNU packages+# and recognize all the CPU types, system types and aliases+# that are meaningful with *any* GNU software.+# Each package is responsible for reporting which valid configurations+# it does not support.  The user should be able to distinguish+# a failure to support a valid configuration from a meaningless+# configuration.++# The goal of this file is to map all the various variations of a given+# machine specification into a single specification in the form:+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM+# or in some cases, the newer four-part form:+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM+# It is wrong to echo any other type of specification.++me=`echo "$0" | sed -e 's,.*/,,'`++usage="\+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS++Canonicalize a configuration name.++Options:+  -h, --help         print this help, then exit+  -t, --time-stamp   print date of last modification, then exit+  -v, --version      print version number, then exit++Report bugs and patches to <config-patches@gnu.org>."++version="\+GNU config.sub ($timestamp)++Copyright 1992-2019 Free Software Foundation, Inc.++This is free software; see the source for copying conditions.  There is NO+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."++help="+Try \`$me --help' for more information."++# Parse command line+while test $# -gt 0 ; do+  case $1 in+    --time-stamp | --time* | -t )+       echo "$timestamp" ; exit ;;+    --version | -v )+       echo "$version" ; exit ;;+    --help | --h* | -h )+       echo "$usage"; exit ;;+    -- )     # Stop option processing+       shift; break ;;+    - )	# Use stdin as input.+       break ;;+    -* )+       echo "$me: invalid option $1$help" >&2+       exit 1 ;;++    *local*)+       # First pass through any local machine types.+       echo "$1"+       exit ;;++    * )+       break ;;+  esac+done++case $# in+ 0) echo "$me: missing argument$help" >&2+    exit 1;;+ 1) ;;+ *) echo "$me: too many arguments$help" >&2+    exit 1;;+esac++# Split fields of configuration type+# shellcheck disable=SC2162+IFS="-" read field1 field2 field3 field4 <<EOF+$1+EOF++# Separate into logical components for further validation+case $1 in+	*-*-*-*-*)+		echo Invalid configuration \`"$1"\': more than four components >&2+		exit 1+		;;+	*-*-*-*)+		basic_machine=$field1-$field2+		os=$field3-$field4+		;;+	*-*-*)+		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two+		# parts+		maybe_os=$field2-$field3+		case $maybe_os in+			nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \+			| linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \+			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \+			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \+			| storm-chaos* | os2-emx* | rtmk-nova*)+				basic_machine=$field1+				os=$maybe_os+				;;+			android-linux)+				basic_machine=$field1-unknown+				os=linux-android+				;;+			*)+				basic_machine=$field1-$field2+				os=$field3+				;;+		esac+		;;+	*-*)+		# A lone config we happen to match not fitting any pattern+		case $field1-$field2 in+			decstation-3100)+				basic_machine=mips-dec+				os=+				;;+			*-*)+				# Second component is usually, but not always the OS+				case $field2 in+					# Prevent following clause from handling this valid os+					sun*os*)+						basic_machine=$field1+						os=$field2+						;;+					# Manufacturers+					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \+					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \+					| unicom* | ibm* | next | hp | isi* | apollo | altos* \+					| convergent* | ncr* | news | 32* | 3600* | 3100* \+					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \+					| ultra | tti* | harris | dolphin | highlevel | gould \+					| cbm | ns | masscomp | apple | axis | knuth | cray \+					| microblaze* | sim | cisco \+					| oki | wec | wrs | winbond)+						basic_machine=$field1-$field2+						os=+						;;+					*)+						basic_machine=$field1+						os=$field2+						;;+				esac+			;;+		esac+		;;+	*)+		# Convert single-component short-hands not valid as part of+		# multi-component configurations.+		case $field1 in+			386bsd)+				basic_machine=i386-pc+				os=bsd+				;;+			a29khif)+				basic_machine=a29k-amd+				os=udi+				;;+			adobe68k)+				basic_machine=m68010-adobe+				os=scout+				;;+			alliant)+				basic_machine=fx80-alliant+				os=+				;;+			altos | altos3068)+				basic_machine=m68k-altos+				os=+				;;+			am29k)+				basic_machine=a29k-none+				os=bsd+				;;+			amdahl)+				basic_machine=580-amdahl+				os=sysv+				;;+			amiga)+				basic_machine=m68k-unknown+				os=+				;;+			amigaos | amigados)+				basic_machine=m68k-unknown+				os=amigaos+				;;+			amigaunix | amix)+				basic_machine=m68k-unknown+				os=sysv4+				;;+			apollo68)+				basic_machine=m68k-apollo+				os=sysv+				;;+			apollo68bsd)+				basic_machine=m68k-apollo+				os=bsd+				;;+			aros)+				basic_machine=i386-pc+				os=aros+				;;+			aux)+				basic_machine=m68k-apple+				os=aux+				;;+			balance)+				basic_machine=ns32k-sequent+				os=dynix+				;;+			blackfin)+				basic_machine=bfin-unknown+				os=linux+				;;+			cegcc)+				basic_machine=arm-unknown+				os=cegcc+				;;+			convex-c1)+				basic_machine=c1-convex+				os=bsd+				;;+			convex-c2)+				basic_machine=c2-convex+				os=bsd+				;;+			convex-c32)+				basic_machine=c32-convex+				os=bsd+				;;+			convex-c34)+				basic_machine=c34-convex+				os=bsd+				;;+			convex-c38)+				basic_machine=c38-convex+				os=bsd+				;;+			cray)+				basic_machine=j90-cray+				os=unicos+				;;+			crds | unos)+				basic_machine=m68k-crds+				os=+				;;+			da30)+				basic_machine=m68k-da30+				os=+				;;+			decstation | pmax | pmin | dec3100 | decstatn)+				basic_machine=mips-dec+				os=+				;;+			delta88)+				basic_machine=m88k-motorola+				os=sysv3+				;;+			dicos)+				basic_machine=i686-pc+				os=dicos+				;;+			djgpp)+				basic_machine=i586-pc+				os=msdosdjgpp+				;;+			ebmon29k)+				basic_machine=a29k-amd+				os=ebmon+				;;+			es1800 | OSE68k | ose68k | ose | OSE)+				basic_machine=m68k-ericsson+				os=ose+				;;+			gmicro)+				basic_machine=tron-gmicro+				os=sysv+				;;+			go32)+				basic_machine=i386-pc+				os=go32+				;;+			h8300hms)+				basic_machine=h8300-hitachi+				os=hms+				;;+			h8300xray)+				basic_machine=h8300-hitachi+				os=xray+				;;+			h8500hms)+				basic_machine=h8500-hitachi+				os=hms+				;;+			harris)+				basic_machine=m88k-harris+				os=sysv3+				;;+			hp300)+				basic_machine=m68k-hp+				;;+			hp300bsd)+				basic_machine=m68k-hp+				os=bsd+				;;+			hp300hpux)+				basic_machine=m68k-hp+				os=hpux+				;;+			hppaosf)+				basic_machine=hppa1.1-hp+				os=osf+				;;+			hppro)+				basic_machine=hppa1.1-hp+				os=proelf+				;;+			i386mach)+				basic_machine=i386-mach+				os=mach+				;;+			vsta)+				basic_machine=i386-pc+				os=vsta+				;;+			isi68 | isi)+				basic_machine=m68k-isi+				os=sysv+				;;+			m68knommu)+				basic_machine=m68k-unknown+				os=linux+				;;+			magnum | m3230)+				basic_machine=mips-mips+				os=sysv+				;;+			merlin)+				basic_machine=ns32k-utek+				os=sysv+				;;+			mingw64)+				basic_machine=x86_64-pc+				os=mingw64+				;;+			mingw32)+				basic_machine=i686-pc+				os=mingw32+				;;+			mingw32ce)+				basic_machine=arm-unknown+				os=mingw32ce+				;;+			monitor)+				basic_machine=m68k-rom68k+				os=coff+				;;+			morphos)+				basic_machine=powerpc-unknown+				os=morphos+				;;+			moxiebox)+				basic_machine=moxie-unknown+				os=moxiebox+				;;+			msdos)+				basic_machine=i386-pc+				os=msdos+				;;+			msys)+				basic_machine=i686-pc+				os=msys+				;;+			mvs)+				basic_machine=i370-ibm+				os=mvs+				;;+			nacl)+				basic_machine=le32-unknown+				os=nacl+				;;+			ncr3000)+				basic_machine=i486-ncr+				os=sysv4+				;;+			netbsd386)+				basic_machine=i386-pc+				os=netbsd+				;;+			netwinder)+				basic_machine=armv4l-rebel+				os=linux+				;;+			news | news700 | news800 | news900)+				basic_machine=m68k-sony+				os=newsos+				;;+			news1000)+				basic_machine=m68030-sony+				os=newsos+				;;+			necv70)+				basic_machine=v70-nec+				os=sysv+				;;+			nh3000)+				basic_machine=m68k-harris+				os=cxux+				;;+			nh[45]000)+				basic_machine=m88k-harris+				os=cxux+				;;+			nindy960)+				basic_machine=i960-intel+				os=nindy+				;;+			mon960)+				basic_machine=i960-intel+				os=mon960+				;;+			nonstopux)+				basic_machine=mips-compaq+				os=nonstopux+				;;+			os400)+				basic_machine=powerpc-ibm+				os=os400+				;;+			OSE68000 | ose68000)+				basic_machine=m68000-ericsson+				os=ose+				;;+			os68k)+				basic_machine=m68k-none+				os=os68k+				;;+			paragon)+				basic_machine=i860-intel+				os=osf+				;;+			parisc)+				basic_machine=hppa-unknown+				os=linux+				;;+			pw32)+				basic_machine=i586-unknown+				os=pw32+				;;+			rdos | rdos64)+				basic_machine=x86_64-pc+				os=rdos+				;;+			rdos32)+				basic_machine=i386-pc+				os=rdos+				;;+			rom68k)+				basic_machine=m68k-rom68k+				os=coff+				;;+			sa29200)+				basic_machine=a29k-amd+				os=udi+				;;+			sei)+				basic_machine=mips-sei+				os=seiux+				;;+			sequent)+				basic_machine=i386-sequent+				os=+				;;+			sps7)+				basic_machine=m68k-bull+				os=sysv2+				;;+			st2000)+				basic_machine=m68k-tandem+				os=+				;;+			stratus)+				basic_machine=i860-stratus+				os=sysv4+				;;+			sun2)+				basic_machine=m68000-sun+				os=+				;;+			sun2os3)+				basic_machine=m68000-sun+				os=sunos3+				;;+			sun2os4)+				basic_machine=m68000-sun+				os=sunos4+				;;+			sun3)+				basic_machine=m68k-sun+				os=+				;;+			sun3os3)+				basic_machine=m68k-sun+				os=sunos3+				;;+			sun3os4)+				basic_machine=m68k-sun+				os=sunos4+				;;+			sun4)+				basic_machine=sparc-sun+				os=+				;;+			sun4os3)+				basic_machine=sparc-sun+				os=sunos3+				;;+			sun4os4)+				basic_machine=sparc-sun+				os=sunos4+				;;+			sun4sol2)+				basic_machine=sparc-sun+				os=solaris2+				;;+			sun386 | sun386i | roadrunner)+				basic_machine=i386-sun+				os=+				;;+			sv1)+				basic_machine=sv1-cray+				os=unicos+				;;+			symmetry)+				basic_machine=i386-sequent+				os=dynix+				;;+			t3e)+				basic_machine=alphaev5-cray+				os=unicos+				;;+			t90)+				basic_machine=t90-cray+				os=unicos+				;;+			toad1)+				basic_machine=pdp10-xkl+				os=tops20+				;;+			tpf)+				basic_machine=s390x-ibm+				os=tpf+				;;+			udi29k)+				basic_machine=a29k-amd+				os=udi+				;;+			ultra3)+				basic_machine=a29k-nyu+				os=sym1+				;;+			v810 | necv810)+				basic_machine=v810-nec+				os=none+				;;+			vaxv)+				basic_machine=vax-dec+				os=sysv+				;;+			vms)+				basic_machine=vax-dec+				os=vms+				;;+			vxworks960)+				basic_machine=i960-wrs+				os=vxworks+				;;+			vxworks68)+				basic_machine=m68k-wrs+				os=vxworks+				;;+			vxworks29k)+				basic_machine=a29k-wrs+				os=vxworks+				;;+			xbox)+				basic_machine=i686-pc+				os=mingw32+				;;+			ymp)+				basic_machine=ymp-cray+				os=unicos+				;;+			*)+				basic_machine=$1+				os=+				;;+		esac+		;;+esac++# Decode 1-component or ad-hoc basic machines+case $basic_machine in+	# Here we handle the default manufacturer of certain CPU types.  It is in+	# some cases the only manufacturer, in others, it is the most popular.+	w89k)+		cpu=hppa1.1+		vendor=winbond+		;;+	op50n)+		cpu=hppa1.1+		vendor=oki+		;;+	op60c)+		cpu=hppa1.1+		vendor=oki+		;;+	ibm*)+		cpu=i370+		vendor=ibm+		;;+	orion105)+		cpu=clipper+		vendor=highlevel+		;;+	mac | mpw | mac-mpw)+		cpu=m68k+		vendor=apple+		;;+	pmac | pmac-mpw)+		cpu=powerpc+		vendor=apple+		;;++	# Recognize the various machine names and aliases which stand+	# for a CPU type and a company and sometimes even an OS.+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)+		cpu=m68000+		vendor=att+		;;+	3b*)+		cpu=we32k+		vendor=att+		;;+	bluegene*)+		cpu=powerpc+		vendor=ibm+		os=cnk+		;;+	decsystem10* | dec10*)+		cpu=pdp10+		vendor=dec+		os=tops10+		;;+	decsystem20* | dec20*)+		cpu=pdp10+		vendor=dec+		os=tops20+		;;+	delta | 3300 | motorola-3300 | motorola-delta \+	      | 3300-motorola | delta-motorola)+		cpu=m68k+		vendor=motorola+		;;+	dpx2*)+		cpu=m68k+		vendor=bull+		os=sysv3+		;;+	encore | umax | mmax)+		cpu=ns32k+		vendor=encore+		;;+	elxsi)+		cpu=elxsi+		vendor=elxsi+		os=${os:-bsd}+		;;+	fx2800)+		cpu=i860+		vendor=alliant+		;;+	genix)+		cpu=ns32k+		vendor=ns+		;;+	h3050r* | hiux*)+		cpu=hppa1.1+		vendor=hitachi+		os=hiuxwe2+		;;+	hp3k9[0-9][0-9] | hp9[0-9][0-9])+		cpu=hppa1.0+		vendor=hp+		;;+	hp9k2[0-9][0-9] | hp9k31[0-9])+		cpu=m68000+		vendor=hp+		;;+	hp9k3[2-9][0-9])+		cpu=m68k+		vendor=hp+		;;+	hp9k6[0-9][0-9] | hp6[0-9][0-9])+		cpu=hppa1.0+		vendor=hp+		;;+	hp9k7[0-79][0-9] | hp7[0-79][0-9])+		cpu=hppa1.1+		vendor=hp+		;;+	hp9k78[0-9] | hp78[0-9])+		# FIXME: really hppa2.0-hp+		cpu=hppa1.1+		vendor=hp+		;;+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)+		# FIXME: really hppa2.0-hp+		cpu=hppa1.1+		vendor=hp+		;;+	hp9k8[0-9][13679] | hp8[0-9][13679])+		cpu=hppa1.1+		vendor=hp+		;;+	hp9k8[0-9][0-9] | hp8[0-9][0-9])+		cpu=hppa1.0+		vendor=hp+		;;+	i*86v32)+		cpu=`echo "$1" | sed -e 's/86.*/86/'`+		vendor=pc+		os=sysv32+		;;+	i*86v4*)+		cpu=`echo "$1" | sed -e 's/86.*/86/'`+		vendor=pc+		os=sysv4+		;;+	i*86v)+		cpu=`echo "$1" | sed -e 's/86.*/86/'`+		vendor=pc+		os=sysv+		;;+	i*86sol2)+		cpu=`echo "$1" | sed -e 's/86.*/86/'`+		vendor=pc+		os=solaris2+		;;+	j90 | j90-cray)+		cpu=j90+		vendor=cray+		os=${os:-unicos}+		;;+	iris | iris4d)+		cpu=mips+		vendor=sgi+		case $os in+		    irix*)+			;;+		    *)+			os=irix4+			;;+		esac+		;;+	miniframe)+		cpu=m68000+		vendor=convergent+		;;+	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)+		cpu=m68k+		vendor=atari+		os=mint+		;;+	news-3600 | risc-news)+		cpu=mips+		vendor=sony+		os=newsos+		;;+	next | m*-next)+		cpu=m68k+		vendor=next+		case $os in+		    openstep*)+		        ;;+		    nextstep*)+			;;+		    ns2*)+		      os=nextstep2+			;;+		    *)+		      os=nextstep3+			;;+		esac+		;;+	np1)+		cpu=np1+		vendor=gould+		;;+	op50n-* | op60c-*)+		cpu=hppa1.1+		vendor=oki+		os=proelf+		;;+	pa-hitachi)+		cpu=hppa1.1+		vendor=hitachi+		os=hiuxwe2+		;;+	pbd)+		cpu=sparc+		vendor=tti+		;;+	pbb)+		cpu=m68k+		vendor=tti+		;;+	pc532)+		cpu=ns32k+		vendor=pc532+		;;+	pn)+		cpu=pn+		vendor=gould+		;;+	power)+		cpu=power+		vendor=ibm+		;;+	ps2)+		cpu=i386+		vendor=ibm+		;;+	rm[46]00)+		cpu=mips+		vendor=siemens+		;;+	rtpc | rtpc-*)+		cpu=romp+		vendor=ibm+		;;+	sde)+		cpu=mipsisa32+		vendor=sde+		os=${os:-elf}+		;;+	simso-wrs)+		cpu=sparclite+		vendor=wrs+		os=vxworks+		;;+	tower | tower-32)+		cpu=m68k+		vendor=ncr+		;;+	vpp*|vx|vx-*)+		cpu=f301+		vendor=fujitsu+		;;+	w65)+		cpu=w65+		vendor=wdc+		;;+	w89k-*)+		cpu=hppa1.1+		vendor=winbond+		os=proelf+		;;+	none)+		cpu=none+		vendor=none+		;;+	leon|leon[3-9])+		cpu=sparc+		vendor=$basic_machine+		;;+	leon-*|leon[3-9]-*)+		cpu=sparc+		vendor=`echo "$basic_machine" | sed 's/-.*//'`+		;;++	*-*)+		# shellcheck disable=SC2162+		IFS="-" read cpu vendor <<EOF+$basic_machine+EOF+		;;+	# We use `pc' rather than `unknown'+	# because (1) that's what they normally are, and+	# (2) the word "unknown" tends to confuse beginning users.+	i*86 | x86_64)+		cpu=$basic_machine+		vendor=pc+		;;+	# These rules are duplicated from below for sake of the special case above;+	# i.e. things that normalized to x86 arches should also default to "pc"+	pc98)+		cpu=i386+		vendor=pc+		;;+	x64 | amd64)+		cpu=x86_64+		vendor=pc+		;;+	# Recognize the basic CPU types without company name.+	*)+		cpu=$basic_machine+		vendor=unknown+		;;+esac++unset -v basic_machine++# Decode basic machines in the full and proper CPU-Company form.+case $cpu-$vendor in+	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in+	# some cases the only manufacturer, in others, it is the most popular.+	craynv-unknown)+		vendor=cray+		os=${os:-unicosmp}+		;;+	c90-unknown | c90-cray)+		vendor=cray+		os=${os:-unicos}+		;;+	fx80-unknown)+		vendor=alliant+		;;+	romp-unknown)+		vendor=ibm+		;;+	mmix-unknown)+		vendor=knuth+		;;+	microblaze-unknown | microblazeel-unknown)+		vendor=xilinx+		;;+	rs6000-unknown)+		vendor=ibm+		;;+	vax-unknown)+		vendor=dec+		;;+	pdp11-unknown)+		vendor=dec+		;;+	we32k-unknown)+		vendor=att+		;;+	cydra-unknown)+		vendor=cydrome+		;;+	i370-ibm*)+		vendor=ibm+		;;+	orion-unknown)+		vendor=highlevel+		;;+	xps-unknown | xps100-unknown)+		cpu=xps100+		vendor=honeywell+		;;++	# Here we normalize CPU types with a missing or matching vendor+	dpx20-unknown | dpx20-bull)+		cpu=rs6000+		vendor=bull+		os=${os:-bosx}+		;;++	# Here we normalize CPU types irrespective of the vendor+	amd64-*)+		cpu=x86_64+		;;+	blackfin-*)+		cpu=bfin+		os=linux+		;;+	c54x-*)+		cpu=tic54x+		;;+	c55x-*)+		cpu=tic55x+		;;+	c6x-*)+		cpu=tic6x+		;;+	e500v[12]-*)+		cpu=powerpc+		os=$os"spe"+		;;+	mips3*-*)+		cpu=mips64+		;;+	ms1-*)+		cpu=mt+		;;+	m68knommu-*)+		cpu=m68k+		os=linux+		;;+	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)+		cpu=s12z+		;;+	openrisc-*)+		cpu=or32+		;;+	parisc-*)+		cpu=hppa+		os=linux+		;;+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)+		cpu=i586+		;;+	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)+		cpu=i686+		;;+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)+		cpu=i686+		;;+	pentium4-*)+		cpu=i786+		;;+	pc98-*)+		cpu=i386+		;;+	ppc-* | ppcbe-*)+		cpu=powerpc+		;;+	ppcle-* | powerpclittle-*)+		cpu=powerpcle+		;;+	ppc64-*)+		cpu=powerpc64+		;;+	ppc64le-* | powerpc64little-*)+		cpu=powerpc64le+		;;+	sb1-*)+		cpu=mipsisa64sb1+		;;+	sb1el-*)+		cpu=mipsisa64sb1el+		;;+	sh5e[lb]-*)+		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`+		;;+	spur-*)+		cpu=spur+		;;+	strongarm-* | thumb-*)+		cpu=arm+		;;+	tx39-*)+		cpu=mipstx39+		;;+	tx39el-*)+		cpu=mipstx39el+		;;+	x64-*)+		cpu=x86_64+		;;+	xscale-* | xscalee[bl]-*)+		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`+		;;++	# Recognize the canonical CPU Types that limit and/or modify the+	# company names they are paired with.+	cr16-*)+		os=${os:-elf}+		;;+	crisv32-* | etraxfs*-*)+		cpu=crisv32+		vendor=axis+		;;+	cris-* | etrax*-*)+		cpu=cris+		vendor=axis+		;;+	crx-*)+		os=${os:-elf}+		;;+	neo-tandem)+		cpu=neo+		vendor=tandem+		;;+	nse-tandem)+		cpu=nse+		vendor=tandem+		;;+	nsr-tandem)+		cpu=nsr+		vendor=tandem+		;;+	nsv-tandem)+		cpu=nsv+		vendor=tandem+		;;+	nsx-tandem)+		cpu=nsx+		vendor=tandem+		;;+	s390-*)+		cpu=s390+		vendor=ibm+		;;+	s390x-*)+		cpu=s390x+		vendor=ibm+		;;+	tile*-*)+		os=${os:-linux-gnu}+		;;++	*)+		# Recognize the canonical CPU types that are allowed with any+		# company name.+		case $cpu in+			1750a | 580 \+			| a29k \+			| aarch64 | aarch64_be \+			| abacus \+			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \+			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \+			| alphapca5[67] | alpha64pca5[67] \+			| am33_2.0 \+			| amdgcn \+			| arc | arceb \+			| arm  | arm[lb]e | arme[lb] | armv* \+			| avr | avr32 \+			| asmjs \+			| ba \+			| be32 | be64 \+			| bfin | bs2000 \+			| c[123]* | c30 | [cjt]90 | c4x \+			| c8051 | clipper | craynv | csky | cydra \+			| d10v | d30v | dlx | dsp16xx \+			| e2k | elxsi | epiphany \+			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \+			| h8300 | h8500 \+			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \+			| hexagon \+			| i370 | i*86 | i860 | i960 | ia16 | ia64 \+			| ip2k | iq2000 \+			| k1om \+			| le32 | le64 \+			| lm32 \+			| m32c | m32r | m32rle \+			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \+			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \+			| m88110 | m88k | maxq | mb | mcore | mep | metag \+			| microblaze | microblazeel \+			| mips | mipsbe | mipseb | mipsel | mipsle \+			| mips16 \+			| mips64 | mips64eb | mips64el \+			| mips64octeon | mips64octeonel \+			| mips64orion | mips64orionel \+			| mips64r5900 | mips64r5900el \+			| mips64vr | mips64vrel \+			| mips64vr4100 | mips64vr4100el \+			| mips64vr4300 | mips64vr4300el \+			| mips64vr5000 | mips64vr5000el \+			| mips64vr5900 | mips64vr5900el \+			| mipsisa32 | mipsisa32el \+			| mipsisa32r2 | mipsisa32r2el \+			| mipsisa32r6 | mipsisa32r6el \+			| mipsisa64 | mipsisa64el \+			| mipsisa64r2 | mipsisa64r2el \+			| mipsisa64r6 | mipsisa64r6el \+			| mipsisa64sb1 | mipsisa64sb1el \+			| mipsisa64sr71k | mipsisa64sr71kel \+			| mipsr5900 | mipsr5900el \+			| mipstx39 | mipstx39el \+			| mmix \+			| mn10200 | mn10300 \+			| moxie \+			| mt \+			| msp430 \+			| nds32 | nds32le | nds32be \+			| nfp \+			| nios | nios2 | nios2eb | nios2el \+			| none | np1 | ns16k | ns32k | nvptx \+			| open8 \+			| or1k* \+			| or32 \+			| orion \+			| picochip \+			| pdp10 | pdp11 | pj | pjl | pn | power \+			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \+			| pru \+			| pyramid \+			| riscv | riscv32 | riscv64 \+			| rl78 | romp | rs6000 | rx \+			| score \+			| sh | shl \+			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \+			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \+			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \+			| sparclite \+			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \+			| spu \+			| tahoe \+			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \+			| tron \+			| ubicom32 \+			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \+			| vax \+			| visium \+			| w65 \+			| wasm32 | wasm64 \+			| we32k \+			| x86 | x86_64 | xc16x | xgate | xps100 \+			| xstormy16 | xtensa* \+			| ymp \+			| z8k | z80)+				;;++			*)+				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2+				exit 1+				;;+		esac+		;;+esac++# Here we canonicalize certain aliases for manufacturers.+case $vendor in+	digital*)+		vendor=dec+		;;+	commodore*)+		vendor=cbm+		;;+	*)+		;;+esac++# Decode manufacturer-specific aliases for certain operating systems.++if [ x$os != x ]+then+case $os in+	# First match some system type aliases that might get confused+	# with valid system types.+	# solaris* is a basic system type, with this one exception.+	auroraux)+		os=auroraux+		;;+	bluegene*)+		os=cnk+		;;+	solaris1 | solaris1.*)+		os=`echo $os | sed -e 's|solaris1|sunos4|'`+		;;+	solaris)+		os=solaris2+		;;+	unixware*)+		os=sysv4.2uw+		;;+	gnu/linux*)+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`+		;;+	# es1800 is here to avoid being matched by es* (a different OS)+	es1800*)+		os=ose+		;;+	# Some version numbers need modification+	chorusos*)+		os=chorusos+		;;+	isc)+		os=isc2.2+		;;+	sco6)+		os=sco5v6+		;;+	sco5)+		os=sco3.2v5+		;;+	sco4)+		os=sco3.2v4+		;;+	sco3.2.[4-9]*)+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`+		;;+	sco3.2v[4-9]* | sco5v6*)+		# Don't forget version if it is 3.2v4 or newer.+		;;+	scout)+		# Don't match below+		;;+	sco*)+		os=sco3.2v2+		;;+	psos*)+		os=psos+		;;+	# Now accept the basic system types.+	# The portable systems comes first.+	# Each alternative MUST end in a * to match a version number.+	# sysv* is not here because it comes later, after sysvr4.+	gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \+	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\+	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \+	     | sym* | kopensolaris* | plan9* \+	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \+	     | aos* | aros* | cloudabi* | sortix* \+	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \+	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \+	     | knetbsd* | mirbsd* | netbsd* \+	     | bitrig* | openbsd* | solidbsd* | libertybsd* \+	     | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \+	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \+	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \+	     | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \+	     | chorusrdb* | cegcc* | glidix* \+	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \+	     | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \+	     | linux-newlib* | linux-musl* | linux-uclibc* \+	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \+	     | interix* | uwin* | mks* | rhapsody* | darwin* \+	     | openstep* | oskit* | conix* | pw32* | nonstopux* \+	     | storm-chaos* | tops10* | tenex* | tops20* | its* \+	     | os2* | vos* | palmos* | uclinux* | nucleus* \+	     | morphos* | superux* | rtmk* | windiss* \+	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \+	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \+	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \+	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi*)+	# Remember, each alternative MUST END IN *, to match a version number.+		;;+	qnx*)+		case $cpu in+		    x86 | i*86)+			;;+		    *)+			os=nto-$os+			;;+		esac+		;;+	hiux*)+		os=hiuxwe2+		;;+	nto-qnx*)+		;;+	nto*)+		os=`echo $os | sed -e 's|nto|nto-qnx|'`+		;;+	sim | xray | os68k* | v88r* \+	    | windows* | osx | abug | netware* | os9* \+	    | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)+		;;+	linux-dietlibc)+		os=linux-dietlibc+		;;+	linux*)+		os=`echo $os | sed -e 's|linux|linux-gnu|'`+		;;+	lynx*178)+		os=lynxos178+		;;+	lynx*5)+		os=lynxos5+		;;+	lynx*)+		os=lynxos+		;;+	mac*)+		os=`echo "$os" | sed -e 's|mac|macos|'`+		;;+	opened*)+		os=openedition+		;;+	os400*)+		os=os400+		;;+	sunos5*)+		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`+		;;+	sunos6*)+		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`+		;;+	wince*)+		os=wince+		;;+	utek*)+		os=bsd+		;;+	dynix*)+		os=bsd+		;;+	acis*)+		os=aos+		;;+	atheos*)+		os=atheos+		;;+	syllable*)+		os=syllable+		;;+	386bsd)+		os=bsd+		;;+	ctix* | uts*)+		os=sysv+		;;+	nova*)+		os=rtmk-nova+		;;+	ns2)+		os=nextstep2+		;;+	nsk*)+		os=nsk+		;;+	# Preserve the version number of sinix5.+	sinix5.*)+		os=`echo $os | sed -e 's|sinix|sysv|'`+		;;+	sinix*)+		os=sysv4+		;;+	tpf*)+		os=tpf+		;;+	triton*)+		os=sysv3+		;;+	oss*)+		os=sysv3+		;;+	svr4*)+		os=sysv4+		;;+	svr3)+		os=sysv3+		;;+	sysvr4)+		os=sysv4+		;;+	# This must come after sysvr4.+	sysv*)+		;;+	ose*)+		os=ose+		;;+	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)+		os=mint+		;;+	zvmoe)+		os=zvmoe+		;;+	dicos*)+		os=dicos+		;;+	pikeos*)+		# Until real need of OS specific support for+		# particular features comes up, bare metal+		# configurations are quite functional.+		case $cpu in+		    arm*)+			os=eabi+			;;+		    *)+			os=elf+			;;+		esac+		;;+	nacl*)+		;;+	ios)+		;;+	none)+		;;+	*-eabi)+		;;+	*)+		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2+		exit 1+		;;+esac+else++# Here we handle the default operating systems that come with various machines.+# The value should be what the vendor currently ships out the door with their+# machine or put another way, the most popular os provided with the machine.++# Note that if you're going to try to match "-MANUFACTURER" here (say,+# "-sun"), then you have to tell the case statement up towards the top+# that MANUFACTURER isn't an operating system.  Otherwise, code above+# will signal an error saying that MANUFACTURER isn't an operating+# system, and we'll never get to this point.++case $cpu-$vendor in+	score-*)+		os=elf+		;;+	spu-*)+		os=elf+		;;+	*-acorn)+		os=riscix1.2+		;;+	arm*-rebel)+		os=linux+		;;+	arm*-semi)+		os=aout+		;;+	c4x-* | tic4x-*)+		os=coff+		;;+	c8051-*)+		os=elf+		;;+	clipper-intergraph)+		os=clix+		;;+	hexagon-*)+		os=elf+		;;+	tic54x-*)+		os=coff+		;;+	tic55x-*)+		os=coff+		;;+	tic6x-*)+		os=coff+		;;+	# This must come before the *-dec entry.+	pdp10-*)+		os=tops20+		;;+	pdp11-*)+		os=none+		;;+	*-dec | vax-*)+		os=ultrix4.2+		;;+	m68*-apollo)+		os=domain+		;;+	i386-sun)+		os=sunos4.0.2+		;;+	m68000-sun)+		os=sunos3+		;;+	m68*-cisco)+		os=aout+		;;+	mep-*)+		os=elf+		;;+	mips*-cisco)+		os=elf+		;;+	mips*-*)+		os=elf+		;;+	or32-*)+		os=coff+		;;+	*-tti)	# must be before sparc entry or we get the wrong os.+		os=sysv3+		;;+	sparc-* | *-sun)+		os=sunos4.1.1+		;;+	pru-*)+		os=elf+		;;+	*-be)+		os=beos+		;;+	*-ibm)+		os=aix+		;;+	*-knuth)+		os=mmixware+		;;+	*-wec)+		os=proelf+		;;+	*-winbond)+		os=proelf+		;;+	*-oki)+		os=proelf+		;;+	*-hp)+		os=hpux+		;;+	*-hitachi)+		os=hiux+		;;+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)+		os=sysv+		;;+	*-cbm)+		os=amigaos+		;;+	*-dg)+		os=dgux+		;;+	*-dolphin)+		os=sysv3+		;;+	m68k-ccur)+		os=rtu+		;;+	m88k-omron*)+		os=luna+		;;+	*-next)+		os=nextstep+		;;+	*-sequent)+		os=ptx+		;;+	*-crds)+		os=unos+		;;+	*-ns)+		os=genix+		;;+	i370-*)+		os=mvs+		;;+	*-gould)+		os=sysv+		;;+	*-highlevel)+		os=bsd+		;;+	*-encore)+		os=bsd+		;;+	*-sgi)+		os=irix+		;;+	*-siemens)+		os=sysv4+		;;+	*-masscomp)+		os=rtu+		;;+	f30[01]-fujitsu | f700-fujitsu)+		os=uxpv+		;;+	*-rom68k)+		os=coff+		;;+	*-*bug)+		os=coff+		;;+	*-apple)+		os=macos+		;;+	*-atari*)+		os=mint+		;;+	*-wrs)+		os=vxworks+		;;+	*)+		os=none+		;;+esac+fi++# Here we handle the case where we know the os, and the CPU type, but not the+# manufacturer.  We pick the logical manufacturer.+case $vendor in+	unknown)+		case $os in+			riscix*)+				vendor=acorn+				;;+			sunos*)+				vendor=sun+				;;+			cnk*|-aix*)+				vendor=ibm+				;;+			beos*)+				vendor=be+				;;+			hpux*)+				vendor=hp+				;;+			mpeix*)+				vendor=hp+				;;+			hiux*)+				vendor=hitachi+				;;+			unos*)+				vendor=crds+				;;+			dgux*)+				vendor=dg+				;;+			luna*)+				vendor=omron+				;;+			genix*)+				vendor=ns+				;;+			clix*)+				vendor=intergraph+				;;+			mvs* | opened*)+				vendor=ibm+				;;+			os400*)+				vendor=ibm+				;;+			ptx*)+				vendor=sequent+				;;+			tpf*)+				vendor=ibm+				;;+			vxsim* | vxworks* | windiss*)+				vendor=wrs+				;;+			aux*)+				vendor=apple+				;;+			hms*)+				vendor=hitachi+				;;+			mpw* | macos*)+				vendor=apple+				;;+			*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)+				vendor=atari+				;;+			vos*)+				vendor=stratus+				;;+		esac+		;;+esac++echo "$cpu-$vendor-$os"+exit++# Local variables:+# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'"