packages feed

hydra-0.5.0: src/main/haskell/Hydra/Dsl/Lib/Sets.hs

module Hydra.Dsl.Lib.Sets where

import Hydra.Phantoms
import Hydra.Sources.Libraries
import qualified Hydra.Dsl.Terms as Terms

import Data.Set


contains :: Datum (a -> Set a -> Bool)
contains = Datum $ Terms.primitive _sets_contains

difference :: Datum (Set a -> Set a -> Set a)
difference = Datum $ Terms.primitive _sets_difference

empty :: Datum (Set a)
empty = Datum $ Terms.primitive _sets_empty

fromList :: Datum ([a] -> Set a)
fromList = Datum $ Terms.primitive _sets_fromList

insert :: Datum (a -> Set a -> Set a)
insert = Datum $ Terms.primitive _sets_insert

intersection :: Datum (Set a -> Set a -> Set a)
intersection = Datum $ Terms.primitive _sets_intersection

isEmpty :: Datum (Set a -> Bool)
isEmpty = Datum $ Terms.primitive _sets_isEmpty

map :: Datum ((a -> b) -> Set a -> Set b)
map = Datum $ Terms.primitive _sets_map

remove :: Datum (a -> Set a -> Set a)
remove = Datum $ Terms.primitive _sets_remove

singleton :: Datum (a -> Set a)
singleton = Datum $ Terms.primitive _sets_singleton

size :: Datum (Set a -> Int)
size = Datum $ Terms.primitive _sets_size

toList :: Datum (Set a -> [a])
toList = Datum $ Terms.primitive _sets_toList

union :: Datum (Set a -> Set a -> Set a)
union = Datum $ Terms.primitive _sets_union