なんか汎用性への色気と特殊性の妥協が入り交じったコードだなw