// TLGlobals.h
// by David Phillip Oster
// September 2007
//
// Cocoa centric lisp
//
//  Copyright 2007 David Phillip Oster

//     Licensed under the Apache License, Version 2.0 (the "License");
//     you may not use this file except in compliance with the License.
//     You may obtain a copy of the License at

//         http://www.apache.org/licenses/LICENSE-2.0

//     Unless required by applicable law or agreed to in writing, software
//     distributed under the License is distributed on an "AS IS" BASIS,
//     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//     See the License for the specific language governing permissions and
//     limitations under the License.#import <Foundation/Foundation.h>

void TLInit(void);
void TLShutdown(void);

NSMutableDictionary *TLTopLevel(void);

// how new atoms are made
TLAtom *TLIntern(NSString *name);


// bind an NSArray of atoms to the values: args returns a token for unbinding.
TLID *TLBind(NSArray *formals, NSArray *args);

// unbind, using the token.
void TLUnbind(TLID *token);


extern TLAtom *gTLOpenParen;
extern TLAtom *gTLCloseParen;
extern TLAtom *gTLSingleQuote;
extern TLAtom *gTLT;
extern TLAtom *gTLLambda;
