profunctor-optics-0.0.0.3: src/Data/Connection/Optic/Float.hs
module Data.Connection.Optic.Float (
f32u32
, u32f32
) where
import Data.Connection.Float (Ulp32)
import Data.Int
import Data.Prd.Nan (Nan)
import Data.Profunctor.Optic.Grate
import Data.Profunctor.Optic.Import
import Data.Word
import qualified Data.Connection.Float as F
-- >>> coview f32u32 (Ulp32 0)
-- 0.0
-- >>> coview f32u32 (Ulp32 1)
-- 1.0e-45
f32u32 :: Grate' Float Ulp32
f32u32 = connected F.f32u32
u32f32 :: Grate' Ulp32 Float
u32f32 = connected F.u32f32
{-
-- >>> coview f32i32 Nan
-- NaN
-- >>> zipsWith i32f32 (/) (Def 0) (Def 0)
-- Nan
f32i32 :: Grate' Float (Nan Int64)
f32i32 = connected F.f32i32
i32f32 :: Grate' (Nan Int64) Float
i32f32 = connected F.i32f32
-}