package bastet_async

  1. Overview
  2. Docs

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
OCaml

Innovation. Community. Security.