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

Blanks.Name

Synopsis

Documentation

data Name n a Source #

Name is compared on value only, allowing you to define and use things like NameOnly in your BlankInfo values to make alpha-equivalent terms structurally (Eq) equivalent.

Constructors

Name 

Fields

Instances

Instances details
Functor (Name n) Source # 
Instance details

Defined in Blanks.Name

Methods

fmap :: (a -> b) -> Name n a -> Name n b #

(<$) :: a -> Name n b -> Name n a #

Foldable (Name n) Source # 
Instance details

Defined in Blanks.Name

Methods

fold :: Monoid m => Name n m -> m #

foldMap :: Monoid m => (a -> m) -> Name n a -> m #

foldMap' :: Monoid m => (a -> m) -> Name n a -> m #

foldr :: (a -> b -> b) -> b -> Name n a -> b #

foldr' :: (a -> b -> b) -> b -> Name n a -> b #

foldl :: (b -> a -> b) -> b -> Name n a -> b #

foldl' :: (b -> a -> b) -> b -> Name n a -> b #

foldr1 :: (a -> a -> a) -> Name n a -> a #

foldl1 :: (a -> a -> a) -> Name n a -> a #

toList :: Name n a -> [a] #

null :: Name n a -> Bool #

length :: Name n a -> Int #

elem :: Eq a => a -> Name n a -> Bool #

maximum :: Ord a => Name n a -> a #

minimum :: Ord a => Name n a -> a #

sum :: Num a => Name n a -> a #

product :: Num a => Name n a -> a #

Traversable (Name n) Source # 
Instance details

Defined in Blanks.Name

Methods

traverse :: Applicative f => (a -> f b) -> Name n a -> f (Name n b) #

sequenceA :: Applicative f => Name n (f a) -> f (Name n a) #

mapM :: Monad m => (a -> m b) -> Name n a -> m (Name n b) #

sequence :: Monad m => Name n (m a) -> m (Name n a) #

Eq a => Eq (Name n a) Source # 
Instance details

Defined in Blanks.Name

Methods

(==) :: Name n a -> Name n a -> Bool #

(/=) :: Name n a -> Name n a -> Bool #

(Show n, Show a) => Show (Name n a) Source # 
Instance details

Defined in Blanks.Name

Methods

showsPrec :: Int -> Name n a -> ShowS #

show :: Name n a -> String #

showList :: [Name n a] -> ShowS #

Generic (Name n a) Source # 
Instance details

Defined in Blanks.Name

Associated Types

type Rep (Name n a) :: Type -> Type #

Methods

from :: Name n a -> Rep (Name n a) x #

to :: Rep (Name n a) x -> Name n a #

(NFData n, NFData a) => NFData (Name n a) Source # 
Instance details

Defined in Blanks.Name

Methods

rnf :: Name n a -> () #

type Rep (Name n a) Source # 
Instance details

Defined in Blanks.Name

type Rep (Name n a) = D1 ('MetaData "Name" "Blanks.Name" "blanks-0.5.0-inplace" 'False) (C1 ('MetaCons "Name" 'PrefixI 'True) (S1 ('MetaSel ('Just "nameKey") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 n) :*: S1 ('MetaSel ('Just "nameValue") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)))

type NameOnly n = Name n () Source #

pattern NameOnly :: n -> NameOnly n Source #