Think on how a user would actually use the library and implement that. For example, `Statement::new()` should not create random constraints. Related with #42.