Add Template Haskell support for overloaded labels
[ghc.git] / compiler / hsSyn / HsPat.hs-boot
1 {-# LANGUAGE CPP, KindSignatures #-}
2 {-# LANGUAGE FlexibleContexts #-}
3 {-# LANGUAGE UndecidableInstances #-} -- Note [Pass sensitive types]
4                                       -- in module PlaceHolder
5 {-# LANGUAGE ConstraintKinds #-}
6 {-# LANGUAGE RoleAnnotations #-}
7
8 module HsPat where
9 import SrcLoc( Located )
10
11 import Data.Data hiding (Fixity)
12 import Outputable
13 import HsExtension      ( SourceTextX, DataId, OutputableBndrId )
14
15 type role Pat nominal
16 data Pat (i :: *)
17 type LPat i = Located (Pat i)
18
19 instance (DataId p) => Data (Pat p)
20 instance (SourceTextX pass, OutputableBndrId pass) => Outputable (Pat pass)