spelling error: `irreducible` instead of `irriducible`

fix #77
change default name for unnamed types

fix #79
Prevent illegal type definitions and make easy type analysis

fix #78