This paper presents a model of analogical reasoning for learning. The model is based on two main ideas. First, that reasoning from an analogy presented by a teacher while explaining an unfamiliar concept is often determined by the causal abstractions known by the student to apply in the familiar domain referred to. Secondly, that such analogies, once introduced, are extended incrementally, in attempts to account for new situations by recalling additional situations from the same base domain. Protocols suggest that this latter process is quite useful but extremely error-prone. CARL, a computer program that learns semantic representations for assignment statements of the BASIC programming language is described as an illustration this kind of analogical reasoning. The model maps and debugs inferences drawn from several commonly used analogies to assignment, in response to presented examples.