Inject instances for Data.Set, Data.Sequence (#113)
This commit is contained in:
parent
a03de76a41
commit
9e0ab9a755
11
src/Dhall.hs
11
src/Dhall.hs
|
@ -72,7 +72,10 @@ import Text.Trifecta.Delta (Delta(..))
|
|||
|
||||
import qualified Control.Exception
|
||||
import qualified Data.ByteString.Lazy
|
||||
import qualified Data.Foldable
|
||||
import qualified Data.Map
|
||||
import qualified Data.Sequence
|
||||
import qualified Data.Set
|
||||
import qualified Data.Text
|
||||
import qualified Data.Text.Lazy
|
||||
import qualified Data.Text.Lazy.Builder
|
||||
|
@ -781,6 +784,14 @@ instance Inject a => Inject (Vector a) where
|
|||
instance Inject a => Inject [a] where
|
||||
injectWith = fmap (contramap Data.Vector.fromList) injectWith
|
||||
|
||||
instance Inject a => Inject (Data.Set.Set a) where
|
||||
injectWith = fmap (contramap go) injectWith where
|
||||
go se = Data.Vector.fromListN (Data.Set.size se) (Data.Foldable.toList se)
|
||||
|
||||
instance Inject a => Inject (Data.Sequence.Seq a) where
|
||||
injectWith = fmap (contramap go) injectWith where
|
||||
go se = Data.Vector.fromListN (Data.Sequence.length se) (Data.Foldable.toList se)
|
||||
|
||||
deriving instance (Inject a, Inject b) => Inject (a, b)
|
||||
|
||||
{-| This is the underlying class that powers the `Interpret` class's support
|
||||
|
|
Loading…
Reference in New Issue
Block a user