Movatterモバイル変換
[0]ホーム
{-# LANGUAGE Trustworthy #-}{-# LANGUAGE NoImplicitPrelude , RankNTypes , ExistentialQuantification #-}{-# OPTIONS_HADDOCK hide #-}------------------------------------------------------------------------------- |-- 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-------------------------------------------------------------------------------moduleGHC.Desugar((>>>),AnnotationWrapper(..),toAnnotationWrapper)whereimportControl.Arrow(Arrow(..))importControl.Category((.))importData.Data(Data)-- A version of Control.Category.>>> overloaded on Arrow(>>>)::forallarr.Arrowarr=>forallabc.arrab->arrbc->arrac-- 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-- A wrapper data type that lets the typechecker get at the appropriate dictionaries for an annotationdataAnnotationWrapper=foralla.(Dataa)=>AnnotationWrapperatoAnnotationWrapper::(Dataa)=>a->AnnotationWrappertoAnnotationWrapperwhat=AnnotationWrapperwhat
[8]ページ先頭