From b9db9f8d7f3eb993ed345357c428a94c9a208c5b Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Thu, 23 Nov 2017 20:29:33 +0100 Subject: Start on container edits --- edit-lens/src/Control/Edit.lhs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'edit-lens/src/Control/Edit.lhs') 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 @@ \begin{code} module Control.Edit ( Module(..) + , ModuleHom ) where \end{code} \end{comment} @@ -26,12 +27,12 @@ Eine Repräsentierung als Typklasse bietet sich an: \begin{code} class Monoid m => Module m where type Domain m :: * - apply :: Domain m -> m -> Maybe (Domain m) + apply :: m -> Domain m -> Maybe (Domain m) -- ^ A partial monoid-action of `m` on `Domain m` -- -- prop> m `apply` mempty = m -- prop> m `apply` (e `mappend` e') = (m `apply` e) `apply` e' - init :: Domain m + initial :: Domain m -- ^ 'init @m' (TypeApplication) is the initial element of 'm' divInit :: Domain m -> m -- ^ Calculate a representation of an element of 'Domain m' in 'Del m' @@ -42,7 +43,6 @@ class Monoid m => Module m where Wir 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. -\begin{comment} \begin{defn}[Modulhomomorphismen] Unter 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: \begin{itemize} @@ -61,11 +61,9 @@ Unter einem Modulhomomorphismus zwischen Moduln $M$ und $M^\prime$ verstehen wir \end{itemize} \begin{code} -{- +-- | A homomorphism between 'Module's data ModuleHom m n where ModuleHom :: (Module m, Module n) => (Domain m -> Domain n) -> (m -> n) -> ModuleHom m n --} \end{code} \end{defn} -\end{comment} -- cgit v1.2.3