Safe Haskell | Safe-Inferred |
---|
- data RuleSpec a = a :~> a
- lhsR :: RuleSpec a -> a
- rhsR :: RuleSpec a -> a
- type Ext phi = K Metavar :+: PF phi
- type Metavar = Int
- type Scheme phi = HFix (Ext phi)
- data Rule phi a where
- metavar :: phi ix -> Metavar -> Scheme phi ix
- pf :: phi ix -> PF phi (Scheme phi) ix -> Scheme phi ix
- class Builder phi a where
- rule :: forall phi r. (Fam phi, Builder phi r, HZip phi (PF phi), El phi (Target r), EqS phi, HFunctor phi (PF phi)) => r -> Rule phi (Target r)
- mergeSchemes :: HZip phi (PF phi) => phi ix -> Scheme phi ix -> Scheme phi ix -> Scheme phi ix
- insertMVar :: forall phi ix. (Fam phi, HZip phi (PF phi), El phi ix) => Metavar -> phi ix -> I0 ix -> I0 ix -> Scheme phi ix
Documentation
Allows metavariables on either side of a rule.
rule :: forall phi r. (Fam phi, Builder phi r, HZip phi (PF phi), El phi (Target r), EqS phi, HFunctor phi (PF phi)) => r -> Rule phi (Target r)Source