:: (b -> b -> c) -> (a -> b) -> a -> a -> c package:regex-tdfa