From df671a6d6ab5871272b26637240fdc1f8a27fa3e Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 23 Oct 2019 11:22:33 +0200 Subject: Enforce evaluation in fmap of GtkM --- src/Gtk/State.icl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Gtk/State.icl b/src/Gtk/State.icl index 0d1726e..53a5b2e 100644 --- a/src/Gtk/State.icl +++ b/src/Gtk/State.icl @@ -4,6 +4,7 @@ import StdEnv import Control.Monad import Data.Bifunctor +import Data.Functor import qualified Data.Map from Data.Map import :: Map import Data.Maybe @@ -21,7 +22,11 @@ newGtkState = , shares = 'Data.Map'.newMap } -instance Functor GtkM where fmap f (GtkM m) = GtkM (first f o m) +instance Functor GtkM +where + fmap f (GtkM m) = GtkM \st + #! (x,st) = m st + -> (f x,st) instance pure GtkM where pure x = GtkM (tuple x) -- cgit v1.2.3