#include <perms.h>
void Impfree(int Templateaddr);
*Impmalloc(int S);
static const int Integersize = 4;
static const int Realsize = 4;
static const int Bytesize = 1;
static const int Longrealsize = 8;
static const int Integertype = 1;
static const int Realtype = 2;
static const int Stringtype = 3;
static const int Recordtype = 4;
static const int Bytetype = 5;
static const int Shortintegertype = 6;
static const int Longrealtype = 8;
static int /* boolean */ Acceptabletype(int Type) {
  if (Type == Integertype) return (1);
  if (Type == Realtype) return (1);
  if (Type == Stringtype) return (1);
  if (Type == Recordtype) return (1);
  if (Type == Bytetype) return (1);
  if (Type == Longrealtype) return (1);
  return (0);
}
void Dispose(_imp_name Template) {
  int Where = Addr(Template);
  Impfree(Where);
}
*New(_imp_name Template) {
  *Res;
  int Type;
  Type = Typeof(Template);
  if (!Acceptabletype(Type)) _imp_signal(5, 5, Type, _imp_str_literal(""));
  int Bytes = (Sizeof(Template) + 3) & (~3);
  Res = Impmalloc(Bytes);
  return (Res);
}
