@@ -26,8 +26,8 @@
2626// Closures
2727typedef enum {
2828 CT_CON, CT_INT, CT_BIGINT, CT_FLOAT, CT_STRING, CT_STROFFSET,
29− CT_BITS8, CT_BITS16, CT_BITS32, CT_BITS64, CT_UNIT, CT_PTR, CT_FWD,
30− CT_MANAGEDPTR, CT_RAWDATA, CT_CDATA
29+ CT_BITS8, CT_BITS16, CT_BITS32, CT_BITS64, CT_UNIT, CT_PTR, CT_REF,
30+ CT_FWD, CT_MANAGEDPTR, CT_RAWDATA, CT_CDATA
3131} ClosureType;
3232
3333typedef struct Closure *VAL;
@@ -401,6 +401,12 @@ VAL idris_strIndex(VM* vm, VAL str, VAL i);
401401VAL idris_strRev(VM* vm, VAL str);
402402VAL idris_substr(VM* vm, VAL offset, VAL length, VAL str);
403403
404+// Support for IORefs
405+VAL idris_newRefLock(VAL x, int outerlock);
406+VAL idris_newRef(VAL x);
407+void idris_writeRef(VAL ref, VAL x);
408+VAL idris_readRef(VAL ref);
409+
404410// system infox
405411// used indices:
406412// 0 returns backend