State.hs in many ways

Signed-off-by: Akira Hayakawa <ruby.wktk@gmail.com>