Safe Haskell | None |
---|
- class Typeable a => Resolvable a where
- rtraverse :: (Applicative f, [alg :: Alg f]) => a -> Scope -> f a
- newtype Alg w = Alg {
- runAlg :: forall d. Resolvable d => d -> Scope -> w d
- rmap :: Resolvable a => (forall b. Resolvable b => Scope -> b -> b) -> Scope -> a -> a
- data Scope
- data NameContext
- = BindingT
- | BindingV
- | ReferenceT
- | ReferenceV
- | Other
- initialScope :: Table -> Scope
- gTable :: Lens Scope Table
- lTable :: Lens Scope Table
- nameCtx :: Lens Scope NameContext
- type WcNames = [WcField]
- data WcField = WcField {}
- wcNames :: Lens Scope WcNames
Documentation
class Typeable a => Resolvable a whereSource
rtraverse :: (Applicative f, [alg :: Alg f]) => a -> Scope -> f aSource
rmap :: Resolvable a => (forall b. Resolvable b => Scope -> b -> b) -> Scope -> a -> aSource
data NameContext Source
BindingT | |
BindingV | |
ReferenceT | |
ReferenceV | |
Other | we don't expect names in this context |
initialScope :: Table -> ScopeSource
type WcNames = [WcField]Source
Information about the names being introduced by a record wildcard
During resolving traversal, we always (lazily) construct this list when we process PRec or RecConstr, even if it doesn't contain a wildcard.
Then, if the pattern or construction actually contains a wildcard, we use the computed value.
Information about a field in the wildcard
WcField | |
|