sig
  type term = Nunchaku_core.TermInner.Default.t
  val name : string
  type state
  val tr_problem :
    (LambdaLift.term, LambdaLift.term) Nunchaku_core.Problem.t ->
    (LambdaLift.term, LambdaLift.term) Nunchaku_core.Problem.t *
    LambdaLift.state
  val decode_model :
    state:LambdaLift.state ->
    (LambdaLift.term, LambdaLift.term) Nunchaku_core.Model.t ->
    (LambdaLift.term, LambdaLift.term) Nunchaku_core.Model.t
  val pipe :
    print:bool ->
    check:bool ->
    ((LambdaLift.term, LambdaLift.term) Nunchaku_core.Problem.t,
     (LambdaLift.term, LambdaLift.term) Nunchaku_core.Problem.t,
     (LambdaLift.term, LambdaLift.term) Nunchaku_core.Problem.Res.t,
     (LambdaLift.term, LambdaLift.term) Nunchaku_core.Problem.Res.t)
    Nunchaku_core.Transform.t
  val pipe_with :
    decode:(LambdaLift.state -> '-> 'd) ->
    print:bool ->
    check:bool ->
    ((LambdaLift.term, LambdaLift.term) Nunchaku_core.Problem.t,
     (LambdaLift.term, LambdaLift.term) Nunchaku_core.Problem.t, 'c, 'd)
    Nunchaku_core.Transform.t
end