grisette-0.11.0.0: src/Grisette/Internal/Internal/Impl/Unified/FPFPConversion.hs
{-# 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
-- Copyright : (c) Sirui Lu 2024
-- License : BSD-3-Clause (see the LICENSE file)
--
-- Maintainer : siruilu@cs.washington.edu
-- Stability : Experimental
-- Portability : GHC only
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