indexation-0.6.3: library/Indexation/Instances.hs
module Indexation.Instances
where
import Indexation.Prelude
import Indexation.Types
import Indexation.Instances.Cereal ()
import Indexation.Functions
import Data.Vector.Unboxed.Deriving (derivingUnbox)
import Data.Bit (Bit)
instance Show (Index a) where show (Index int) = show int
deriving instance Eq (Index a)
deriving instance Ord (Index a)
deriving instance Hashable (Index a)
deriving instance Generic (Index a)
instance NFData (Index a)
derivingUnbox "Index"
[t| forall a. Index a -> Int |]
[| \ (Index x) -> x |]
[| Index |]
derivingUnbox "MaybeIndex"
[t| forall a. Maybe (Index a) -> (Bit, Index a) |]
[| maybe (0, Index 0) (\ x -> (1, x)) |]
[| \ case (1, x) -> Just x; _ -> Nothing |]
instance Show (IndexSet a) where
show = show . (\ (IndexSet x) -> x)