blanks-0.3.0: Fill-in-the-blanks - A library factoring out substitution from ASTs

Safe HaskellNone
LanguageHaskell2010

Blanks.ScopeT

Documentation

newtype ScopeT t n f a Source #

Constructors

ScopeT 

Fields

Instances
(Functor t, Functor f) => Functor (ScopeT t n f) Source # 
Instance details

Defined in Blanks.ScopeT

Methods

fmap :: (a -> b) -> ScopeT t n f a -> ScopeT t n f b #

(<$) :: a -> ScopeT t n f b -> ScopeT t n f a #

(Foldable t, Foldable f) => Foldable (ScopeT t n f) Source # 
Instance details

Defined in Blanks.ScopeT

Methods

fold :: Monoid m => ScopeT t n f m -> m #

foldMap :: Monoid m => (a -> m) -> ScopeT t n f a -> m #

foldr :: (a -> b -> b) -> b -> ScopeT t n f a -> b #

foldr' :: (a -> b -> b) -> b -> ScopeT t n f a -> b #

foldl :: (b -> a -> b) -> b -> ScopeT t n f a -> b #

foldl' :: (b -> a -> b) -> b -> ScopeT t n f a -> b #

foldr1 :: (a -> a -> a) -> ScopeT t n f a -> a #

foldl1 :: (a -> a -> a) -> ScopeT t n f a -> a #

toList :: ScopeT t n f a -> [a] #

null :: ScopeT t n f a -> Bool #

length :: ScopeT t n f a -> Int #

elem :: Eq a => a -> ScopeT t n f a -> Bool #

maximum :: Ord a => ScopeT t n f a -> a #

minimum :: Ord a => ScopeT t n f a -> a #

sum :: Num a => ScopeT t n f a -> a #

product :: Num a => ScopeT t n f a -> a #

(Traversable t, Traversable f) => Traversable (ScopeT t n f) Source # 
Instance details

Defined in Blanks.ScopeT

Methods

traverse :: Applicative f0 => (a -> f0 b) -> ScopeT t n f a -> f0 (ScopeT t n f b) #

sequenceA :: Applicative f0 => ScopeT t n f (f0 a) -> f0 (ScopeT t n f a) #

mapM :: Monad m => (a -> m b) -> ScopeT t n f a -> m (ScopeT t n f b) #

sequence :: Monad m => ScopeT t n f (m a) -> m (ScopeT t n f a) #

(RightAdjunctionApplicative t, Functor f) => BlankAbstract (ScopeT t n f) Source # 
Instance details

Defined in Blanks.ScopeT

Methods

blankFree :: a -> BlankCodomain (ScopeT t n f) (ScopeT t n f a) Source #

blankAbstract :: Eq a => BlankInfo (ScopeT t n f) -> Seq a -> ScopeT t n f a -> BlankCodomain (ScopeT t n f) (ScopeT t n f a) Source #

blankAbstract1 :: Eq a => BlankInfo (ScopeT t n f) -> a -> ScopeT t n f a -> BlankCodomain (ScopeT t n f) (ScopeT t n f a) Source #

blankUnAbstract :: Seq a -> ScopeT t n f a -> ScopeT t n f a Source #

blankUnAbstract1 :: a -> ScopeT t n f a -> ScopeT t n f a Source #

blankInstantiate :: Seq (BlankCodomain (ScopeT t n f) (ScopeT t n f a)) -> ScopeT t n f a -> ScopeT t n f a Source #

blankInstantiate1 :: BlankCodomain (ScopeT t n f) (ScopeT t n f a) -> ScopeT t n f a -> ScopeT t n f a Source #

blankApply :: Seq (BlankCodomain (ScopeT t n f) (ScopeT t n f a)) -> ScopeT t n f a -> Either SubError (ScopeT t n f a) Source #

blankApply1 :: BlankCodomain (ScopeT t n f) (ScopeT t n f a) -> ScopeT t n f a -> Either SubError (ScopeT t n f a) Source #

RightAdjunction t => BlankEmbed (ScopeT t n f) Source # 
Instance details

Defined in Blanks.ScopeT

Methods

blankEmbed :: BlankFunctor (ScopeT t n f) (ScopeT t n f a) -> BlankCodomain (ScopeT t n f) (ScopeT t n f a) Source #

Eq (t (UnderScope n f (ScopeT t n f a) a)) => Eq (ScopeT t n f a) Source # 
Instance details

Defined in Blanks.ScopeT

Methods

(==) :: ScopeT t n f a -> ScopeT t n f a -> Bool #

(/=) :: ScopeT t n f a -> ScopeT t n f a -> Bool #

Show (t (UnderScope n f (ScopeT t n f a) a)) => Show (ScopeT t n f a) Source # 
Instance details

Defined in Blanks.ScopeT

Methods

showsPrec :: Int -> ScopeT t n f a -> ShowS #

show :: ScopeT t n f a -> String #

showList :: [ScopeT t n f a] -> ShowS #

type BlankCodomain (ScopeT t n f) Source # 
Instance details

Defined in Blanks.ScopeT

type BlankFunctor (ScopeT t n f) Source # 
Instance details

Defined in Blanks.ScopeT

type BlankFunctor (ScopeT t n f) = f
type BlankInfo (ScopeT t n f) Source # 
Instance details

Defined in Blanks.ScopeT

type BlankInfo (ScopeT t n f) = n

type ScopeTFold t n f a r = ScopeTRawFold t n f a (RightAdjunct t r) Source #

type ScopeTRawFold t n f a r = UnderScopeFold n f (ScopeT t n f a) a r Source #

scopeTBind :: (RightAdjunction t, Functor f) => (a -> RightAdjunct t (ScopeT t n f b)) -> ScopeT t n f a -> ScopeT t n f b Source #

scopeTEmbed :: RightAdjunction t => f (ScopeT t n f a) -> RightAdjunct t (ScopeT t n f a) Source #

scopeTFold :: RightAdjunction t => ScopeTFold t n f a r -> ScopeT t n f a -> r Source #

scopeTHoistAnno :: (Functor t, Functor f) => (forall x. t x -> w x) -> ScopeT t n f a -> ScopeT w n f a Source #

scopeTLiftAnno :: Functor t => t a -> ScopeT t n f a Source #

scopeTRawFold :: Functor t => ScopeTRawFold t n f a r -> ScopeT t n f a -> t r Source #