From fc9bdae87b05d1d1c99265ec8b370b37422b01d4 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 20 Dec 2017 15:29:54 +0100 Subject: Work on container transducers --- edit-lens/src/Control/Lens/Edit.lhs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'edit-lens/src/Control/Lens/Edit.lhs') 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$ Wir schreiben auch nur \emph{edit-lens} für den symmetrischen Fall\footnote{Für den asymmetrischen Fall siehe \cite{johnson2016unifying}}. -In 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): +In 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): \begin{code} data EditLens c m n where @@ -59,6 +59,9 @@ class (Module m, Module n) => HasEditLens l m n | l -> m, l -> n where propL :: l -> StateMonoidHom (Complement l) n m -- ^ Map edits of 'n' to changes of 'm', maintaining some state from 'Complement l' + editLens :: l -> EditLens (Complement l) m n + editLens l = EditLens (ground l) (propR l) (propL l) + -- | Inspect the components of an edit lens (e.g. 'EditLens') instance (Module m, Module n) => HasEditLens (EditLens c m n) m n where type Complement (EditLens c m n) = c -- cgit v1.2.3