A concurrent programming language with a linear type and effect system