class (Show es, Eq es, HList es) => IsExprSet es
instance IsExprSet HNil
-instance (IsExpr e, IsExprSet es) => IsExprSet (e :*: es)
+instance (IsExpr e, IsExprSet es) => IsExprSet (HCons e es)
class (Show es, Eq es, HList es) => IsCommonExprSet es
instance IsCommonExprSet HNil
-instance (IsCommonExpr e, IsCommonExprSet es) => IsCommonExprSet (e :*: es)
+instance (IsCommonExpr e, IsCommonExprSet es) => IsCommonExprSet (HCons e es)
-- Constants and variable names
class HList vs => IsVariableSet vs
instance IsVariableSet HNil
-instance (IsVarName v, IsVariableSet vs) => IsVariableSet (v :*: vs)
+instance (IsVarName v, IsVariableSet vs) => IsVariableSet (HCons v vs)
-- Common operators
data CommonUnaryOp a
deriving (Show, Eq, Ord)
instance (IsVarName vn, IsExpr a) => IsExpr (TrendOp vn a)
instance (IsVarName vn, IsCommonExpr a) => IsCommonExpr (TrendOp vn a)
-instance (IsVarName vn, MentionedVars a) => MentionedVars (TrendOp vn a) where
+
+instance ( IsVariableSet (vn :*: MentionedVarsOf a)
+ ) => MentionedVars (TrendOp vn a) where
type MentionedVarsOf (TrendOp vn a) = vn :*: MentionedVarsOf a
data VariableShiftPredictOp ss w 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)
+instance ( IsVariableSet (vn :*: (MentionedVarsOf ss :++: MentionedVarsOf w))
) => MentionedVars (VariableShiftPredictOp ss w vn) where
type MentionedVarsOf (VariableShiftPredictOp ss w vn)
= vn :*: (MentionedVarsOf ss :++: MentionedVarsOf w)
instance (IsCommonExpr sm, IsCommonExpr w, IsVarName vn)
=> IsCommonExpr (FixedShiftPredictOp sm w vn)
-instance ( IsVarName vn
- , IsVariableSet (MentionedVarsOf sm :++: MentionedVarsOf w)
+instance ( IsVariableSet (vn :*: (MentionedVarsOf sm :++: MentionedVarsOf w))
) => MentionedVars (FixedShiftPredictOp sm w vn) where
type MentionedVarsOf (FixedShiftPredictOp sm w vn)
= vn :*: (MentionedVarsOf sm :++: MentionedVarsOf w)