Hets - the Heterogeneous Tool Set
Copyright(c) 2005 Amr Sabry Chung-chieh Shan Oleg Kiselyov
and Daniel P. Friedman
LicenseGPLv2 or higher, see LICENSE.txt
MaintainerChristian.Maeder@dfki.de
Stabilityexperimental
Portabilitynon-portable (RankNTypes)
Safe HaskellSafe

Common.SFKT

Description

Implementation of LogicT based on the two-continuation model of streams

Documentation

data SFKT m a Source #

Instances

Instances details
MonadTrans SFKT Source # 
Instance details

Defined in Common.SFKT

Methods

lift :: Monad m => m a -> SFKT m a

LogicT SFKT Source # 
Instance details

Defined in Common.SFKT

Methods

msplit :: forall (m :: Type -> Type) a. (Monad m, MonadPlus (SFKT m)) => SFKT m a -> SFKT m (Maybe (a, SFKT m a)) Source #

interleave :: forall (m :: Type -> Type) a. (Monad m, MonadPlus (SFKT m)) => SFKT m a -> SFKT m a -> SFKT m a Source #

gsuccess :: forall (m :: Type -> Type) a. (Monad m, MonadPlus (SFKT m)) => a -> SFKT m a Source #

gfail :: forall (m :: Type -> Type) a. (Monad m, MonadPlus (SFKT m)) => SFKT m a Source #

bindi :: forall (m :: Type -> Type) a b. (Monad m, MonadPlus (SFKT m)) => SFKT m a -> (a -> SFKT m b) -> SFKT m b Source #

ifte :: forall (m :: Type -> Type) a b. (Monad m, MonadPlus (SFKT m)) => SFKT m a -> (a -> SFKT m b) -> SFKT m b -> SFKT m b Source #

once :: forall (m :: Type -> Type) a. (Monad m, MonadPlus (SFKT m)) => SFKT m a -> SFKT m a Source #

Monad m => Monad (SFKT m) Source # 
Instance details

Defined in Common.SFKT

Methods

(>>=) :: SFKT m a -> (a -> SFKT m b) -> SFKT m b

(>>) :: SFKT m a -> SFKT m b -> SFKT m b

return :: a -> SFKT m a

Monad m => Functor (SFKT m) Source # 
Instance details

Defined in Common.SFKT

Methods

fmap :: (a -> b) -> SFKT m a -> SFKT m b

(<$) :: a -> SFKT m b -> SFKT m a

MonadFail m => MonadFail (SFKT m) Source # 
Instance details

Defined in Common.SFKT

Methods

fail :: String -> SFKT m a

Monad m => Applicative (SFKT m) Source # 
Instance details

Defined in Common.SFKT

Methods

pure :: a -> SFKT m a

(<*>) :: SFKT m (a -> b) -> SFKT m a -> SFKT m b

liftA2 :: (a -> b -> c) -> SFKT m a -> SFKT m b -> SFKT m c

(*>) :: SFKT m a -> SFKT m b -> SFKT m b

(<*) :: SFKT m a -> SFKT m b -> SFKT m a

Monad m => Alternative (SFKT m) Source # 
Instance details

Defined in Common.SFKT

Methods

empty :: SFKT m a

(<|>) :: SFKT m a -> SFKT m a -> SFKT m a

some :: SFKT m a -> SFKT m [a]

many :: SFKT m a -> SFKT m [a]

Monad m => MonadPlus (SFKT m) Source # 
Instance details

Defined in Common.SFKT

Methods

mzero :: SFKT m a

mplus :: SFKT m a -> SFKT m a -> SFKT m a

MonadIO m => MonadIO (SFKT m) Source # 
Instance details

Defined in Common.SFKT

Methods

liftIO :: IO a -> SFKT m a

runM :: Monad m => Maybe Int -> SFKT m a -> m [a] Source #

observe :: MonadFail m => SFKT m a -> m a Source #