termination-combinators-0.1: Termination combinators for forcing non-terminating algorithms to terminate

Control.Termination

Documentation

data TestResult a Source

Constructors

Stop 
Continue (History a) 

test :: History a -> a -> TestResult aSource

data TTest a Source

Instances

initHistory :: TTest a -> History aSource

class Eq a => Finite a Source

Instances

Finite Bool 
Finite () 
Finite a => Finite (Maybe a) 
(Finite a, Finite b) => Finite (Either a b) 
(Finite a, Finite b) => Finite (a, b) 

class Ord a => WellOrdered a Source

Instances

eitherT :: TTest a -> TTest b -> TTest (Either a b)Source

pairT :: TTest a -> TTest b -> TTest (a, b)Source

finiteMapT :: (Ord k, Finite k) => TTest v -> TTest (Map k v)Source

newtype Fix f Source

Constructors

Roll 

Fields

unroll :: f (Fix f)
 

fixT :: Functor t => (forall rec. t rec -> [rec]) -> (forall rec. t rec -> t rec) -> (forall rec. TTest rec -> TTest (t rec)) -> TTest (Fix t)Source

gfixT :: Traversable t => (forall rec. TTest rec -> TTest (t rec)) -> TTest (Fix t)Source