Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data TypeInfo
- startTypes :: Lens' TypeInfo [Type]
- fields :: Lens' TypeInfo (Map (E Type) (Set (Name, Name, Either Int Name)))
- 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 :: MonadReader TypeInfo m => E Type -> m TGVSimple
- typeVertex' :: MonadReader TypeInfo m => E Type -> m TGV
- fieldVertex :: MonadReader TypeInfo m => Field -> E Type -> m TGV
- fieldVertices :: MonadReader TypeInfo m => TGVSimple -> m (Set TGV)
- allVertices :: (Functor m, DsMonad m, MonadReader 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.
startTypes :: Lens' TypeInfo [Type] Source
makeTypeInfo :: forall m. DsMonad m => (Type -> m (Set Type)) -> [Type] -> m TypeInfo Source
Build a TypeInfo value by scanning the supplied types
Update
typeVertex :: MonadReader TypeInfo m => E Type -> m TGVSimple Source
typeVertex' :: MonadReader TypeInfo m => E Type -> m TGV Source
fieldVertex :: MonadReader TypeInfo m => Field -> E Type -> m TGV Source
Build a vertex associated with a field
Query
fieldVertices :: MonadReader 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.