mirror of
https://github.com/github/semantic.git
synced 2024-12-20 21:31:48 +03:00
Clean up the type of evaluatingModulesWith using equality constraints.
This commit is contained in:
parent
7344a1b67c
commit
f8e1d03f66
@ -301,14 +301,16 @@ instance Applicative m => Monoid (Merging m location value) where
|
||||
mappend = (<>)
|
||||
mempty = Merging (pure Nothing)
|
||||
|
||||
evaluatingModulesWith :: forall location term value effects a
|
||||
evaluatingModulesWith :: forall location term value effects a termEffects moduleEffects
|
||||
. ( Evaluatable (Base term)
|
||||
, Member Fail effects
|
||||
, MonadEvaluatable location term value (EvalClosure term value ': EvalModule term value ': effects)
|
||||
, MonadEvaluatable location term value termEffects
|
||||
, Recursive term
|
||||
, termEffects ~ (EvalClosure term value ': moduleEffects)
|
||||
, moduleEffects ~ (EvalModule term value ': effects)
|
||||
)
|
||||
=> (SubtermAlgebra Module term (Evaluator location term value (EvalModule term value ': effects) value) -> SubtermAlgebra Module term (Evaluator location term value (EvalModule term value ': effects) value))
|
||||
-> (SubtermAlgebra (Base term) term (Evaluator location term value (EvalClosure term value ': EvalModule term value ': effects) value) -> SubtermAlgebra (Base term) term (Evaluator location term value (EvalClosure term value ': EvalModule term value ': effects) value))
|
||||
=> (SubtermAlgebra Module term (Evaluator location term value moduleEffects value) -> SubtermAlgebra Module term (Evaluator location term value moduleEffects value))
|
||||
-> (SubtermAlgebra (Base term) term (Evaluator location term value termEffects value) -> SubtermAlgebra (Base term) term (Evaluator location term value termEffects value))
|
||||
-> Evaluator location term value (EvalModule term value ': effects) a
|
||||
-> Evaluator location term value effects a
|
||||
evaluatingModulesWith perModule perTerm = handleEvalModules
|
||||
|
Loading…
Reference in New Issue
Block a user