From 21997e4f1b33da70bfa26cbc9189496132d3f8c2 Mon Sep 17 00:00:00 2001 From: Adam Megacz Date: Sat, 25 Jun 2011 13:44:05 -0700 Subject: [PATCH] GArrowFullyEnriched: minimize context of the data declaration --- GHC/HetMet/GArrowFullyEnriched.hs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/GHC/HetMet/GArrowFullyEnriched.hs b/GHC/HetMet/GArrowFullyEnriched.hs index bf7df6b..33f3684 100644 --- a/GHC/HetMet/GArrowFullyEnriched.hs +++ b/GHC/HetMet/GArrowFullyEnriched.hs @@ -58,6 +58,7 @@ module GHC.HetMet.GArrowFullyEnriched ( ) where import Control.Category import GHC.HetMet.GArrow +import GHC.HetMet.GArrowEnclosure import Prelude hiding ((.), id) data GArrow g (**) u => Polynomial g (**) u t x y @@ -116,6 +117,15 @@ instance (GArrowSwap g (**) u, GArrowCopy g (**) u, GArrowDrop g (**) u) => GAr where ga_swap = N ga_swap +--instance (GArrowSwap g (**) u, GArrowCopy g (**) u, GArrowDrop g (**) u, GArrowLoop g (**) u) +-- => GArrowLoop (Polynomial g (**) u t) (**) u +-- where +-- ga_loopl = error "FIXME: GArrowFullyEnriched loopl not implemented" +-- ga_loopr = error "FIXME: GArrowFullyEnriched loopl not implemented" + +instance GArrowEnclosure q g (**) u => GArrowEnclosure (Polynomial q (**) u t) g (**) u where + enclose f = N (enclose f) + -- -- | Given an **instance-polymorphic** Haskell function @(g () a)->(g b c)@ we can produce -- a self-contained instance-polymorphic term @(g (a**b) c)@. The "trick" is that we supply -- 1.7.10.4