cflp-2009.2.1: Constraint Functional-Logic Programming in HaskellSource codeContentsIndex
CFLP
Documentation
class (Strategy (Ctx s) s, MonadPlus s, Solvable (Ctx s), MonadUpdate (Ctx s) s, Update (Ctx s) s s, Update (Ctx s) s (Res s), MonadPlus (Res s), Enumerable (Res s)) => CFLP s Source
show/hide Instances
class Enumerable s whereSource
Methods
enumeration :: s a -> [a]Source
show/hide Instances
type family Ctx s Source
type Data s a = Nondet (Ctx s) s aSource
eval :: (Monad s, CFLP s, Generic a) => [s (Ctx s)] -> (Context (Ctx s) -> ID -> Data s a) -> IO [a]Source
evalPartial :: (Monad s, CFLP s, Generic a) => [s (Ctx s)] -> (Context (Ctx s) -> ID -> Data s a) -> IO [a]Source
evalPrint :: (Monad s, CFLP s, Generic a) => [s (Ctx s)] -> (Context (Ctx s) -> ID -> Data s a) -> IO ()Source
data Monadic m a Source
show/hide Instances
MonadUpdate c m => MonadUpdate c (Monadic m)
MonadPlus m => Strategy c (Monadic m)
Update s m m' => Update s (Monadic m) (Monadic m')
Monad m => Monad (Monadic m)
MonadPlus m => MonadPlus (Monadic m)
Enumerable m => Enumerable (Monadic m)
(MonadPlus m, Enumerable m) => CFLP (Monadic (UpdateT () m))
monadic :: Monad m => Monadic (UpdateT c m) ()Source
data UpdateT s m a Source
show/hide Instances
MonadPlus m => MonadUpdate s (UpdateT s m)
MonadPlus m => Update s (UpdateT s m) m
MonadPlus m => Update s (UpdateT s m) (UpdateT s m)
MonadTrans (UpdateT s)
Monad m => Monad (UpdateT s m)
MonadPlus m => MonadPlus (UpdateT s m)
Show a => Show (UpdateT s [] a)
data NormalForm Source
show/hide Instances
data Nondet cs m a Source
show/hide Instances
With x (Nondet cs m a)
Show (Nondet cs (UpdateT cs []) a)
Show (Nondet cs [] a)
Monad m => MkCons (Nondet cs m a)
WithUntyped (Nondet cs m a)
newtype Context cs Source
Constructors
Context cs
data ID Source
show/hide Instances
With ID a => With ID (ID -> a)
initID :: IO IDSource
withUnique :: With ID a => a -> ID -> Nondet (C ID a) (M ID a) (T ID a)Source
class Narrow c a whereSource
Methods
narrow :: (Monad s, Strategy c s, MonadUpdate c s, Update c s s) => Context c -> ID -> Nondet c s aSource
show/hide Instances
unknown :: (Monad s, Strategy c s, MonadUpdate c s, Update c s s, Narrow c a) => ID -> Nondet c s aSource
failure :: MonadPlus m => Nondet cs m aSource
oneOf :: (Strategy c s, MonadUpdate c s) => [Nondet c s a] -> Context c -> ID -> Nondet c s aSource
(?) :: (Monad s, Strategy c s, MonadUpdate c s) => Nondet c s a -> Nondet c s a -> ID -> Nondet c s aSource
withHNF :: (Monad m, Update cs m m) => Nondet cs m a -> (HeadNormalForm cs m -> Context cs -> Nondet cs m b) -> Context cs -> Nondet cs m bSource
caseOf :: (MonadPlus m, Update cs m m) => Nondet cs m a -> [Match a cs m b] -> Context cs -> Nondet cs m bSource
caseOf_ :: (Monad m, Update cs m m) => Nondet cs m a -> [Match a cs m b] -> Nondet cs m b -> Context cs -> Nondet cs m bSource
data Match a cs m b Source
class Generic a whereSource
Methods
genericOps :: GenericOps aSource
constr :: Int -> GenericOps aSource
show/hide Instances
primitive :: Generic a => NormalForm -> aSource
generic :: Generic a => a -> NormalFormSource
nondet :: (Monad m, Update cs m m, Generic a) => a -> Nondet cs m aSource
type Decons a = ([NormalForm] -> NormalForm) -> Result a -> Maybe NormalFormSource
class ApplyCons a whereSource
Associated Types
type Result a Source
Methods
applyCons :: a -> [NormalForm] -> Result aSource
show/hide Instances
(!) :: (Int -> GenericOps a) -> (Int -> GenericOps a) -> Int -> GenericOps aSource
cons :: ApplyCons a => String -> a -> Decons a -> Int -> GenericOps (Result a)Source
groundNormalForm :: (Monad s, Monad m, Update c s m) => s c -> Nondet c s a -> m (NormalForm, c)Source
partialNormalForm :: (Monad s, Strategy c s, Solvable c, MonadPlus m, Update c s m) => s c -> Nondet c s a -> m (NormalForm, c)Source
data ConsPatList a b Source
Constructors
a :! b
show/hide Instances
(cs ~ C a, m ~ M a, b ~ T a, WithUntyped a, PatternList p) => PatternList (ConsPatList ((Context cs -> a) -> Match t cs m b) p)
(MkCons a, ConsList b) => ConsList (ConsPatList a b)
constructors :: (ConsList a, Generic (CData a)) => aSource
patterns :: (PatternList a, Generic (PData a)) => aSource
apply :: (Monad m, Update cs m m) => Nondet cs m (a -> b) -> Nondet cs m a -> Context cs -> ID -> Nondet cs m bSource
fun :: (Monad m, LiftFun f, NestLambda cs m t (Lift f)) => f -> Nondet cs m tSource
Produced by Haddock version 2.4.2