summaryrefslogtreecommitdiff
path: root/edit-lens/src/Control/Edit.lhs
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2017-11-23 20:29:33 +0100
committerGregor Kleen <gkleen@yggdrasil.li>2017-11-23 20:29:33 +0100
commitb9db9f8d7f3eb993ed345357c428a94c9a208c5b (patch)
treed63b2619570baa814e1a44d8bafcafd736e24136 /edit-lens/src/Control/Edit.lhs
parentefbdedeed1ff6abade12ebace778282e8fac2f32 (diff)
downloadincremental-dfsts-b9db9f8d7f3eb993ed345357c428a94c9a208c5b.tar
incremental-dfsts-b9db9f8d7f3eb993ed345357c428a94c9a208c5b.tar.gz
incremental-dfsts-b9db9f8d7f3eb993ed345357c428a94c9a208c5b.tar.bz2
incremental-dfsts-b9db9f8d7f3eb993ed345357c428a94c9a208c5b.tar.xz
incremental-dfsts-b9db9f8d7f3eb993ed345357c428a94c9a208c5b.zip
Start on container edits
Diffstat (limited to 'edit-lens/src/Control/Edit.lhs')
-rw-r--r--edit-lens/src/Control/Edit.lhs10
1 files changed, 4 insertions, 6 deletions
diff --git a/edit-lens/src/Control/Edit.lhs b/edit-lens/src/Control/Edit.lhs
index 7be8db4..11f2c12 100644
--- a/edit-lens/src/Control/Edit.lhs
+++ b/edit-lens/src/Control/Edit.lhs
@@ -2,6 +2,7 @@
2\begin{code} 2\begin{code}
3module Control.Edit 3module Control.Edit
4 ( Module(..) 4 ( Module(..)
5 , ModuleHom
5 ) where 6 ) where
6\end{code} 7\end{code}
7\end{comment} 8\end{comment}
@@ -26,12 +27,12 @@ Eine Repräsentierung als Typklasse bietet sich an:
26\begin{code} 27\begin{code}
27class Monoid m => Module m where 28class Monoid m => Module m where
28 type Domain m :: * 29 type Domain m :: *
29 apply :: Domain m -> m -> Maybe (Domain m) 30 apply :: m -> Domain m -> Maybe (Domain m)
30 -- ^ A partial monoid-action of `m` on `Domain m` 31 -- ^ A partial monoid-action of `m` on `Domain m`
31 -- 32 --
32 -- prop> m `apply` mempty = m 33 -- prop> m `apply` mempty = m
33 -- prop> m `apply` (e `mappend` e') = (m `apply` e) `apply` e' 34 -- prop> m `apply` (e `mappend` e') = (m `apply` e) `apply` e'
34 init :: Domain m 35 initial :: Domain m
35 -- ^ 'init @m' (TypeApplication) is the initial element of 'm' 36 -- ^ 'init @m' (TypeApplication) is the initial element of 'm'
36 divInit :: Domain m -> m 37 divInit :: Domain m -> m
37 -- ^ Calculate a representation of an element of 'Domain m' in 'Del m' 38 -- ^ Calculate a representation of an element of 'Domain m' in 'Del m'
@@ -42,7 +43,6 @@ class Monoid m => Module m where
42 43
43Wir weichen von der originalen Definition von Moduln aus \cite{hofmann2012edit} darin ab, dass wir für das ausgezeichnete Element $\init_X$ des Trägers explizit (und konstruktiv) fordern, dass es ein schwach-initiales Element bzgl. der Monoidwirkung sei. 44Wir weichen von der originalen Definition von Moduln aus \cite{hofmann2012edit} darin ab, dass wir für das ausgezeichnete Element $\init_X$ des Trägers explizit (und konstruktiv) fordern, dass es ein schwach-initiales Element bzgl. der Monoidwirkung sei.
44 45
45\begin{comment}
46\begin{defn}[Modulhomomorphismen] 46\begin{defn}[Modulhomomorphismen]
47Unter einem Modulhomomorphismus zwischen Moduln $M$ und $M^\prime$ verstehen wir ein Paar $(f, \phi$) bestehend aus Abbildungen $f \colon \Dom M \to \Dom M^\prime$ und $\phi \colon \partial M \to \partial M^\prime$, sodass gilt: 47Unter einem Modulhomomorphismus zwischen Moduln $M$ und $M^\prime$ verstehen wir ein Paar $(f, \phi$) bestehend aus Abbildungen $f \colon \Dom M \to \Dom M^\prime$ und $\phi \colon \partial M \to \partial M^\prime$, sodass gilt:
48\begin{itemize} 48\begin{itemize}
@@ -61,11 +61,9 @@ Unter einem Modulhomomorphismus zwischen Moduln $M$ und $M^\prime$ verstehen wir
61\end{itemize} 61\end{itemize}
62 62
63\begin{code} 63\begin{code}
64{- 64-- | A homomorphism between 'Module's
65data ModuleHom m n where 65data ModuleHom m n where
66 ModuleHom :: (Module m, Module n) => (Domain m -> Domain n) -> (m -> n) -> ModuleHom m n 66 ModuleHom :: (Module m, Module n) => (Domain m -> Domain n) -> (m -> n) -> ModuleHom m n
67-}
68\end{code} 67\end{code}
69\end{defn} 68\end{defn}
70\end{comment}
71 69