blanks-0.5.0: Fill-in-the-blanks - A library factoring out substitution from ASTs
Safe HaskellNone
LanguageHaskell2010

Blanks.Tracked

Description

Utilities for gathering and caching sets of free variables.

Documentation

data Tracked a Source #

Constructors

Tracked 

Fields

Instances

Instances details
Eq a => Eq (Tracked a) Source # 
Instance details

Defined in Blanks.Tracked

Methods

(==) :: Tracked a -> Tracked a -> Bool #

(/=) :: Tracked a -> Tracked a -> Bool #

Show a => Show (Tracked a) Source # 
Instance details

Defined in Blanks.Tracked

Methods

showsPrec :: Int -> Tracked a -> ShowS #

show :: Tracked a -> String #

showList :: [Tracked a] -> ShowS #

Generic (Tracked a) Source # 
Instance details

Defined in Blanks.Tracked

Associated Types

type Rep (Tracked a) :: Type -> Type #

Methods

from :: Tracked a -> Rep (Tracked a) x #

to :: Rep (Tracked a) x -> Tracked a #

Ord a => Semigroup (Tracked a) Source # 
Instance details

Defined in Blanks.Tracked

Methods

(<>) :: Tracked a -> Tracked a -> Tracked a #

sconcat :: NonEmpty (Tracked a) -> Tracked a #

stimes :: Integral b => b -> Tracked a -> Tracked a #

Ord a => Monoid (Tracked a) Source # 
Instance details

Defined in Blanks.Tracked

Methods

mempty :: Tracked a #

mappend :: Tracked a -> Tracked a -> Tracked a #

mconcat :: [Tracked a] -> Tracked a #

NFData a => NFData (Tracked a) Source # 
Instance details

Defined in Blanks.Tracked

Methods

rnf :: Tracked a -> () #

type Rep (Tracked a) Source # 
Instance details

Defined in Blanks.Tracked

type Rep (Tracked a) = D1 ('MetaData "Tracked" "Blanks.Tracked" "blanks-0.5.0-inplace" 'False) (C1 ('MetaCons "Tracked" 'PrefixI 'True) (S1 ('MetaSel ('Just "trackedFree") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Set a)) :*: S1 ('MetaSel ('Just "trackedBound") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Set Int))))

data WithTracked a l Source #

Constructors

WithTracked 

Fields

Instances

Instances details
Functor (WithTracked a) Source # 
Instance details

Defined in Blanks.Tracked

Methods

fmap :: (a0 -> b) -> WithTracked a a0 -> WithTracked a b #

(<$) :: a0 -> WithTracked a b -> WithTracked a a0 #

Foldable (WithTracked a) Source # 
Instance details

Defined in Blanks.Tracked

Methods

fold :: Monoid m => WithTracked a m -> m #

foldMap :: Monoid m => (a0 -> m) -> WithTracked a a0 -> m #

foldMap' :: Monoid m => (a0 -> m) -> WithTracked a a0 -> m #

foldr :: (a0 -> b -> b) -> b -> WithTracked a a0 -> b #

foldr' :: (a0 -> b -> b) -> b -> WithTracked a a0 -> b #

foldl :: (b -> a0 -> b) -> b -> WithTracked a a0 -> b #

foldl' :: (b -> a0 -> b) -> b -> WithTracked a a0 -> b #

foldr1 :: (a0 -> a0 -> a0) -> WithTracked a a0 -> a0 #

foldl1 :: (a0 -> a0 -> a0) -> WithTracked a a0 -> a0 #

toList :: WithTracked a a0 -> [a0] #

null :: WithTracked a a0 -> Bool #

length :: WithTracked a a0 -> Int #

elem :: Eq a0 => a0 -> WithTracked a a0 -> Bool #

maximum :: Ord a0 => WithTracked a a0 -> a0 #

minimum :: Ord a0 => WithTracked a a0 -> a0 #

sum :: Num a0 => WithTracked a a0 -> a0 #

product :: Num a0 => WithTracked a a0 -> a0 #

Traversable (WithTracked a) Source # 
Instance details

Defined in Blanks.Tracked

Methods

traverse :: Applicative f => (a0 -> f b) -> WithTracked a a0 -> f (WithTracked a b) #

sequenceA :: Applicative f => WithTracked a (f a0) -> f (WithTracked a a0) #

mapM :: Monad m => (a0 -> m b) -> WithTracked a a0 -> m (WithTracked a b) #

sequence :: Monad m => WithTracked a (m a0) -> m (WithTracked a a0) #

(Eq a, Eq l) => Eq (WithTracked a l) Source # 
Instance details

Defined in Blanks.Tracked

Methods

(==) :: WithTracked a l -> WithTracked a l -> Bool #

(/=) :: WithTracked a l -> WithTracked a l -> Bool #

(Show a, Show l) => Show (WithTracked a l) Source # 
Instance details

Defined in Blanks.Tracked

Methods

showsPrec :: Int -> WithTracked a l -> ShowS #

show :: WithTracked a l -> String #

showList :: [WithTracked a l] -> ShowS #

Generic (WithTracked a l) Source # 
Instance details

Defined in Blanks.Tracked

Associated Types

type Rep (WithTracked a l) :: Type -> Type #

Methods

from :: WithTracked a l -> Rep (WithTracked a l) x #

to :: Rep (WithTracked a l) x -> WithTracked a l #

(NFData a, NFData l) => NFData (WithTracked a l) Source # 
Instance details

Defined in Blanks.Tracked

Methods

rnf :: WithTracked a l -> () #

type Rep (WithTracked a l) Source # 
Instance details

Defined in Blanks.Tracked

type Rep (WithTracked a l) = D1 ('MetaData "WithTracked" "Blanks.Tracked" "blanks-0.5.0-inplace" 'False) (C1 ('MetaCons "WithTracked" 'PrefixI 'True) (S1 ('MetaSel ('Just "withTrackedState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Tracked a)) :*: S1 ('MetaSel ('Just "withTrackedEnv") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 l)))

trackScope :: (Traversable f, Ord a) => LocScope l n f a -> LocScope (WithTracked a l) n f a Source #

trackScopeSimple :: (Traversable f, Ord a) => Scope n f a -> LocScope (Tracked a) n f a Source #