{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE MonoLocalBinds #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE QuantifiedConstraints #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE UndecidableInstances #-}
module Grisette.Internal.Internal.Decl.Unified.FPFPConversion
( UnifiedFPFPConversionImpl,
UnifiedFPFPConversion,
AllUnifiedFPFPConversion,
)
where
import Grisette.Internal.Core.Data.Class.IEEEFP (IEEEFPConvertible)
import Grisette.Internal.Internal.Decl.Unified.UnifiedFP
( UnifiedFPImpl (GetFP, GetFPRoundingMode),
)
import Grisette.Internal.SymPrim.FP (ValidFP)
import Grisette.Internal.Unified.EvalModeTag (EvalModeTag)
class
( UnifiedFPImpl mode fpn eb0 sb0 fp0 fprd,
UnifiedFPImpl mode fpn eb1 sb1 fp1 fprd,
IEEEFPConvertible fp0 fp1 fprd
) =>
UnifiedFPFPConversionImpl
(mode :: EvalModeTag)
fpn
eb0
sb0
eb1
sb1
fp0
fp1
fprd
class
( 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
class
( forall eb0 sb0 eb1 sb1.
(ValidFP eb0 sb0, ValidFP eb1 sb1) =>
UnifiedFPFPConversion
mode
eb0
sb0
eb1
sb1
) =>
AllUnifiedFPFPConversion mode