// TLTypes.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>

// the basic type of this system is a tlID, which is a synonym for an NSObject,
// and typically implements the informal TLLisp protocol 
typedef NSObject TLID;

@interface NSObject(TLLisp)
- (TLID *)tlEval;
- (TLID *)tlPrint:(NSMutableString *)outStream;
@end

@interface NSArray(TLLisp)
- (TLID *)tlEval;
- (TLID *)tlPrint:(NSMutableString *)outStream;
@end

@interface NSString(TLLisp)
- (TLID *)tlPrint:(NSMutableString *)outStream;
- (NSString *)stringAsStringLiteral;
- (NSString *)stringByReplacingAll:(NSString *)src with:(NSString *)dest;
@end

