use std::fmt::Debug;
use yash_env::job::{RunBlocking, RunUnblocking};
use yash_env::subshell::BlockSignals;
use yash_env::system::concurrency::{ReadAll, Select, WaitForSignals, WriteAll};
use yash_env::system::resource::SetRlimit;
use yash_env::system::{
Clock, Close, Dup, Exec, Exit, Fcntl, Fork, Fstat, GetPid, GetPw, IsExecutableFile, Isatty,
Open, Pipe, Read, Seek, SendSignal, SetPgid, ShellPath, TcSetPgrp, Wait,
};
use yash_env::trap::SignalSystem;
pub trait Runtime:
BlockSignals
+ Clock
+ Clone
+ Close
+ Debug
+ Dup
+ Exec
+ Exit
+ Fcntl
+ Fork
+ Fstat
+ GetPid
+ GetPw
+ IsExecutableFile
+ Isatty
+ Open
+ Pipe
+ Read
+ ReadAll
+ RunBlocking
+ RunUnblocking
+ Seek
+ Select
+ SendSignal
+ SetPgid
+ SetRlimit
+ ShellPath
+ SignalSystem
+ TcSetPgrp
+ Wait
+ WaitForSignals
+ WriteAll
{
}
impl<S> Runtime for S where
S: BlockSignals
+ Clock
+ Clone
+ Close
+ Debug
+ Dup
+ Exec
+ Exit
+ Fcntl
+ Fork
+ Fstat
+ GetPid
+ GetPw
+ IsExecutableFile
+ Isatty
+ Open
+ Pipe
+ Read
+ ReadAll
+ RunBlocking
+ RunUnblocking
+ Seek
+ Select
+ SendSignal
+ SetPgid
+ SetRlimit
+ ShellPath
+ SignalSystem
+ TcSetPgrp
+ Wait
+ WaitForSignals
+ WriteAll
{
}