{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE MonoLocalBinds #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE QuantifiedConstraints #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE UndecidableInstances #-}
module Grisette.Internal.Internal.Impl.Unified.FPFPConversion () where
import Grisette.Internal.Internal.Decl.Unified.FPFPConversion
( AllUnifiedFPFPConversion,
UnifiedFPFPConversion,
UnifiedFPFPConversionImpl,
)
import Grisette.Internal.Internal.Decl.Unified.UnifiedFP
( UnifiedFPImpl (GetFP, GetFPRoundingMode),
)
import Grisette.Internal.Internal.Impl.Unified.UnifiedFP ()
import Grisette.Internal.SymPrim.FP (FP, FPRoundingMode, ValidFP)
import Grisette.Internal.SymPrim.SymFP (SymFP, SymFPRoundingMode)
import Grisette.Internal.Unified.EvalModeTag (EvalModeTag (C, S))
instance
(ValidFP eb0 sb0, ValidFP eb1 sb1) =>
UnifiedFPFPConversionImpl
'C
FP
eb0
sb0
eb1
sb1
(FP eb0 sb0)
(FP eb1 sb1)
FPRoundingMode
instance
(ValidFP eb0 sb0, ValidFP eb1 sb1) =>
UnifiedFPFPConversionImpl
'S
SymFP
eb0
sb0
eb1
sb1
(SymFP eb0 sb0)
(SymFP eb1 sb1)
SymFPRoundingMode
instance
( UnifiedFPFPConversionImpl
(mode :: EvalModeTag)
(GetFP mode)
eb0
sb0
eb1
sb1
(GetFP mode eb0 sb0)
(GetFP mode eb1 sb1)
(GetFPRoundingMode mode)
) =>
UnifiedFPFPConversion mode eb0 sb0 eb1 sb1
instance
( forall eb0 sb0 eb1 sb1.
(ValidFP eb0 sb0, ValidFP eb1 sb1) =>
UnifiedFPFPConversion
mode
eb0
sb0
eb1
sb1
) =>
AllUnifiedFPFPConversion mode