module Ideas.Common.Library
( module Export
, failS, notS, repeatS, replicateS, sequenceS, untilS
, Some(..)
) where
import Ideas.Common.Classes as Export
import Ideas.Common.Constraint as Export hiding (Result(..))
import Ideas.Common.Context as Export
import Ideas.Common.Derivation as Export
import Ideas.Common.Environment as Export
import Ideas.Common.Exercise as Export
import Ideas.Common.Id as Export
import Ideas.Common.Predicate as Export
import Ideas.Common.Rewriting as Export
import Ideas.Common.Rule as Export
import Ideas.Common.Strategy as Export hiding (fail, not, repeat, replicate, sequence, until)
import Ideas.Common.Traversal.Navigator as Export (Location, location, toLocation, fromLocation, arity, top)
import Ideas.Common.View as Export
import Ideas.Utils.Prelude as Export (readM, Some(..))
import qualified Ideas.Common.Strategy as S
failS :: Strategy a
failS = S.fail
notS :: IsStrategy f => f a -> Strategy a
notS = S.not
repeatS :: IsStrategy f => f a -> Strategy a
repeatS = S.repeat
replicateS :: IsStrategy f => Int -> f a -> Strategy a
replicateS = S.replicate
sequenceS :: IsStrategy f => [f a] -> Strategy a
sequenceS = S.sequence
untilS :: IsStrategy f => (a -> Bool) -> f a -> Strategy a
untilS = S.until