Add module of special magic GHC desugaring helper functions
authorSimon Marlow <simonmar@microsoft.com>
Fri, 2 Nov 2007 16:00:54 +0000 (16:00 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Fri, 2 Nov 2007 16:00:54 +0000 (16:00 +0000)
Currently containing only one such helper: (>>>) for arrow desugaring

GHC/Desugar.hs [new file with mode: 0644]
base.cabal

diff --git a/GHC/Desugar.hs b/GHC/Desugar.hs
new file mode 100644 (file)
index 0000000..67ff663
--- /dev/null
@@ -0,0 +1,30 @@
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  GHC.Desugar
+-- Copyright   :  (c) The University of Glasgow, 2007
+-- License     :  see libraries/base/LICENSE
+-- 
+-- Maintainer  :  cvs-ghc@haskell.org
+-- Stability   :  internal
+-- Portability :  non-portable (GHC extensions)
+--
+-- Support code for desugaring in GHC
+-- 
+-----------------------------------------------------------------------------
+
+-- #hide
+module GHC.Desugar ((>>>)) where
+
+import Control.Arrow    (Arrow(..))
+import Control.Category ((.))
+import Prelude hiding ((.))
+
+-- A version of Control.Category.>>> overloaded on Arrow
+#ifndef __HADDOCK__
+(>>>) :: forall arr. Arrow arr => forall a b c. arr a b -> arr b c -> arr a c
+#endif
+-- NB: the type of this function is the "shape" that GHC expects
+--     in tcInstClassOp.  So don't put all the foralls at the front!  
+--     Yes, this is a bit grotesque, but heck it works and the whole
+--     arrows stuff needs reworking anyway!
+f >>> g = g . f
index 376c15b..cf14de2 100644 (file)
@@ -34,6 +34,7 @@ Library {
             GHC.Base,
             GHC.Conc,
             GHC.ConsoleHandler,
+            GHC.Desugar,
             GHC.Dotnet,
             GHC.Enum,
             GHC.Environment,