Qcheck_extra.Functor
Functor abstracts over type constructors that can be mapped over.
A Functor instance should satisfy:
Functor
map f << map g = map (f << g)
map id = id
assuming f << g = fun x -> g (f x) .
f << g = fun x -> g (f x)
module type S = sig ... end