@@ -633,10 +633,14 @@ instance IsType0 HuddleItem where
633
633
toType0 (HIGroup g) = toType0 g
634
634
toType0 (HIGRule g) =
635
635
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."
637
639
toType0 (HIGRule' g) =
638
640
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."
640
644
641
645
class CanQuantify a where
642
646
-- | Apply a lower bound
@@ -966,6 +970,7 @@ data GRuleCallAux = GRuleCallAux
966
970
967
971
type GRuleCall' = Named GRuleCallAux
968
972
973
+ -- | Create a generic rule definition binding a single generic parameter.
969
974
binding' :: (GRef -> Rule ) -> GRuleDef'
970
975
binding' fRule =
971
976
Named
@@ -983,8 +988,11 @@ instance IsGRuleDef GRuleDef' where
983
988
984
989
instance IsGRuleDef HuddleItem where
985
990
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
987
994
995
+ -- | Call a generic definition, applying the given type parameter.
988
996
(<--) :: (IsType0 t0 , IsGRuleDef gd ) => gd -> t0 -> GRuleCall'
989
997
(toGRuleDef -> f) <-- t0 = fmap toCall f
990
998
where
@@ -1228,7 +1236,7 @@ toCDDL' mkPseudoRoot hdl =
1228
1236
toGenericCall' (Named n gr _) =
1229
1237
C. T2Name
1230
1238
(C. Name n)
1231
- (Just . C. GenericArg $ ( toCDDLType1 (callArg gr) ) NE. :| [] )
1239
+ (Just . C. GenericArg $ toCDDLType1 (callArg gr) NE. :| [] )
1232
1240
1233
1241
toGenRuleDef :: GRuleDef -> C. WithComments C. Rule
1234
1242
toGenRuleDef (Named n gr c) =
0 commit comments