Coercions
"I have a Float but want a Double". Or: I have a String but want a Text.
Answer¶
Usually one can find the right function via Hoogle:

However, a more convenient option is to use the Witch library, which abstracts coercions using a single function, called into:
{-# LANGUAGE TypeApplications #-} -- (1)!
import Witch -- (2)!
float :: Float
float = 4
double :: Double
double = into @Double float -- (3)!
str :: String
str = "hello"
text :: Text
text = into @Text str
- 
Only needed if you aren't using GHC2021. 
- 
This is a library for performing coercions. 
- 
The use of the @Doublehere directs helps the type checker infer the output type ofinto. Only needed if you don't supply the type signaturedouble :: Double.
  
    
      Last update:
      January 12, 2023
      
        
Created: August 18, 2022
  
  
  Created: August 18, 2022