Thanks for the suggestion. By using Maple10's optional parameter syntax, you can simplify the procedure somewhat. Also, it's a good idea to add "copyright" to the option field so that it behaves like a normal copyrighted procedure (only displayes skeleton when printed unless interface(verboseproc) is 2 or greater). Here's my minor alteration:

MakeIntervalType := proc(N::symbol, R::range
,LoEnd::{identical(open),identical(closed)} := closed
,HiEnd::{identical(open),identical(closed)} := closed
)
local Hi, Lo, t, Test, Test1, Test2;
description "Creates a user-defined Maple type for an interval - finite or infinite, open or closed";
options `Copyright (c) Douglas B. Meade, Univ. of South Carolina, August 2005`;
Lo,Hi := op(R);
Test1 := `if`(LoEnd=':-closed', t >= Lo, t > Lo);
Test2 := `if`(HiEnd=':-closed', t <= Hi, t < Hi);
Test := unapply( Test1 and Test2, t );
TypeTools:-AddType(N, Test)
end proc: