Source file Bastet_async.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
25
26
27
28
29
30
31
32
33
34
35
36
37
module Functor : Bastet.Interface.FUNCTOR with type 'a t = 'a Async_kernel.Deferred.t = struct
type 'a t = 'a Async_kernel.Deferred.t
let map f x = Async_kernel.Deferred.map ~f x
end
module Apply : Bastet.Interface.APPLY with type 'a t = 'a Async_kernel.Deferred.t = struct
include Functor
let apply f x = Async_kernel.Deferred.bind f ~f:(fun f' -> map f' x)
end
module Applicative : Bastet.Interface.APPLICATIVE with type 'a t = 'a Async_kernel.Deferred.t =
struct
include Apply
let pure = Async_kernel.Deferred.return
end
module Monad : Bastet.Interface.MONAD with type 'a t = 'a Async_kernel.Deferred.t = struct
include Applicative
let flat_map x f = Async_kernel.Deferred.bind ~f x
end
module Infix = struct
include Bastet.Infix.Functor (Functor)
include Bastet.Infix.Monad (Monad)
end
module List = struct
module Traversable = Bastet.List.Traversable (Applicative)
end
module Array = struct
module Traversable = Bastet.Array.Traversable (Applicative)
end