@@ -189,6 +189,11 @@ class KnownNat n => HasParameter
189 (params :: [NullityType])
189 (params :: [NullityType])
190 (ty :: NullityType)
190 (ty :: NullityType)
191 | n params -> ty where
191 | n params -> ty where
192+ -- | `parameter` takes a `Nat` using type application and a `TypeExpression`.
194+ -- >>> let expr = parameter @1 int4 :: Expression sch rels grp '[ 'Null 'PGint4] ('Null 'PGint4)
195+ -- >>> printSQL expr
192 parameter
197 parameter
193 :: TypeExpression schema (PGTypeOf ty)
198 :: TypeExpression schema (PGTypeOf ty)
194 -> Expression schema relations grouping params ty
199 -> Expression schema relations grouping params ty
@@ -199,10 +204,16 @@ instance {-# OVERLAPPING #-} HasParameter 1 schema (ty1:tys) ty1
199instance {-# OVERLAPPABLE #-} (KnownNat n, HasParameter (n-1) schema params ty)
204instance {-# OVERLAPPABLE #-} (KnownNat n, HasParameter (n-1) schema params ty)
200 => HasParameter n schema (ty' : params) ty
205 => HasParameter n schema (ty' : params) ty
207+-- | `param` takes a `Nat` using type application and for basic types,
208+-- infers a `TypeExpression`.
210+-- >>> let expr = param @1 :: Expression sch rels grp '[ 'Null 'PGint4] ('Null 'PGint4)
203 :: forall n schema params relations grouping ty
214 :: forall n schema params relations grouping ty
204 . (PGTyped schema (PGTypeOf ty), HasParameter n schema params ty)
215 . (PGTyped schema (PGTypeOf ty), HasParameter n schema params ty)
205− => Expression schema relations grouping params ty
216+ => Expression schema relations grouping params ty -- ^ param
206param = parameter @n pgtype
217param = parameter @n pgtype
208instance (HasUnique relation relations columns, Has column columns ty)
219instance (HasUnique relation relations columns, Has column columns ty)