module Data.Connection.Optic.Word ( -- * Word8 w08i08 , w08w16 , w08w32 , w08w64 , w08nat -- * Word16 , w16i16 , w16w32 , w16w64 , w16nat -- * Word32 , w32i32 , w32w64 , w32nat -- * Word64 , w64i64 , w64nat ) where import Data.Int import Data.Word import Data.Profunctor.Optic.Grate import Numeric.Natural import qualified Data.Connection.Word as W -- >>> constOf w08i08 0 -- 128 -- >>> zipWithOf w08i08 (+) 0 0 -- 128 -- w08i08 :: Grate' Word8 Int8 w08i08 = connected W.w08i08 -- >>> constOf w08w16 0 -- 0 -- >>> zipWithOf w08w16 (+) 16 7 -- 23 -- w08w16 :: Grate' Word8 Word16 w08w16 = connected W.w08w16 w08w32 :: Grate' Word8 Word32 w08w32 = connected W.w08w32 w08w64 :: Grate' Word8 Word64 w08w64 = connected W.w08w64 w08nat :: Grate' Word8 Natural w08nat = connected W.w08nat w16i16 :: Grate' Word16 Int16 w16i16 = connected W.w16i16 w16w32 :: Grate' Word16 Word32 w16w32 = connected W.w16w32 w16w64 :: Grate' Word16 Word64 w16w64 = connected W.w16w64 w16nat :: Grate' Word16 Natural w16nat = connected W.w16nat w32i32 :: Grate' Word32 Int32 w32i32 = connected W.w32i32 w32w64 :: Grate' Word32 Word64 w32w64 = connected W.w32w64 w32nat :: Grate' Word32 Natural w32nat = connected W.w32nat w64i64 :: Grate' Word64 Int64 w64i64 = connected W.w64i64 w64nat :: Grate' Word64 Natural w64nat = connected W.w64nat