Source file ppx_quickcheck.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
open! Base
open Ppxlib
open Ppx_quickcheck_expander

let derive name ~portable =
  Deriving.add
    name
    ~sig_type_decl:(sig_type_decl ~portable)
    ~str_type_decl:(str_type_decl ~portable)
  |> Deriving.ignore
;;

let () = derive "quickcheck" ~portable:false
let () = derive "quickcheck__portable" ~portable:true

let extend name f =
  Deriving.add name ~extension:(f ~portable:false) |> Deriving.ignore;
  Deriving.add (name ^ "_portable") ~extension:(f ~portable:true) |> Deriving.ignore
;;

let () = extend "quickcheck.generator" generator_extension
let () = extend "quickcheck.observer" observer_extension
let () = extend "quickcheck.shrinker" shrinker_extension
let registered = ()