At the risk of plugging one of my own papers, may I recommend

Producing New Bijections from Old by David Feldman and James Propp (published in Advances in Mathematics, volume 113 (1995), pages 1-44)

which you can find here http://jamespropp.org/cancel.ps.gz .

Establishing a definition of bijective proof turns out difficult since it hinges on the distinction between proving the existence of a bijection and using a bijection to establish an equality.  One would like to trade in this syntactic problem (distinguishing a class of proofs) for a semantic problem - a mathematical universe where one can distinguish between mere numerical equality and the existence of a bijection.

Topos theory offers one approach.  There one can have two sheaves with a bijection between every stalk of one and every stalk of the other, but no global isomorphism of the sheaves.  Alternatively, one can have two sets of the same cardinality that carry different actions by the same finite group $G$.  

This may all see to be getting away from the real world, but what Jim and I show in the paper is that it all does have bankable implications for relative questions about the existence of bijections.  For example, if you have sets $A$ and $B$ and you find a bijection between $A^2$ and $B^2$, our paper gives you an concrete effective way to get a bijection between $A$ and $B$.  We also give a group-theoretical criterion that predicts the existence
of this effective reduction before you actually have it in your hands.

On the other hand, we show that a bijection between $2^A$ and $2^B$ does not effectively give rise to a bijection between $A$ and $B$.  Such a bijection might be too symmetrical, and we actually write down a concrete example to show you how things can go wrong.

Pedagogically speaking, I have often encountered two diametrically opposite and equally difficult lessons.  I have encountered many students who don't understand why you don't need the axiom of choice to pick out one element from one non-empty set (with more than one element)...in classical mathematics, say ZF.  And I have encountered just as many students who don't understand why you do need the axiom of choice to pick out one element from a two element set...in effective, or intuitionistic mathematics, or in a topos.  

Examples of two different descriptions of a set that are not obviously equivalent?
I'd like to started with Scalatra.  For that, I need to use giter8 to generate a template project.  To install giter8, I need to install conscript first.  But doing that (at least using the runnable jar on Windows) fails with this error:


  ::::::::::::::::::::::::::::::::::::::::::::::
  
  ::          UNRESOLVED DEPENDENCIES         ::
  
  ::::::::::::::::::::::::::::::::::::::::::::::
  
  :: net.databinder.conscript#conscript_2.11;0.4.4: not found
  
  ::::::::::::::::::::::::::::::::::::::::::::::


This is with the latest conscript version.  Doesn't it support scala 2.11 yet?  Is conscript even still actively maintained?  The mailing list is dead and there's not even a stackoverflow tag.

Although I'd prefer to fix the conscript installation issue, is there an easy workaround?    Like installing giter8 without using conscript?  Or setting up scalatra without using giter8?
