{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} module HaskellWorks.Data.Bits.Broadword.Type ( Broadword(..) , broadword ) where import Control.DeepSeq import Data.Word import GHC.Generics newtype Broadword a = Broadword a deriving (Broadword a -> Broadword a -> Bool (Broadword a -> Broadword a -> Bool) -> (Broadword a -> Broadword a -> Bool) -> Eq (Broadword a) forall a. Eq a => Broadword a -> Broadword a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Broadword a -> Broadword a -> Bool $c/= :: forall a. Eq a => Broadword a -> Broadword a -> Bool == :: Broadword a -> Broadword a -> Bool $c== :: forall a. Eq a => Broadword a -> Broadword a -> Bool Eq, Int -> Broadword a -> ShowS [Broadword a] -> ShowS Broadword a -> String (Int -> Broadword a -> ShowS) -> (Broadword a -> String) -> ([Broadword a] -> ShowS) -> Show (Broadword a) forall a. Show a => Int -> Broadword a -> ShowS forall a. Show a => [Broadword a] -> ShowS forall a. Show a => Broadword a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Broadword a] -> ShowS $cshowList :: forall a. Show a => [Broadword a] -> ShowS show :: Broadword a -> String $cshow :: forall a. Show a => Broadword a -> String showsPrec :: Int -> Broadword a -> ShowS $cshowsPrec :: forall a. Show a => Int -> Broadword a -> ShowS Show, a -> Broadword b -> Broadword a (a -> b) -> Broadword a -> Broadword b (forall a b. (a -> b) -> Broadword a -> Broadword b) -> (forall a b. a -> Broadword b -> Broadword a) -> Functor Broadword forall a b. a -> Broadword b -> Broadword a forall a b. (a -> b) -> Broadword a -> Broadword b forall (f :: * -> *). (forall a b. (a -> b) -> f a -> f b) -> (forall a b. a -> f b -> f a) -> Functor f <$ :: a -> Broadword b -> Broadword a $c<$ :: forall a b. a -> Broadword b -> Broadword a fmap :: (a -> b) -> Broadword a -> Broadword b $cfmap :: forall a b. (a -> b) -> Broadword a -> Broadword b Functor, (forall x. Broadword a -> Rep (Broadword a) x) -> (forall x. Rep (Broadword a) x -> Broadword a) -> Generic (Broadword a) forall x. Rep (Broadword a) x -> Broadword a forall x. Broadword a -> Rep (Broadword a) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Broadword a) x -> Broadword a forall a x. Broadword a -> Rep (Broadword a) x $cto :: forall a x. Rep (Broadword a) x -> Broadword a $cfrom :: forall a x. Broadword a -> Rep (Broadword a) x Generic, Broadword a -> () (Broadword a -> ()) -> NFData (Broadword a) forall a. NFData a => Broadword a -> () forall a. (a -> ()) -> NFData a rnf :: Broadword a -> () $crnf :: forall a. NFData a => Broadword a -> () NFData) broadword :: Broadword Word64 -> Word64 broadword :: Broadword Word64 -> Word64 broadword (Broadword Word64 a) = Word64 a {-# INLINE broadword #-}