@@ -633,10 +633,14 @@ instance IsType0 HuddleItem where
633633 toType0 (HIGroup g) = toType0 g
634634 toType0 (HIGRule g) =
635635 error $
636- " Attempt to reference generic rule from HuddleItem not supported: " <> show g
636+ " Attempt to reference a raw generic rule: "
637+ <> show g
638+ <> " . Most likely this indicates you haven't provided generic parameters."
637639 toType0 (HIGRule' g) =
638640 error $
639- " Attempt to reference generic rule from HuddleItem not supported: " <> show g
641+ " Attempt to reference a raw generic rule: "
642+ <> show g
643+ <> " . Most likely this indicates you haven't provided generic parameters."
640644
641645class CanQuantify a where
642646 -- | Apply a lower bound
@@ -966,6 +970,7 @@ data GRuleCallAux = GRuleCallAux
966970
967971type GRuleCall' = Named GRuleCallAux
968972
973+ -- | Create a generic rule definition binding a single generic parameter.
969974binding' :: (GRef -> Rule ) -> GRuleDef'
970975binding' fRule =
971976 Named
@@ -983,8 +988,11 @@ instance IsGRuleDef GRuleDef' where
983988
984989instance IsGRuleDef HuddleItem where
985990 toGRuleDef (HIGRule' gd) = gd
986- toGRuleDef _ = error " Attempt to use a non-generic rule as a GRuleDef"
991+ toGRuleDef hi =
992+ error $
993+ " Attempt to apply generic parameters to a non-generic rule: " <> show hi
987994
995+ -- | Call a generic definition, applying the given type parameter.
988996(<--) :: (IsType0 t0 , IsGRuleDef gd ) => gd -> t0 -> GRuleCall'
989997(toGRuleDef -> f) <-- t0 = fmap toCall f
990998 where
@@ -1228,7 +1236,7 @@ toCDDL' mkPseudoRoot hdl =
12281236 toGenericCall' (Named n gr _) =
12291237 C. T2Name
12301238 (C. Name n)
1231- (Just . C. GenericArg $ ( toCDDLType1 (callArg gr) ) NE. :| [] )
1239+ (Just . C. GenericArg $ toCDDLType1 (callArg gr) NE. :| [] )
12321240
12331241 toGenRuleDef :: GRuleDef -> C. WithComments C. Rule
12341242 toGenRuleDef (Named n gr c) =
0 commit comments