import public Deriving.DepTyCheck.Gen.ConsRecs
import public Deriving.DepTyCheck.Gen.Signatureinterface DerivationClosure : (Type -> Type) -> TypecallGen : NamesInfoInTypes => ConsRecs => (sig : GenSignature) -> TTImp -> Vect ((sig .givenParams) .size) TTImp -> m (TTImp, Maybe (gend : Nat ** Vect gend (Fin gend)))DeriveBodyForType => ClosuringContext m => Elaboration m => SortedMap GenSignature (ExternalGenSignature, Name) => DerivationClosure mDerivationClosure m => MonadTrans t => Monad (t m) => DerivationClosure (t m)callGen : DerivationClosure m => NamesInfoInTypes => ConsRecs => (sig : GenSignature) -> TTImp -> Vect ((sig .givenParams) .size) TTImp -> m (TTImp, Maybe (gend : Nat ** Vect gend (Fin gend)))outmostFuelArg : Name