sig
  type t = {
    modules : Module.FreeLeft.Presentation.pres array;
    d : Module.FreeLeft.Presentation.Map.t array;
  }
  val modules :
    Module.FreeLeft.Presentation.Complex.t ->
    Module.FreeLeft.Presentation.pres array
  val maps :
    Module.FreeLeft.Presentation.Complex.t ->
    Module.FreeLeft.Presentation.Map.t array
  val length : Module.FreeLeft.Presentation.Complex.t -> int
  val make :
    Module.FreeLeft.Presentation.pres array ->
    Module.FreeLeft.Presentation.Map.t array ->
    Module.FreeLeft.Presentation.Complex.t
  val valid : Module.FreeLeft.Presentation.Complex.t -> bool
  val to_string : Module.FreeLeft.Presentation.Complex.t -> string
  val homology : Module.FreeLeft.Presentation.Complex.t -> int array
end