More testing, add type constraints in type signatures.