Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
This module contains the core REST algorithm
Synopsis
- rest :: forall m rule term oc rtype. (MonadIO m, RewriteRule m rule term, Hashable term, Eq term, Hashable rule, Hashable oc, Eq rule, Eq oc, Show oc, RESTResult rtype) => RESTParams m rule term oc rtype -> term -> m (rtype rule term oc, Maybe (Path rule term oc))
- pathsResult :: PathsResult rule term oc
- termsResult :: TermsResult rule term oc
- newtype PathsResult rule term oc = PathsResult (HashSet (Path rule term oc))
- data TermsResult rule term oc
- newtype WorkStrategy rule term oc = WorkStrategy (forall m. GetWork m rule term oc)
- data RESTParams m rule term oc rtype = RESTParams {
- re :: HashSet rule
- ru :: HashSet rule
- target :: Maybe term
- workStrategy :: WorkStrategy rule term oc
- ocImpl :: OCAlgebra oc term m
- initRes :: rtype rule term oc
- etStrategy :: ExploreStrategy
- class RESTResult a where
Documentation
rest :: forall m rule term oc rtype. (MonadIO m, RewriteRule m rule term, Hashable term, Eq term, Hashable rule, Hashable oc, Eq rule, Eq oc, Show oc, RESTResult rtype) => RESTParams m rule term oc rtype -> term -> m (rtype rule term oc, Maybe (Path rule term oc)) Source #
pathsResult :: PathsResult rule term oc Source #
An initial (empty) instance of PathsResult
termsResult :: TermsResult rule term oc Source #
An initial (empty) instance of TermsResult
newtype PathsResult rule term oc Source #
The set of all Path
s explored by REST.
PathsResult (HashSet (Path rule term oc)) |
Instances
RESTResult PathsResult Source # | |
Defined in Language.REST.Rest includeInResult :: (Hashable oc, Eq oc, Hashable rule, Eq rule, Hashable term, Eq term) => Path rule term oc -> PathsResult rule term oc -> PathsResult rule term oc Source # resultTerms :: (Eq term, Hashable term) => PathsResult rule term oc -> HashSet term Source # |
data TermsResult rule term oc Source #
The set of all terms explored by REST.
Instances
RESTResult TermsResult Source # | |
Defined in Language.REST.Rest includeInResult :: (Hashable oc, Eq oc, Hashable rule, Eq rule, Hashable term, Eq term) => Path rule term oc -> TermsResult rule term oc -> TermsResult rule term oc Source # resultTerms :: (Eq term, Hashable term) => TermsResult rule term oc -> HashSet term Source # |
newtype WorkStrategy rule term oc Source #
WorkStrategy
defines the procedure for choosing which pending path REST explores
WorkStrategy (forall m. GetWork m rule term oc) |
data RESTParams m rule term oc rtype Source #
RESTParams | |
|
class RESTResult a where Source #
includeInResult :: (Hashable oc, Eq oc, Hashable rule, Eq rule, Hashable term, Eq term) => Path rule term oc -> a rule term oc -> a rule term oc Source #
Includes a term in the result
resultTerms :: (Eq term, Hashable term) => a rule term oc -> HashSet term Source #
Obtains the terms explored by REST
Instances
RESTResult PathsResult Source # | |
Defined in Language.REST.Rest includeInResult :: (Hashable oc, Eq oc, Hashable rule, Eq rule, Hashable term, Eq term) => Path rule term oc -> PathsResult rule term oc -> PathsResult rule term oc Source # resultTerms :: (Eq term, Hashable term) => PathsResult rule term oc -> HashSet term Source # | |
RESTResult TermsResult Source # | |
Defined in Language.REST.Rest includeInResult :: (Hashable oc, Eq oc, Hashable rule, Eq rule, Hashable term, Eq term) => Path rule term oc -> TermsResult rule term oc -> TermsResult rule term oc Source # resultTerms :: (Eq term, Hashable term) => TermsResult rule term oc -> HashSet term Source # |