pattern only compilation