with sql_boolean_pkg; use sql_boolean_pkg; with sql_char_pkg; use sql_char_pkg; generic type sql_enumeration_not_null is ( <> ); package sql_enumeration_pkg is type sql_enumeration is limited private; function null_sql_enumeration return sql_enumeration; function without_null (value : sql_enumeration) return sql_enumeration_not_null; function with_null (value : sql_enumeration_not_null) return sql_enumeration; procedure assign (left : in out sql_enumeration; right : in sql_enumeration); function equals (left, right : sql_enumeration) return boolean_with_unknown; function not_equals (left, right : sql_enumeration) return boolean_with_unknown; function "<" (left, right : sql_enumeration) return boolean_with_unknown; function ">" (left, right : sql_enumeration) return boolean_with_unknown; function ">=" (left, right : sql_enumeration) return boolean_with_unknown; function "<=" (left, right : sql_enumeration) return boolean_with_unknown; function is_null (value : sql_enumeration) return boolean; function not_null (value : sql_enumeration) return boolean; function "=" (left, right : sql_enumeration) return boolean; function "<" (left, right : sql_enumeration) return boolean; function ">" (left, right : sql_enumeration) return boolean; function ">=" (left, right : sql_enumeration) return boolean; function "<=" (left, right : sql_enumeration) return boolean; function pred (value : in sql_enumeration) return sql_enumeration; function succ (value : in sql_enumeration) return sql_enumeration; function pos (value : in sql_enumeration) return integer; function image (value : in sql_enumeration) return sql_char; function image (value : in sql_enumeration_not_null) return sql_char_not_null; function val (value : in integer) return sql_enumeration; function value (value : in sql_char) return sql_enumeration; function value (value : in sql_char_not_null) return sql_enumeration_not_null; private type sql_enumeration is record is_null : boolean := true; value : sql_enumeration_not_null; end record; end sql_enumeration_pkg;