@@ -142,14 +142,14 @@ class ToSchema a where
142142 -- together with all used definitions.
143143 -- Note that the schema itself is included in definitions
144144 -- only if it is recursive (and thus needs its definition in scope).
145− declareNamedSchema :: proxy a -> Declare (Definitions Schema) NamedSchema
145+ declareNamedSchema :: Proxy a -> Declare (Definitions Schema) NamedSchema
146146 default declareNamedSchema :: (Generic a, GToSchema (Rep a), TypeHasSimpleShape a "genericDeclareNamedSchemaUnrestricted") =>
147− proxy a -> Declare (Definitions Schema) NamedSchema
147+ Proxy a -> Declare (Definitions Schema) NamedSchema
148148 declareNamedSchema = genericDeclareNamedSchema defaultSchemaOptions
149149
150150-- | Convert a type into a schema and declare all used schema definitions.
151−declareSchema :: ToSchema a => proxy a -> Declare (Definitions Schema) Schema
152−declareSchema = fmap _namedSchemaSchema . declareNamedSchema
151+declareSchema :: forall a proxy. ToSchema a => proxy a -> Declare (Definitions Schema) Schema
152+declareSchema _ = fmap _namedSchemaSchema $ declareNamedSchema (Proxy :: Proxy a)
153153
154154-- | Convert a type into an optionally named schema.
155155--
@@ -162,8 +162,8 @@ declareSchema = fmap _namedSchemaSchema . declareNamedSchema
162162-- Just "Day"
163163-- >>> encode (toNamedSchema (Proxy :: Proxy Day) ^. schema)
164164-- "{\"example\":\"2016-07-22\",\"format\":\"date\",\"type\":\"string\"}"
165−toNamedSchema :: ToSchema a => proxy a -> NamedSchema
166−toNamedSchema = undeclare . declareNamedSchema
165+toNamedSchema :: forall a proxy. ToSchema a => proxy a -> NamedSchema
166+toNamedSchema _ = undeclare $ declareNamedSchema (Proxy :: Proxy a)
167167
168168-- | Get type's schema name according to its @'ToSchema'@ instance.
169169--
@@ -203,7 +203,7 @@ toSchemaRef = undeclare . declareSchemaRef
203203-- Schema definitions are typically declared for every referenced schema.
204204-- If @'declareSchemaRef'@ returns a reference, a corresponding schema
205205-- will be declared (regardless of whether it is recusive or not).
206−declareSchemaRef :: ToSchema a => proxy a -> Declare (Definitions Schema) (Referenced Schema)
206+declareSchemaRef :: forall a proxy. ToSchema a => proxy a -> Declare (Definitions Schema) (Referenced Schema)
207207declareSchemaRef proxy = do
208208 case toNamedSchema proxy of
209209 NamedSchema (Just name) schema -> do
@@ -218,7 +218,7 @@ declareSchemaRef proxy = do
218218 known <- looks (InsOrdHashMap.member name)
219219 when (not known) $ do
220220 declare [(name, schema)]
221− void $ declareNamedSchema proxy
221+ void $ declareNamedSchema (Proxy :: Proxy a)
222222 return $ Ref (Reference name)
223223 _ -> Inline <$> declareSchema proxy
224224