Text this: Fundamentals of Abstract Analysis