Oops, should read #< #< R() throws E >( #< R( A ) throws E >, A ) > curry = new #< #< R() throws E >( #< R( A ) throws E > l, A a ) >( new #< R() throws E >()( l.( a ) ) ); Sorry, -- Howard.