/* Copyright 1989-93 GROUPE BULL -- See license conditions in file COPYRIGHT */
/*************\
*             *
* KL_LINK     *
* DEFINITIONS *
*             *
\*************/

#ifndef INCLUDE_Kl_LINK_H
#define INCLUDE_Kl_LINK_H

/* type */

typedef struct _KlLink {
    KlKLONE_HEADER;
    KlO link;
    KlType linktype;			/* here to check validity */
}        *KlLink;

/* exported functions */

extern KlO KlLinkCoerce();
extern KlLink KlLinkMake();
extern KlO KlLinkDereference();

#define KlIsALink(obj)  ((obj)->type == KlLinkType)
#define KlMustBeLink(obj, n)  KlArgumentMustBe(obj, n, KlLinkType)

/* methods */

EXT KlType KlLinkType;

#endif					/* INCLUDE_Kl_LINK_H */


syntax highlighted by Code2HTML, v. 0.9.1