ReAssocBase.hs

module ReAssocBase(module ReAssocBase,module ReAssoc) where
import Syntax(HsExpI,HsPatI,HsDeclI,HsIdentI(..))
import ReAssoc
import ReAssocBaseStruct()
import DefinedNamesBase()
import Recursive
import HasBaseStruct(hsInfixApp,hsPInfixApp)

{-
Knot-tying definitions for the base syntax
-}

instance Eq i => ReAssoc i (HsExpI  i) where reAssoc = reAssocRec
instance Eq i => ReAssoc i (HsPatI  i) where reAssoc = reAssocRec
instance Eq i => ReAssoc i (HsDeclI i) where reAssoc = reAssocRec

instance HasInfixDecls i (HsDeclI i)   where getInfixDecls = getInfixDeclsRec

instance HasInfixApp i (HsExpI i) (HsExpI i) where
  infixApp = hsInfixApp
  isInfixApp = isInfixApp . struct

instance HasInfixApp i (HsPatI i) (HsPatI i) where
  infixApp p1 (HsCon c) p2 = hsPInfixApp p1 c p2
  isInfixApp = isInfixApp . struct

Plain-text version of ReAssocBase.hs | Valid HTML?