    class
    	INTERVAL [G -> ABSOLUTE]

    General
    	cluster: time
    	description: "Intervals between absolute values"
    	create: make

    Ancestors
    	PART_COMPARABLE*
    	PART_COMPARABLE*

    Queries
    	after (v: G): BOOLEAN
    	before (v: G): BOOLEAN
    	duration: DURATION
    	empty: BOOLEAN
    	end_bound: G
    	gather (other: [like Current] INTERVAL [G]): [like Current] INTERVAL [G]
    	has (v: G): BOOLEAN
    	includes (other: [like Current] INTERVAL [G]): BOOLEAN
    	infix "<" (other: [like Current] INTERVAL [G]): BOOLEAN
    	infix "<=" (other: [like Current] INTERVAL [G]): BOOLEAN
    	infix ">" (other: [like Current] INTERVAL [G]): BOOLEAN
    	infix ">=" (other: [like Current] INTERVAL [G]): BOOLEAN
    	intersection (other: [like Current] INTERVAL [G]): [like Current] INTERVAL [G]
    	intersects (other: [like Current] INTERVAL [G]): BOOLEAN
    	is_equal (other: [like Current] INTERVAL [G]): BOOLEAN
    	is_included_by (other: [like Current] INTERVAL [G]): BOOLEAN
    	is_met_by (other: [like Current] INTERVAL [G]): BOOLEAN
    	is_overlapped_by (other: [like Current] INTERVAL [G]): BOOLEAN
    	is_strict_included_by (other: [like Current] INTERVAL [G]): BOOLEAN
    	meets (other: [like Current] INTERVAL [G]): BOOLEAN
    	out: STRING_8
    	overlaps (other: [like Current] INTERVAL [G]): BOOLEAN
    	start_bound: G
    	strict_after (v: G): BOOLEAN
    	strict_before (v: G): BOOLEAN
    	strict_includes (other: [like Current] INTERVAL [G]): BOOLEAN
    	union (other: [like Current] INTERVAL [G]): [like Current] INTERVAL [G]

    Commands
    	make (s, e: G)
    	set_end_bound (e: G)
    	set_start_bound (s: G)

    Constraints
    	start bound exists
    	end bound exists
    	start bound before end bound
    	current intersection
    	current union
    	has bounds
    	between bound