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

Blanks.Split

Documentation

newtype BinderId Source #

Constructors

BinderId 

Fields

Instances

Instances details
Enum BinderId Source # 
Instance details

Defined in Blanks.Split

Eq BinderId Source # 
Instance details

Defined in Blanks.Split

Num BinderId Source # 
Instance details

Defined in Blanks.Split

Ord BinderId Source # 
Instance details

Defined in Blanks.Split

Show BinderId Source # 
Instance details

Defined in Blanks.Split

NFData BinderId Source # 
Instance details

Defined in Blanks.Split

Methods

rnf :: BinderId -> () #

data SplitFunctor f a Source #

Instances

Instances details
Functor f => Functor (SplitFunctor f) Source # 
Instance details

Defined in Blanks.Split

Methods

fmap :: (a -> b) -> SplitFunctor f a -> SplitFunctor f b #

(<$) :: a -> SplitFunctor f b -> SplitFunctor f a #

Foldable f => Foldable (SplitFunctor f) Source # 
Instance details

Defined in Blanks.Split

Methods

fold :: Monoid m => SplitFunctor f m -> m #

foldMap :: Monoid m => (a -> m) -> SplitFunctor f a -> m #

foldMap' :: Monoid m => (a -> m) -> SplitFunctor f a -> m #

foldr :: (a -> b -> b) -> b -> SplitFunctor f a -> b #

foldr' :: (a -> b -> b) -> b -> SplitFunctor f a -> b #

foldl :: (b -> a -> b) -> b -> SplitFunctor f a -> b #

foldl' :: (b -> a -> b) -> b -> SplitFunctor f a -> b #

foldr1 :: (a -> a -> a) -> SplitFunctor f a -> a #

foldl1 :: (a -> a -> a) -> SplitFunctor f a -> a #

toList :: SplitFunctor f a -> [a] #

null :: SplitFunctor f a -> Bool #

length :: SplitFunctor f a -> Int #

elem :: Eq a => a -> SplitFunctor f a -> Bool #

maximum :: Ord a => SplitFunctor f a -> a #

minimum :: Ord a => SplitFunctor f a -> a #

sum :: Num a => SplitFunctor f a -> a #

product :: Num a => SplitFunctor f a -> a #

Traversable f => Traversable (SplitFunctor f) Source # 
Instance details

Defined in Blanks.Split

Methods

traverse :: Applicative f0 => (a -> f0 b) -> SplitFunctor f a -> f0 (SplitFunctor f b) #

sequenceA :: Applicative f0 => SplitFunctor f (f0 a) -> f0 (SplitFunctor f a) #

mapM :: Monad m => (a -> m b) -> SplitFunctor f a -> m (SplitFunctor f b) #

sequence :: Monad m => SplitFunctor f (m a) -> m (SplitFunctor f a) #

Eq (f a) => Eq (SplitFunctor f a) Source # 
Instance details

Defined in Blanks.Split

Methods

(==) :: SplitFunctor f a -> SplitFunctor f a -> Bool #

(/=) :: SplitFunctor f a -> SplitFunctor f a -> Bool #

Show (f a) => Show (SplitFunctor f a) Source # 
Instance details

Defined in Blanks.Split

Generic (SplitFunctor f a) Source # 
Instance details

Defined in Blanks.Split

Associated Types

type Rep (SplitFunctor f a) :: Type -> Type #

Methods

from :: SplitFunctor f a -> Rep (SplitFunctor f a) x #

to :: Rep (SplitFunctor f a) x -> SplitFunctor f a #

NFData (f a) => NFData (SplitFunctor f a) Source # 
Instance details

Defined in Blanks.Split

Methods

rnf :: SplitFunctor f a -> () #

type Rep (SplitFunctor f a) Source # 
Instance details

Defined in Blanks.Split

type Rep (SplitFunctor f a) = D1 ('MetaData "SplitFunctor" "Blanks.Split" "blanks-0.5.0-inplace" 'False) (C1 ('MetaCons "SplitFunctorBase" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (f a))) :+: C1 ('MetaCons "SplitFunctorClosure" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BinderId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Seq Int))))

data SplitBinder l n f a Source #

Instances

Instances details
(Eq l, Eq n, Eq a, Eq (f (LocScope l n (SplitFunctor f) a))) => Eq (SplitBinder l n f a) Source # 
Instance details

Defined in Blanks.Split

Methods

(==) :: SplitBinder l n f a -> SplitBinder l n f a -> Bool #

(/=) :: SplitBinder l n f a -> SplitBinder l n f a -> Bool #

(Show l, Show n, Show a, Show (f (LocScope l n (SplitFunctor f) a))) => Show (SplitBinder l n f a) Source # 
Instance details

Defined in Blanks.Split

Methods

showsPrec :: Int -> SplitBinder l n f a -> ShowS #

show :: SplitBinder l n f a -> String #

showList :: [SplitBinder l n f a] -> ShowS #

Generic (SplitBinder l n f a) Source # 
Instance details

Defined in Blanks.Split

Associated Types

type Rep (SplitBinder l n f a) :: Type -> Type #

Methods

from :: SplitBinder l n f a -> Rep (SplitBinder l n f a) x #

to :: Rep (SplitBinder l n f a) x -> SplitBinder l n f a #

(NFData l, NFData n, NFData a, NFData (f (LocScope l n (SplitFunctor f) a))) => NFData (SplitBinder l n f a) Source # 
Instance details

Defined in Blanks.Split

Methods

rnf :: SplitBinder l n f a -> () #

type Rep (SplitBinder l n f a) Source # 
Instance details

Defined in Blanks.Split

type Rep (SplitBinder l n f a) = D1 ('MetaData "SplitBinder" "Blanks.Split" "blanks-0.5.0-inplace" 'False) (C1 ('MetaCons "SplitBinder" 'PrefixI 'True) (S1 ('MetaSel ('Just "splitBinderClosureArity") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: (S1 ('MetaSel ('Just "splitBinderFree") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Set a)) :*: S1 ('MetaSel ('Just "splitBinderScope") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (BinderScope n (LocScope l n (SplitFunctor f) a))))))

data SplitResult l n f a Source #

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