functora-witch-1.2.0.2: Convert values from one type into another.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Functora.Witch.From

Synopsis
  • class From source target where
    • from :: source -> target

Documentation

class From source target where Source #

This type class is for converting values from some source type into some other target type. The constraint From source target means that you can convert from a value of type source into a value of type target.

This type class is for conversions that always succeed. If your conversion sometimes fails, consider implementing TryFrom instead.

Minimal complete definition

Nothing

Methods

from :: source -> target Source #

This method implements the conversion of a value between types. At call sites you may prefer to use into instead.

-- Avoid this:
from (x :: s)

-- Prefer this (using [@TypeApplications@](https://downloads.haskell.org/ghc/9.6.1/docs/users_guide/exts/type_applications.html) language extension):
from @s x

The default implementation of this method simply calls coerce, which works for types that have the same runtime representation. This means that for newtypes you do not need to implement this method at all. For example:

>>> newtype Name = Name String
>>> instance From Name String
>>> instance From String Name

default from :: Coercible source target => source -> target Source #

Instances

Instances details
From Int16 Int32 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int16 -> Int32 Source #

From Int16 Int64 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int16 -> Int64 Source #

From Int16 Integer Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int16 -> Integer Source #

From Int16 Double Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int16 -> Double Source #

From Int16 Float Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int16 -> Float Source #

From Int16 Int Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int16 -> Int Source #

From Int32 Int64 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int32 -> Int64 Source #

From Int32 Integer Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int32 -> Integer Source #

From Int32 Double Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int32 -> Double Source #

From Int64 Integer Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int64 -> Integer Source #

From Int8 Int16 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int8 -> Int16 Source #

From Int8 Int32 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int8 -> Int32 Source #

From Int8 Int64 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int8 -> Int64 Source #

From Int8 Integer Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int8 -> Integer Source #

From Int8 Double Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int8 -> Double Source #

From Int8 Float Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int8 -> Float Source #

From Int8 Int Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int8 -> Int Source #

From Rational Double Source #

Uses fromRational. This necessarily loses some precision.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Rational -> Double Source #

From Rational Float Source #

Uses fromRational. This necessarily loses some precision.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Rational -> Float Source #

From Word16 Int32 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word16 -> Int32 Source #

From Word16 Int64 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word16 -> Int64 Source #

From Word16 Word32 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word16 -> Word32 Source #

From Word16 Word64 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word16 -> Word64 Source #

From Word16 Integer Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word16 -> Integer Source #

From Word16 Natural Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word16 -> Natural Source #

From Word16 Double Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word16 -> Double Source #

From Word16 Float Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word16 -> Float Source #

From Word16 Int Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word16 -> Int Source #

From Word16 Word Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word16 -> Word Source #

From Word32 Int64 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word32 -> Int64 Source #

From Word32 Word64 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word32 -> Word64 Source #

From Word32 Integer Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word32 -> Integer Source #

From Word32 Natural Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word32 -> Natural Source #

From Word32 Double Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word32 -> Double Source #

From Word64 Integer Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word64 -> Integer Source #

From Word64 Natural Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word64 -> Natural Source #

From Word8 Int16 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Int16 Source #

From Word8 Int32 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Int32 Source #

From Word8 Int64 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Int64 Source #

From Word8 Word16 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Word16 Source #

From Word8 Word32 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Word32 Source #

From Word8 Word64 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Word64 Source #

From Word8 Integer Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Integer Source #

From Word8 Natural Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Natural Source #

From Word8 Double Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Double Source #

From Word8 Float Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Float Source #

From Word8 Int Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Int Source #

From Word8 Word Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word8 -> Word Source #

From ByteString ByteString Source #

Uses fromStrict.

Instance details

Defined in Functora.Witch.Instances

From ByteString ShortByteString Source #

Uses toShort.

Instance details

Defined in Functora.Witch.Instances

From ByteString ByteString Source #

Uses toStrict.

Instance details

Defined in Functora.Witch.Instances

From ShortByteString ByteString Source #

Uses fromShort.

Instance details

Defined in Functora.Witch.Instances

From Text Text Source #

Uses fromStrict.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Text0 -> Text Source #

From Text String Source #

Uses unpack.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Text -> String Source #

From Text Text Source #

Uses toStrict.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Text -> Text0 Source #

From Text String Source #

Uses unpack.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Text -> String Source #

From String Text Source #

Uses pack. Some Char values cannot be represented in Text and will be replaced with '\xFFFD'.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: String -> Text Source #

From String Text Source #

Uses pack. Some Char values cannot be represented in Text and will be replaced with '\xFFFD'.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: String -> Text Source #

From Natural Integer Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Natural -> Integer Source #

From Double Float Source #

Uses double2Float. This necessarily loses some precision.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Double -> Float Source #

From Float Double Source #

Uses float2Double.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Float -> Double Source #

From Int Int64 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int -> Int64 Source #

From Int Integer Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Int -> Integer Source #

From Word Word64 Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word -> Word64 Source #

From Word Integer Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word -> Integer Source #

From Word Natural Source #

Uses fromIntegral.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Word -> Natural Source #

a ~ b => From a b Source #

Uses id.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: a -> b Source #

From ByteString [Word8] Source #

Uses unpack.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: ByteString -> [Word8] Source #

From ByteString [Word8] Source #

Uses unpack.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: ByteString -> [Word8] Source #

From ShortByteString [Word8] Source #

Uses unpack.

Instance details

Defined in Functora.Witch.Instances

From IntSet [Int] Source #

Uses toAscList.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: IntSet -> [Int] Source #

From Text (UTF_16BE ByteString) Source #

Uses encodeUtf16BE.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_16BE ByteString) Source #

Converts via ByteString.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_16LE ByteString) Source #

Uses encodeUtf16LE.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_16LE ByteString) Source #

Converts via ByteString.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_32BE ByteString) Source #

Uses encodeUtf32BE.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_32BE ByteString) Source #

Converts via ByteString.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_32LE ByteString) Source #

Uses encodeUtf32LE.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_32LE ByteString) Source #

Converts via ByteString.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_8 ByteString) Source #

Uses encodeUtf8.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_8 ByteString) Source #

Converts via ByteString.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_16BE ByteString) Source #

Converts via ByteString.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_16BE ByteString) Source #

Uses encodeUtf16BE.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_16LE ByteString) Source #

Converts via ByteString.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_16LE ByteString) Source #

Uses encodeUtf16LE.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_32BE ByteString) Source #

Converts via ByteString.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_32BE ByteString) Source #

Uses encodeUtf32BE.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_32LE ByteString) Source #

Converts via ByteString.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_32LE ByteString) Source #

Uses encodeUtf32LE.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_8 ByteString) Source #

Converts via ByteString.

Instance details

Defined in Functora.Witch.Instances

From Text (UTF_8 ByteString) Source #

Uses encodeUtf8.

Instance details

Defined in Functora.Witch.Instances

From String (UTF_16BE ByteString) Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From String (UTF_16BE ByteString) Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From String (UTF_16LE ByteString) Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From String (UTF_16LE ByteString) Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From String (UTF_32BE ByteString) Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From String (UTF_32BE ByteString) Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From String (UTF_32LE ByteString) Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From String (UTF_32LE ByteString) Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From String (UTF_8 ByteString) Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From String (UTF_8 ByteString) Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

Num a => From a (Complex a) Source #

Uses (:+) with an imaginary part of 0.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: a -> Complex a Source #

Integral a => From a (Ratio a) Source #

Uses (%) with a denominator of 1.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: a -> Ratio a Source #

From Integer (Fixed a) Source #

Uses MkFixed. This means from @Integer @Centi 2 is 0.02 rather than 2.00.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Integer -> Fixed a Source #

From a (Tagged t a) Source #

Uses coerce. Essentially the same as Tagged.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: a -> Tagged t a Source #

From (ISO_8859_1 ByteString) Text Source #

Uses decodeLatin1.

Instance details

Defined in Functora.Witch.Instances

From (ISO_8859_1 ByteString) Text Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From (ISO_8859_1 ByteString) String Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From (ISO_8859_1 ByteString) Text Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From (ISO_8859_1 ByteString) Text Source #

Uses decodeLatin1.

Instance details

Defined in Functora.Witch.Instances

From (ISO_8859_1 ByteString) String Source #

Converts via Text.

Instance details

Defined in Functora.Witch.Instances

From [Word8] ByteString Source #

Uses pack.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: [Word8] -> ByteString Source #

From [Word8] ByteString Source #

Uses pack.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: [Word8] -> ByteString Source #

From [Word8] ShortByteString Source #

Uses pack.

Instance details

Defined in Functora.Witch.Instances

From [Int] IntSet Source #

Uses fromList.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: [Int] -> IntSet Source #

From (NonEmpty a) [a] Source #

Uses toList.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: NonEmpty a -> [a] Source #

From (IntMap v) [(Int, v)] Source #

Uses toAscList.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: IntMap v -> [(Int, v)] Source #

From (Seq a) [a] Source #

Uses toList.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Seq a -> [a] Source #

From (Set a) [a] Source #

Uses toAscList.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Set a -> [a] Source #

From [(Int, v)] (IntMap v) Source #

Uses fromList. If there are duplicate keys, later values will overwrite earlier ones.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: [(Int, v)] -> IntMap v Source #

From [a] (Seq a) Source #

Uses fromList.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: [a] -> Seq a Source #

Ord a => From [a] (Set a) Source #

Uses fromList.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: [a] -> Set a Source #

Ord k => From [(k, v)] (Map k v) Source #

Uses fromList. If there are duplicate keys, later values will overwrite earlier ones.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: [(k, v)] -> Map k v Source #

HasResolution a => From (Fixed a) Rational Source #

Uses toRational.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Fixed a -> Rational Source #

From (Fixed a) Integer Source #

Uses MkFixed. This means from @Centi @Integer 3.00 is 300 rather than 3.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Fixed a -> Integer Source #

From (Map k v) [(k, v)] Source #

Uses toAscList.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Map k v -> [(k, v)] Source #

From (TryFromException source oldTarget) (TryFromException source newTarget) Source #

Uses coerce.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: TryFromException source oldTarget -> TryFromException source newTarget Source #

From (Tagged t a) a Source #

Uses coerce. Essentially the same as unTagged.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Tagged t a -> a Source #

From (Tagged t a) (Tagged u a) Source #

Uses coerce. Essentially the same as retag.

Instance details

Defined in Functora.Witch.Instances

Methods

from :: Tagged t a -> Tagged u a Source #