-- 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 ()