1funcA input.elm /^funcA (a1, _, a2) =$/;" f roles:def 2funcB input.elm /^funcB (b1, b2) (b3, b4) =$/;" f roles:def 3funcC input.elm /^funcC {c1} {c2, c3} =$/;" f roles:def 4funcD input.elm /^funcD (D1Cons a b) (D2Cons a b, D3Cons a b) =$/;" f roles:def 5funcE input.elm /^funcE (D1Cons {a, b} c) d =$/;" f roles:def 6funcF input.elm /^funcF (D1Cons ({a, b} as ab) c) (d as d2) =$/;" f roles:def 7funcG input.elm /^funcG =$/;" f roles:def 8