mirror of
https://github.com/github/semantic.git
synced 2024-12-25 07:55:12 +03:00
Define Scope-compatible Eq & Ord instances for Term.
This commit is contained in:
parent
8ca7382ab9
commit
9d7b63c56e
@ -10,6 +10,18 @@ data Term sig a
|
||||
= Var a
|
||||
| Term (sig (Term sig) a)
|
||||
|
||||
deriving instance ( Eq a
|
||||
, RightModule sig
|
||||
, forall g x . (Eq x, Monad g, forall y . Eq y => Eq (g y)) => Eq (sig g x)
|
||||
)
|
||||
=> Eq (Term sig a)
|
||||
deriving instance ( Ord a
|
||||
, RightModule sig
|
||||
, forall g x . (Eq x, Monad g, forall y . Eq y => Eq (g y)) => Eq (sig g x)
|
||||
, forall g x . (Ord x, Monad g, forall y . Eq y => Eq (g y)
|
||||
, forall y . Ord y => Ord (g y)) => Ord (sig g x)
|
||||
)
|
||||
=> Ord (Term sig a)
|
||||
deriving instance (Show a, forall g x . (Show x, forall y . Show y => Show (g y)) => Show (sig g x)) => Show (Term sig a)
|
||||
|
||||
deriving instance ( forall g . Foldable g => Foldable (sig g)) => Foldable (Term sig)
|
||||
|
Loading…
Reference in New Issue
Block a user