Skip to content

Commit f729f30

Browse files
nc6Soupstraw
authored andcommitted
Improve comments and error messages
1 parent c4afe64 commit f729f30

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/Codec/CBOR/Cuddle/Huddle.hs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

641645
class CanQuantify a where
642646
-- | Apply a lower bound
@@ -966,6 +970,7 @@ data GRuleCallAux = GRuleCallAux
966970

967971
type GRuleCall' = Named GRuleCallAux
968972

973+
-- | Create a generic rule definition binding a single generic parameter.
969974
binding' :: (GRef -> Rule) -> GRuleDef'
970975
binding' fRule =
971976
Named
@@ -983,8 +988,11 @@ instance IsGRuleDef GRuleDef' where
983988

984989
instance 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

Comments
 (0)