-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Termination combinators for forcing non-terminating algorithms to terminate -- -- For more information see the paper at -- http:www.cl.cam.ac.uk~mb566papers/termination-combinators-hs11.pdf @package termination-combinators @version 0.1 module Control.Termination data TestResult a Stop :: TestResult a Continue :: (History a) -> TestResult a test :: History a -> a -> TestResult a data TTest a initHistory :: TTest a -> History a alwaysT :: TTest a class Eq a => Finite a finiteT :: Finite a => TTest a boolT :: TTest Bool unitT :: TTest () class Ord a => WellOrdered a intT :: TTest Int eitherT :: TTest a -> TTest b -> TTest (Either a b) pairT :: TTest a -> TTest b -> TTest (a, b) finiteMapT :: (Ord k, Finite k) => TTest v -> TTest (Map k v) newtype Fix f Roll :: f (Fix f) -> Fix f unroll :: Fix f -> 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) gfixT :: Traversable t => (forall rec. TTest rec -> TTest (t rec)) -> TTest (Fix t) instance Applicative (Gather a) instance Functor (Gather a) instance Contravariant TTest instance WellOrdered Int instance (Finite a, Finite b) => Finite (Either a b) instance (Finite a, Finite b) => Finite (a, b) instance Finite a => Finite (Maybe a) instance Finite Bool instance Finite ()