The IO functions included in base delimited into small, composable classes in order to safely restrict IO functions