rest-rewrite-0.4.3: Rewriting library with online termination checking
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.REST.Internal.PartialOrder

Synopsis

Documentation

insert :: (Eq a, Ord a, Hashable a) => PartialOrder a -> a -> a -> Maybe (PartialOrder a) Source #

replaceUnsafe :: (Eq a, Ord a, Hashable a) => [a] -> a -> PartialOrder a -> PartialOrder a Source #

replaceUnsafe olds new (>) replaces every element in olds with new in the partial order (>).

More formally:

replaceUnsafe olds new (>) =
  { (a, b) | notElem a olds, notElem b olds }
  U { (new, b) | o <- olds, o > b }
  U { (a, new) | o <- olds, a > o }

This operation is unsafe because it only yields a partial order if forall o in olds: * o > b implies not (b > new), and * a > o implies not (new > a).

insertUnsafe :: Ord a => PartialOrder a -> a -> a -> PartialOrder a Source #

insertUnsafe (>) a b is unsafe because it may not respect some of its properties if canInsert (>) a b doesn't hold.

gt :: (Eq a, Ord a, Hashable a) => PartialOrder a -> a -> a -> Bool Source #

gt (>) a b == (a > b)

toList :: PartialOrder a -> [(a, a)] Source #

elems :: (Eq a, Ord a, Hashable a) => PartialOrder a -> Set a Source #

data PartialOrder a Source #

Irreflexive (strict) partial orders

Instances

Instances details
Generic (PartialOrder a) Source # 
Instance details

Defined in Language.REST.Internal.PartialOrder

Associated Types

type Rep (PartialOrder a) :: Type -> Type #

Methods

from :: PartialOrder a -> Rep (PartialOrder a) x #

to :: Rep (PartialOrder a) x -> PartialOrder a #

Show a => Show (PartialOrder a) Source # 
Instance details

Defined in Language.REST.Internal.PartialOrder

Eq a => Eq (PartialOrder a) Source # 
Instance details

Defined in Language.REST.Internal.PartialOrder

Ord a => Ord (PartialOrder a) Source # 
Instance details

Defined in Language.REST.Internal.PartialOrder

Hashable a => Hashable (PartialOrder a) Source # 
Instance details

Defined in Language.REST.Internal.PartialOrder

type Rep (PartialOrder a) Source # 
Instance details

Defined in Language.REST.Internal.PartialOrder

type Rep (PartialOrder a) = D1 ('MetaData "PartialOrder" "Language.REST.Internal.PartialOrder" "rest-rewrite-0.4.3-L4CHsmDzf4PMYNf7CqgfF" 'True) (C1 ('MetaCons "PartialOrder" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map a (Set a)))))

descendents :: Ord a => a -> PartialOrder a -> Set a Source #

descendents a (>) = { b | a > b }