Module Ppx_quickcheck_expander__.Environment

type t

Maps type variables to patterns and expressions for gensym'd variables. Used to handle type parameters in polymorphic type definitions.

val empty : t
val lookup : t -> loc:Ppx_quickcheck_expander__.Import.location -> tyvar:Ppx_quickcheck_expander__.Import.string -> Ppx_quickcheck_expander__.Import.expression
val create : loc:Ppx_quickcheck_expander__.Import.location -> prefix:Ppx_quickcheck_expander__.Import.string -> (Ppx_quickcheck_expander__.Import.core_type * Ppx_quickcheck_expander__.Import.variance) Ppx_quickcheck_expander__.Import.list -> Ppx_quickcheck_expander__.Import.pattern Ppx_quickcheck_expander__.Import.list * t
val create_with_variance : loc:Ppx_quickcheck_expander__.Import.location -> covariant:Ppx_quickcheck_expander__.Import.string -> contravariant:Ppx_quickcheck_expander__.Import.string -> (Ppx_quickcheck_expander__.Import.core_type * Ppx_quickcheck_expander__.Import.variance) Ppx_quickcheck_expander__.Import.list -> Ppx_quickcheck_expander__.Import.pattern Ppx_quickcheck_expander__.Import.list * [ `Covariant of t ] * [ `Contravariant of t ]

For generators, we want contravariant type parameters to map to observer names. For observers, vice versa. So we create both environment simultaneously.