retrie-1.2.3: A powerful, easy-to-use codemodding tool for Haskell.
Safe HaskellNone
LanguageHaskell2010

Retrie.PatternMap.Class

Documentation

data MatchEnv #

Constructors

ME 

Fields

type A a = Maybe a -> Maybe a #

toA :: PatternMap m => (m a -> m a) -> A (m a) #

toAList :: A a -> A [a] #

unionOn :: PatternMap m => (a -> m b) -> a -> a -> m b #

class PatternMap (m :: Type -> Type) where #

Associated Types

type Key (m :: Type -> Type) #

Methods

mEmpty :: m a #

mUnion :: m a -> m a -> m a #

mAlter :: AlphaEnv -> Quantifiers -> Key m -> A a -> m a -> m a #

mMatch :: MatchEnv -> Key m -> (Substitution, m a) -> [(Substitution, a)] #

Instances

Instances details
PatternMap BoolMap # 
Instance details

Defined in Retrie.PatternMap.Bag

Associated Types

type Key BoolMap 
Instance details

Defined in Retrie.PatternMap.Bag

PatternMap FSEnv # 
Instance details

Defined in Retrie.PatternMap.Bag

Associated Types

type Key FSEnv 
Instance details

Defined in Retrie.PatternMap.Bag

Methods

mEmpty :: FSEnv a #

mUnion :: FSEnv a -> FSEnv a -> FSEnv a #

mAlter :: AlphaEnv -> Quantifiers -> Key FSEnv -> A a -> FSEnv a -> FSEnv a #

mMatch :: MatchEnv -> Key FSEnv -> (Substitution, FSEnv a) -> [(Substitution, a)] #

PatternMap IntMap # 
Instance details

Defined in Retrie.PatternMap.Bag

Associated Types

type Key IntMap 
Instance details

Defined in Retrie.PatternMap.Bag

type Key IntMap = Key

Methods

mEmpty :: IntMap a #

mUnion :: IntMap a -> IntMap a -> IntMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key IntMap -> A a -> IntMap a -> IntMap a #

mMatch :: MatchEnv -> Key IntMap -> (Substitution, IntMap a) -> [(Substitution, a)] #

PatternMap UniqFM # 
Instance details

Defined in Retrie.PatternMap.Bag

Associated Types

type Key UniqFM 
Instance details

Defined in Retrie.PatternMap.Bag

Methods

mEmpty :: UniqFM a #

mUnion :: UniqFM a -> UniqFM a -> UniqFM a #

mAlter :: AlphaEnv -> Quantifiers -> Key UniqFM -> A a -> UniqFM a -> UniqFM a #

mMatch :: MatchEnv -> Key UniqFM -> (Substitution, UniqFM a) -> [(Substitution, a)] #

PatternMap MaybeMap # 
Instance details

Defined in Retrie.PatternMap.Class

Associated Types

type Key MaybeMap 
Instance details

Defined in Retrie.PatternMap.Class

type Key MaybeMap = ()
PatternMap BMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key BMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: BMap a #

mUnion :: BMap a -> BMap a -> BMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key BMap -> A a -> BMap a -> BMap a #

mMatch :: MatchEnv -> Key BMap -> (Substitution, BMap a) -> [(Substitution, a)] #

PatternMap BoxityMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key BoxityMap 
Instance details

Defined in Retrie.PatternMap.Instances

PatternMap CDMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key CDMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: CDMap a #

mUnion :: CDMap a -> CDMap a -> CDMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key CDMap -> A a -> CDMap a -> CDMap a #

mMatch :: MatchEnv -> Key CDMap -> (Substitution, CDMap a) -> [(Substitution, a)] #

PatternMap EMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key EMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: EMap a #

mUnion :: EMap a -> EMap a -> EMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key EMap -> A a -> EMap a -> EMap a #

mMatch :: MatchEnv -> Key EMap -> (Substitution, EMap a) -> [(Substitution, a)] #

PatternMap ForAllTyMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key ForAllTyMap 
Instance details

Defined in Retrie.PatternMap.Instances

PatternMap ForallVisMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key ForallVisMap 
Instance details

Defined in Retrie.PatternMap.Instances

PatternMap GRHSMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key GRHSMap 
Instance details

Defined in Retrie.PatternMap.Instances

PatternMap GRHSSMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key GRHSSMap 
Instance details

Defined in Retrie.PatternMap.Instances

PatternMap LBMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key LBMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: LBMap a #

mUnion :: LBMap a -> LBMap a -> LBMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key LBMap -> A a -> LBMap a -> LBMap a #

mMatch :: MatchEnv -> Key LBMap -> (Substitution, LBMap a) -> [(Substitution, a)] #

PatternMap LMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key LMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: LMap a #

mUnion :: LMap a -> LMap a -> LMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key LMap -> A a -> LMap a -> LMap a #

mMatch :: MatchEnv -> Key LMap -> (Substitution, LMap a) -> [(Substitution, a)] #

PatternMap MGMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key MGMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: MGMap a #

mUnion :: MGMap a -> MGMap a -> MGMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key MGMap -> A a -> MGMap a -> MGMap a #

mMatch :: MatchEnv -> Key MGMap -> (Substitution, MGMap a) -> [(Substitution, a)] #

PatternMap MMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key MMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: MMap a #

mUnion :: MMap a -> MMap a -> MMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key MMap -> A a -> MMap a -> MMap a #

mMatch :: MatchEnv -> Key MMap -> (Substitution, MMap a) -> [(Substitution, a)] #

PatternMap OLMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key OLMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: OLMap a #

mUnion :: OLMap a -> OLMap a -> OLMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key OLMap -> A a -> OLMap a -> OLMap a #

mMatch :: MatchEnv -> Key OLMap -> (Substitution, OLMap a) -> [(Substitution, a)] #

PatternMap PatMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key PatMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: PatMap a #

mUnion :: PatMap a -> PatMap a -> PatMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key PatMap -> A a -> PatMap a -> PatMap a #

mMatch :: MatchEnv -> Key PatMap -> (Substitution, PatMap a) -> [(Substitution, a)] #

PatternMap RFMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key RFMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: RFMap a #

mUnion :: RFMap a -> RFMap a -> RFMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key RFMap -> A a -> RFMap a -> RFMap a #

mMatch :: MatchEnv -> Key RFMap -> (Substitution, RFMap a) -> [(Substitution, a)] #

PatternMap SCMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key SCMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: SCMap a #

mUnion :: SCMap a -> SCMap a -> SCMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key SCMap -> A a -> SCMap a -> SCMap a #

mMatch :: MatchEnv -> Key SCMap -> (Substitution, SCMap a) -> [(Substitution, a)] #

PatternMap SLMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key SLMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: SLMap a #

mUnion :: SLMap a -> SLMap a -> SLMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key SLMap -> A a -> SLMap a -> SLMap a #

mMatch :: MatchEnv -> Key SLMap -> (Substitution, SLMap a) -> [(Substitution, a)] #

PatternMap SMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key SMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: SMap a #

mUnion :: SMap a -> SMap a -> SMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key SMap -> A a -> SMap a -> SMap a #

mMatch :: MatchEnv -> Key SMap -> (Substitution, SMap a) -> [(Substitution, a)] #

PatternMap TupArgMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key TupArgMap 
Instance details

Defined in Retrie.PatternMap.Instances

PatternMap TupleSortMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key TupleSortMap 
Instance details

Defined in Retrie.PatternMap.Instances

PatternMap TyMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key TyMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: TyMap a #

mUnion :: TyMap a -> TyMap a -> TyMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key TyMap -> A a -> TyMap a -> TyMap a #

mMatch :: MatchEnv -> Key TyMap -> (Substitution, TyMap a) -> [(Substitution, a)] #

PatternMap VMap # 
Instance details

Defined in Retrie.PatternMap.Instances

Associated Types

type Key VMap 
Instance details

Defined in Retrie.PatternMap.Instances

Methods

mEmpty :: VMap a #

mUnion :: VMap a -> VMap a -> VMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key VMap -> A a -> VMap a -> VMap a #

mMatch :: MatchEnv -> Key VMap -> (Substitution, VMap a) -> [(Substitution, a)] #

PatternMap UMap # 
Instance details

Defined in Retrie.Universe

Associated Types

type Key UMap 
Instance details

Defined in Retrie.Universe

Methods

mEmpty :: UMap a #

mUnion :: UMap a -> UMap a -> UMap a #

mAlter :: AlphaEnv -> Quantifiers -> Key UMap -> A a -> UMap a -> UMap a #

mMatch :: MatchEnv -> Key UMap -> (Substitution, UMap a) -> [(Substitution, a)] #

Ord k => PatternMap (Map k) # 
Instance details

Defined in Retrie.PatternMap.Bag

Associated Types

type Key (Map k) 
Instance details

Defined in Retrie.PatternMap.Bag

type Key (Map k) = k

Methods

mEmpty :: Map k a #

mUnion :: Map k a -> Map k a -> Map k a #

mAlter :: AlphaEnv -> Quantifiers -> Key (Map k) -> A a -> Map k a -> Map k a #

mMatch :: MatchEnv -> Key (Map k) -> (Substitution, Map k a) -> [(Substitution, a)] #

PatternMap m => PatternMap (ListMap m) # 
Instance details

Defined in Retrie.PatternMap.Class

Associated Types

type Key (ListMap m) 
Instance details

Defined in Retrie.PatternMap.Class

type Key (ListMap m) = [Key m]

Methods

mEmpty :: ListMap m a #

mUnion :: ListMap m a -> ListMap m a -> ListMap m a #

mAlter :: AlphaEnv -> Quantifiers -> Key (ListMap m) -> A a -> ListMap m a -> ListMap m a #

mMatch :: MatchEnv -> Key (ListMap m) -> (Substitution, ListMap m a) -> [(Substitution, a)] #

mapFor :: (b -> c) -> (a, b) -> [(a, c)] #

maybeMap :: (b -> Maybe c) -> (a, b) -> [(a, c)] #

maybeListMap :: (b -> Maybe [c]) -> (a, b) -> [(a, c)] #

newtype MaybeMap a #

Constructors

MaybeMap [a] 

Instances

Instances details
Functor MaybeMap # 
Instance details

Defined in Retrie.PatternMap.Class

Methods

fmap :: (a -> b) -> MaybeMap a -> MaybeMap b #

(<$) :: a -> MaybeMap b -> MaybeMap a #

PatternMap MaybeMap # 
Instance details

Defined in Retrie.PatternMap.Class

Associated Types

type Key MaybeMap 
Instance details

Defined in Retrie.PatternMap.Class

type Key MaybeMap = ()
type Key MaybeMap # 
Instance details

Defined in Retrie.PatternMap.Class

type Key MaybeMap = ()

data ListMap (m :: Type -> Type) a #

Constructors

ListMap 

Fields

Instances

Instances details
Functor m => Functor (ListMap m) # 
Instance details

Defined in Retrie.PatternMap.Class

Methods

fmap :: (a -> b) -> ListMap m a -> ListMap m b #

(<$) :: a -> ListMap m b -> ListMap m a #

PatternMap m => PatternMap (ListMap m) # 
Instance details

Defined in Retrie.PatternMap.Class

Associated Types

type Key (ListMap m) 
Instance details

Defined in Retrie.PatternMap.Class

type Key (ListMap m) = [Key m]

Methods

mEmpty :: ListMap m a #

mUnion :: ListMap m a -> ListMap m a -> ListMap m a #

mAlter :: AlphaEnv -> Quantifiers -> Key (ListMap m) -> A a -> ListMap m a -> ListMap m a #

mMatch :: MatchEnv -> Key (ListMap m) -> (Substitution, ListMap m a) -> [(Substitution, a)] #

type Key (ListMap m) # 
Instance details

Defined in Retrie.PatternMap.Class

type Key (ListMap m) = [Key m]

findMatch :: PatternMap m => MatchEnv -> Key m -> m a -> [(Substitution, a)] #

insertMatch :: PatternMap m => AlphaEnv -> Quantifiers -> Key m -> a -> m a -> m a #