small-steps-0.1.0.0: Small step semantics
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Relation

Synopsis

Documentation

class Relation m where Source #

Minimal complete definition

singleton, dom, range, (◁), (⋪), (▷), (⋫), (∪), (⨃), size

Associated Types

type Domain m :: Type Source #

type Range m :: Type Source #

Methods

singleton :: Domain m -> Range m -> m Source #

dom :: Ord (Domain m) => m -> Set (Domain m) Source #

Domain

range :: Ord (Range m) => m -> Set (Range m) Source #

Range

(◁) :: Ord (Domain m) => Set (Domain m) -> m -> m Source #

Domain restriction

Unicode: 25c1

(<|) :: Ord (Domain m) => Set (Domain m) -> m -> m Source #

Domain restriction

Unicode: 25c1

(⋪) :: Ord (Domain m) => Set (Domain m) -> m -> m Source #

Domain exclusion

Unicode: 22ea

(</|) :: Ord (Domain m) => Set (Domain m) -> m -> m Source #

Domain exclusion

Unicode: 22ea

(▷) :: Ord (Range m) => m -> Set (Range m) -> m Source #

Range restriction

Unicode: 25b7

(|>) :: Ord (Range m) => m -> Set (Range m) -> m Source #

Range restriction

Unicode: 25b7

(⋫) :: Ord (Range m) => m -> Set (Range m) -> m Source #

Range exclusion

Unicode: 22eb

(|/>) :: Ord (Range m) => m -> Set (Range m) -> m Source #

Range exclusion

Unicode: 22eb

(∪) :: (Ord (Domain m), Ord (Range m)) => m -> m -> m Source #

Union

(⨃) :: (Ord (Domain m), Ord (Range m)) => m -> m -> m Source #

Union Override Right

size :: Integral n => m -> n Source #

Size of the relation

haskey :: Ord (Domain m) => Domain m -> m -> Bool Source #

Is this key in the Domain, Instances should overide this default with something more efficient

addpair :: (Ord (Domain m), Ord (Range m)) => Domain m -> Range m -> m -> m Source #

Insert (key,value) pair into the Relation. Instances should overide this default with something more efficient

removekey :: Ord (Domain m) => Domain m -> m -> m Source #

Remove a key (and its associted value at that key) from the Relation. Instances should overide this default with something more efficient

Instances

Instances details
Relation [(a, b)] Source # 
Instance details

Defined in Data.Relation

Associated Types

type Domain [(a, b)] Source #

type Range [(a, b)] Source #

Methods

singleton :: Domain [(a, b)] -> Range [(a, b)] -> [(a, b)] Source #

dom :: [(a, b)] -> Set (Domain [(a, b)]) Source #

range :: [(a, b)] -> Set (Range [(a, b)]) Source #

(◁) :: Set (Domain [(a, b)]) -> [(a, b)] -> [(a, b)] Source #

(<|) :: Set (Domain [(a, b)]) -> [(a, b)] -> [(a, b)] Source #

(⋪) :: Set (Domain [(a, b)]) -> [(a, b)] -> [(a, b)] Source #

(</|) :: Set (Domain [(a, b)]) -> [(a, b)] -> [(a, b)] Source #

(▷) :: [(a, b)] -> Set (Range [(a, b)]) -> [(a, b)] Source #

(|>) :: [(a, b)] -> Set (Range [(a, b)]) -> [(a, b)] Source #

(⋫) :: [(a, b)] -> Set (Range [(a, b)]) -> [(a, b)] Source #

(|/>) :: [(a, b)] -> Set (Range [(a, b)]) -> [(a, b)] Source #

(∪) :: [(a, b)] -> [(a, b)] -> [(a, b)] Source #

(⨃) :: [(a, b)] -> [(a, b)] -> [(a, b)] Source #

size :: Integral n => [(a, b)] -> n Source #

haskey :: Domain [(a, b)] -> [(a, b)] -> Bool Source #

addpair :: Domain [(a, b)] -> Range [(a, b)] -> [(a, b)] -> [(a, b)] Source #

removekey :: Domain [(a, b)] -> [(a, b)] -> [(a, b)] Source #

Relation (Set (a, b)) Source # 
Instance details

Defined in Data.Relation

Associated Types

type Domain (Set (a, b)) Source #

type Range (Set (a, b)) Source #

Methods

singleton :: Domain (Set (a, b)) -> Range (Set (a, b)) -> Set (a, b) Source #

dom :: Set (a, b) -> Set (Domain (Set (a, b))) Source #

range :: Set (a, b) -> Set (Range (Set (a, b))) Source #

(◁) :: Set (Domain (Set (a, b))) -> Set (a, b) -> Set (a, b) Source #

(<|) :: Set (Domain (Set (a, b))) -> Set (a, b) -> Set (a, b) Source #

(⋪) :: Set (Domain (Set (a, b))) -> Set (a, b) -> Set (a, b) Source #

(</|) :: Set (Domain (Set (a, b))) -> Set (a, b) -> Set (a, b) Source #

(▷) :: Set (a, b) -> Set (Range (Set (a, b))) -> Set (a, b) Source #

(|>) :: Set (a, b) -> Set (Range (Set (a, b))) -> Set (a, b) Source #

(⋫) :: Set (a, b) -> Set (Range (Set (a, b))) -> Set (a, b) Source #

(|/>) :: Set (a, b) -> Set (Range (Set (a, b))) -> Set (a, b) Source #

(∪) :: Set (a, b) -> Set (a, b) -> Set (a, b) Source #

(⨃) :: Set (a, b) -> Set (a, b) -> Set (a, b) Source #

size :: Integral n => Set (a, b) -> n Source #

haskey :: Domain (Set (a, b)) -> Set (a, b) -> Bool Source #

addpair :: Domain (Set (a, b)) -> Range (Set (a, b)) -> Set (a, b) -> Set (a, b) Source #

removekey :: Domain (Set (a, b)) -> Set (a, b) -> Set (a, b) Source #

Relation (Map k v) Source # 
Instance details

Defined in Data.Relation

Associated Types

type Domain (Map k v) Source #

type Range (Map k v) Source #

Methods

singleton :: Domain (Map k v) -> Range (Map k v) -> Map k v Source #

dom :: Map k v -> Set (Domain (Map k v)) Source #

range :: Map k v -> Set (Range (Map k v)) Source #

(◁) :: Set (Domain (Map k v)) -> Map k v -> Map k v Source #

(<|) :: Set (Domain (Map k v)) -> Map k v -> Map k v Source #

(⋪) :: Set (Domain (Map k v)) -> Map k v -> Map k v Source #

(</|) :: Set (Domain (Map k v)) -> Map k v -> Map k v Source #

(▷) :: Map k v -> Set (Range (Map k v)) -> Map k v Source #

(|>) :: Map k v -> Set (Range (Map k v)) -> Map k v Source #

(⋫) :: Map k v -> Set (Range (Map k v)) -> Map k v Source #

(|/>) :: Map k v -> Set (Range (Map k v)) -> Map k v Source #

(∪) :: Map k v -> Map k v -> Map k v Source #

(⨃) :: Map k v -> Map k v -> Map k v Source #

size :: Integral n => Map k v -> n Source #

haskey :: Domain (Map k v) -> Map k v -> Bool Source #

addpair :: Domain (Map k v) -> Range (Map k v) -> Map k v -> Map k v Source #

removekey :: Domain (Map k v) -> Map k v -> Map k v Source #

(⊆) :: (Foldable f, Foldable g, Ord a) => f a -> g a -> Bool Source #

Inclusion among foldables.

Unicode: 2286

(∪+) :: (Ord a, Num b) => Map a b -> Map a b -> Map a b Source #

Union override plus is (AB)∪(BA)∪{k|->v1+v2 | k|->v1 : A / k|->v2 : B} The library function Map.unionWith is more general, it allows any type for b as long as (+) :: b -> b -> b

(∈) :: (Eq a, Foldable f) => a -> f a -> Bool Source #

Alias for elem.

Unicode: 2208

(∉) :: (Eq a, Foldable f) => a -> f a -> Bool infixl 4 Source #

Alias for not elem.

Unicode: 2209

(∩) :: Ord a => Set a -> Set a -> Set a Source #