summaryrefslogtreecommitdiff
path: root/edit-lens/src/Control/Lens
diff options
context:
space:
mode:
Diffstat (limited to 'edit-lens/src/Control/Lens')
-rw-r--r--edit-lens/src/Control/Lens/Edit.lhs5
1 files changed, 4 insertions, 1 deletions
diff --git a/edit-lens/src/Control/Lens/Edit.lhs b/edit-lens/src/Control/Lens/Edit.lhs
index 0a679cb..096b53d 100644
--- a/edit-lens/src/Control/Lens/Edit.lhs
+++ b/edit-lens/src/Control/Lens/Edit.lhs
@@ -44,7 +44,7 @@ Für Moduln $M$ und $N$ besteht eine symmetrische edit-lens zwischen $M$ und $N$
44 44
45Wir schreiben auch nur \emph{edit-lens} für den symmetrischen Fall\footnote{Für den asymmetrischen Fall siehe \cite{johnson2016unifying}}. 45Wir schreiben auch nur \emph{edit-lens} für den symmetrischen Fall\footnote{Für den asymmetrischen Fall siehe \cite{johnson2016unifying}}.
46 46
47In Haskell erwähnen wir die Konsistenzrelation nicht in der Erwartung, dass $\Rrightarrow$ und $\Lleftarrow$ nur auf konsistente Zustände angewandt werden (und somit auch entweder einen konsistenten Zustand erzeugen oder nichtt definiert sind): 47In Haskell erwähnen wir die Konsistenzrelation nicht in der Erwartung, dass $\Rrightarrow$ und $\Lleftarrow$ nur auf konsistente Zustände angewandt werden (und somit auch entweder einen konsistenten Zustand erzeugen oder nicht definiert sind):
48 48
49\begin{code} 49\begin{code}
50data EditLens c m n where 50data EditLens c m n where
@@ -59,6 +59,9 @@ class (Module m, Module n) => HasEditLens l m n | l -> m, l -> n where
59 propL :: l -> StateMonoidHom (Complement l) n m 59 propL :: l -> StateMonoidHom (Complement l) n m
60 -- ^ Map edits of 'n' to changes of 'm', maintaining some state from 'Complement l' 60 -- ^ Map edits of 'n' to changes of 'm', maintaining some state from 'Complement l'
61 61
62 editLens :: l -> EditLens (Complement l) m n
63 editLens l = EditLens (ground l) (propR l) (propL l)
64
62-- | Inspect the components of an edit lens (e.g. 'EditLens') 65-- | Inspect the components of an edit lens (e.g. 'EditLens')
63instance (Module m, Module n) => HasEditLens (EditLens c m n) m n where 66instance (Module m, Module n) => HasEditLens (EditLens c m n) m n where
64 type Complement (EditLens c m n) = c 67 type Complement (EditLens c m n) = c