X-Git-Url: http://git.megacz.com/?p=ghc-base.git;a=blobdiff_plain;f=GHC%2FHetMet%2FGArrowFullyEnriched.hs;fp=GHC%2FHetMet%2FGArrowFullyEnriched.hs;h=33f3684c3b2fa1f7fb7a58bc6ebba3c95de6c00f;hp=bf7df6b5315a0fd7b7ba78f20cd0cef4660f6cc8;hb=21997e4f1b33da70bfa26cbc9189496132d3f8c2;hpb=3b0388b14ee1be2edad548649388bca4ab8c31f0 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