Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data TypeInfo
- startTypes :: Lens' TypeInfo [Type]
- fields :: Lens' TypeInfo (Map (E Type) (Set Field))
- infoMap :: Lens' TypeInfo (Map Name Info)
- synonyms :: Lens' TypeInfo (Map (E Type) (Set Name))
- typeSet :: Lens' TypeInfo (Set Type)
- makeTypeInfo :: forall m. DsMonad m => (Type -> m (Set Type)) -> [Type] -> m TypeInfo
- typeVertex :: MonadReaders TypeInfo m => E Type -> m TGVSimple'
- typeVertex' :: MonadReaders TypeInfo m => E Type -> m TGV'
- fieldVertex :: MonadReaders TypeInfo m => Field -> E Type -> m TGV'
- fieldVertices :: MonadReaders TypeInfo m => TGVSimple' -> m (Set TGV')
- allVertices :: (Functor m, DsMonad m, MonadReaders TypeInfo m) => Maybe Field -> E Type -> m (Set TGV')
Type and builders
Information collected about the graph implied by the structure of
one or more Type
values.
Eq TypeInfo Source # | |
Ord TypeInfo Source # | |
Show TypeInfo Source # | |
Lift TypeInfo Source # | |
Ppr TypeInfo Source # | |
Monad m => MonadStates ExpandMap (StateT TypeInfo m) Source # | |
MonadReaders TypeInfo m => MonadReaders TypeInfo (ReaderT * TypeStack m) # | |
MonadReaders TypeInfo m => MonadReaders TypeInfo (ReaderT * TypeGraph m) # | |
makeTypeInfo :: forall m. DsMonad m => (Type -> m (Set Type)) -> [Type] -> m TypeInfo Source #
Build a TypeInfo value by scanning the supplied types
Update
typeVertex :: MonadReaders TypeInfo m => E Type -> m TGVSimple' Source #
typeVertex' :: MonadReaders TypeInfo m => E Type -> m TGV' Source #
fieldVertex :: MonadReaders TypeInfo m => Field -> E Type -> m TGV' Source #
Build a vertex associated with a field
Query
fieldVertices :: MonadReaders TypeInfo m => TGVSimple' -> m (Set TGV') Source #
Find the vertices that involve a particular type - if the field is specified it return s singleton, otherwise it returns a set containing a vertex one for the type on its own, and one for each field containing that type.