Copyright | (c) 2012--2021 The University of Kansas |
---|---|
License | BSD3 |
Maintainer | Neil Sculthorpe <neil.sculthorpe@ntu.ac.uk> |
Stability | beta |
Portability | ghc |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
This module provides a utility data type for extending an existing context with extra information.
The idea is that, after defining class instances for any user-specific contextual operations, it can be used for any ad-hoc context extensions.
See the treatment of ExtendPath
as an example.
Synopsis
- data ExtendContext c e
- extendContext :: e -> c -> ExtendContext c e
- baseContext :: ExtendContext c e -> c
- extraContext :: ExtendContext c e -> e
Extending Contexts
data ExtendContext c e Source #
A context transformer, for augmenting a context with additional information.
Instances
(ExtendPath c crumb, ExtendPath e crumb) => ExtendPath (ExtendContext c e) crumb Source # | Both components of the context are updated with the crumb. |
Defined in Language.KURE.ExtendableContext (@@) :: ExtendContext c e -> crumb -> ExtendContext c e Source # |
extendContext :: e -> c -> ExtendContext c e Source #
Extend a context with some additional information.
baseContext :: ExtendContext c e -> c Source #
Retrieve the base context (without the extra information).
extraContext :: ExtendContext c e -> e Source #
Retrieve the extra contextual information.