:: (a -> c) -> (a, b) -> (c, b) package:test-framework