codeGenType :: (SimpleType -> CG IR.Reg) ->
               (NodeSet -> CG IR.Reg) ->
               Type -> CG IR.Reg
codeGenType cgSimpleTy cgNodeTy = \case
  T_SimpleType t -> cgSimpleTy t
  T_NodeSet   ns -> cgNodeTy ns
codeGenType :: (SimpleType -> CG IR.Reg) ->
               (NodeSet -> CG IR.Reg) ->
               Type -> CG IR.Reg
codeGenType cgSimpleTy cgNodeTy = \case
  T_SimpleType t -> cgSimpleTy t
  T_NodeSet   ns -> cgNodeTy ns
codeGenType cgSimpleTy cgNodeTy = \case
  T_SimpleType t -> cgSimpleTy t
  T_NodeSet   ns -> cgNodeTy ns