declare string:    "class("//"Foo"//""//")"//""//", allocatable"
declare component: class(Foo), allocatable
declare result:    class(Foo)
declare dummy:     class(Foo)

a == b:            __T_EQ_SCALAR__(a,b)
a NE b:            __T_NE_SCALAR__(a,b)
a <= b:            __T_LE_SCALAR__(a,b)
a >= b:            __T_GE_SCALAR__(a,b)
a <  b:            __T_LT_SCALAR__(a,b)
a >  b:            __T_GT_SCALAR__(a,b)

FREE(x):           deallocate(x)
COPY(dst,src):     allocate(dst, source=src)
MOVE(dst,src):     call move_alloc(from=src,to=dst)
