functor (A : Basic->
  sig
    val align_with : (('a, 'b) These.t -> 'c) -> 'A.t -> 'A.t -> 'A.t
    val align : 'A.t -> 'A.t -> ('a, 'b) These.t A.t
    val falign : ('-> '-> 'a) -> 'A.t -> 'A.t -> 'A.t
    val pad_zip_with :
      ('a option -> 'b option -> 'c) -> 'A.t -> 'A.t -> 'A.t
    val pad_zip : 'A.t -> 'A.t -> ('a option * 'b option) A.t
  end