drasil-database-0.1.1.0: A framework for code and document generation for scientific software - Database SubPackage
Safe HaskellSafe-Inferred
LanguageHaskell2010

Drasil.Database.Chunk

Synopsis

Documentation

data Chunk Source #

A piece of reusable knowledge, with an internal identifier (UID), possibly dependant on other chunks.

Instances

Instances details
HasChunkRefs Chunk Source # 
Instance details

Defined in Drasil.Database.Chunk

Methods

chunkRefs :: Chunk -> Set UID Source #

HasUID Chunk Source # 
Instance details

Defined in Drasil.Database.Chunk

Methods

uid :: Getter Chunk UID Source #

Eq Chunk Source # 
Instance details

Defined in Drasil.Database.Chunk

Methods

(==) :: Chunk -> Chunk -> Bool #

(/=) :: Chunk -> Chunk -> Bool #

type IsChunk a = (HasUID a, HasChunkRefs a) Source #

Constraint for anything that may be considered a valid chunk type.

type TypeableChunk a = (IsChunk a, Typeable a) Source #

Constraint for anything that may be considered a valid chunk type, and is also Typeable. Type-ability is necessary for storing/retrieving chunks in/from the ChunkDB.

TypeableChunk is meant to be a purely internal concept; users of Drasil should only ever need to use IsChunk. Typeable is automatically derived by GHC, but can cause issues with type inference if used directly in user code, especially when involving parameterized chunk types.

class HasChunkRefs a where Source #

The majority of chunks will relate other chunks in some way. In other words, the majority of our chunks *depend* on others. HasChunkRefs is meant as a way to capture what things a chunk *directly* refers to (i.e., depends on directly).

Methods

chunkRefs :: a -> Set UID Source #

Instances

Instances details
HasChunkRefs Chunk Source # 
Instance details

Defined in Drasil.Database.Chunk

Methods

chunkRefs :: Chunk -> Set UID Source #

HasChunkRefs UID Source # 
Instance details

Defined in Drasil.Database.Chunk

Methods

chunkRefs :: UID -> Set UID Source #

HasChunkRefs UnitypedUIDRef Source # 
Instance details

Defined in Drasil.Database.UIDRef

HasChunkRefs String Source # 
Instance details

Defined in Drasil.Database.Chunk

HasChunkRefs Integer Source # 
Instance details

Defined in Drasil.Database.Chunk

HasChunkRefs Bool Source # 
Instance details

Defined in Drasil.Database.Chunk

Methods

chunkRefs :: Bool -> Set UID Source #

HasChunkRefs Char Source # 
Instance details

Defined in Drasil.Database.Chunk

Methods

chunkRefs :: Char -> Set UID Source #

HasChunkRefs Double Source # 
Instance details

Defined in Drasil.Database.Chunk

HasChunkRefs Int Source # 
Instance details

Defined in Drasil.Database.Chunk

Methods

chunkRefs :: Int -> Set UID Source #

(Generic a, GHasCRefs (Rep a)) => HasChunkRefs (Generically a) Source # 
Instance details

Defined in Drasil.Database.Chunk

HasChunkRefs (UIDRef t) Source # 
Instance details

Defined in Drasil.Database.UIDRef

Methods

chunkRefs :: UIDRef t -> Set UID Source #

HasChunkRefs a => HasChunkRefs (Maybe a) Source # 
Instance details

Defined in Drasil.Database.Chunk

Methods

chunkRefs :: Maybe a -> Set UID Source #

HasChunkRefs a => HasChunkRefs [a] Source # 
Instance details

Defined in Drasil.Database.Chunk

Methods

chunkRefs :: [a] -> Set UID Source #

(HasChunkRefs l, HasChunkRefs r) => HasChunkRefs (Either l r) Source # 
Instance details

Defined in Drasil.Database.Chunk

Methods

chunkRefs :: Either l r -> Set UID Source #

mkChunk :: TypeableChunk a => a -> Chunk Source #

Create a Chunk, ensuring that Chunks are never placed within Chunks.

unChunk :: Typeable a => Chunk -> Maybe a Source #

Open chunks, casting them to a specific type.

chunkType :: Chunk -> TypeRep Source #

Ask a Chunk for the type of data it codifies.