-instance (ExprSet ss, Expr w, Variable v)
- => Expr (VariableShiftPredictOp ss w v)
-instance (CommonExprSet ss, CommonExpr w, Variable v)
- => CommonExpr (VariableShiftPredictOp ss w v)
-
-data FixedShiftPredictOp sm w v
- = FixedShiftPredictAverage !sm !w !v
- | FixedShiftPredictSigma !sm !w !v
+instance (IsExprSet ss, IsExpr w, IsVarName vn)
+ => IsExpr (VariableShiftPredictOp ss w vn)
+instance (IsExprSet ss, IsCommonExprSet ss, IsCommonExpr w, IsVarName vn)
+ => IsCommonExpr (VariableShiftPredictOp ss w vn)
+instance ( IsVarName vn
+ , IsVariableSet (MentionedVarsOf ss :++: MentionedVarsOf w)
+ ) => MentionedVars (VariableShiftPredictOp ss w vn) where
+ type MentionedVarsOf (VariableShiftPredictOp ss w vn)
+ = vn :*: (MentionedVarsOf ss :++: MentionedVarsOf w)
+
+-- FixedShiftPredictOp
+data FixedShiftPredictOp sm w vn
+ = FixedShiftPredictAverage !sm !w !(Variable vn)
+ | FixedShiftPredictSigma !sm !w !(Variable vn)