X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=hs-rrdtool.git;a=blobdiff_plain;f=Database%2FRRDtool%2FExpression.hs;fp=Database%2FRRDtool%2FExpression.hs;h=669acbca32adffa985f93c652b4e60cc5823f39e;hp=3a061676198ef76af9761365709456caa0de7eb5;hb=135df1a5d8a159db412614bcfc25634bee201f94;hpb=b7e8a37aa24e9bda11995613c45187e6e19e0c01 diff --git a/Database/RRDtool/Expression.hs b/Database/RRDtool/Expression.hs index 3a06167..669acbc 100644 --- a/Database/RRDtool/Expression.hs +++ b/Database/RRDtool/Expression.hs @@ -50,11 +50,11 @@ class IsExpr e => IsAggregativeExpr e 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 @@ -80,7 +80,7 @@ instance IsVarName vn => MentionedVars (Variable vn) where 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 @@ -173,7 +173,9 @@ data TrendOp vn 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 @@ -184,8 +186,7 @@ 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) +instance ( IsVariableSet (vn :*: (MentionedVarsOf ss :++: MentionedVarsOf w)) ) => MentionedVars (VariableShiftPredictOp ss w vn) where type MentionedVarsOf (VariableShiftPredictOp ss w vn) = vn :*: (MentionedVarsOf ss :++: MentionedVarsOf w) @@ -202,8 +203,7 @@ instance (IsExpr sm, IsExpr w, IsVarName vn) 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)