Skip to content

Commit

Permalink
Delete some dead substitution functions (#349)
Browse files Browse the repository at this point in the history
`substKindInPred` is completely unused, and moreover, its definition
is somewhat dubious, given that it only substitutes into kinds, not
types. We already have `substPred`, so the prudent thing to do seems
to be to make `substPred` substitute into kinds, just like its
counterpart `substType`.

`substKindInTvb` is also dead code, so let's also axe that.
  • Loading branch information
RyanGlScott authored Jul 4, 2018
1 parent 81c86d7 commit 60dd52c
Showing 1 changed file with 2 additions and 15 deletions.
17 changes: 2 additions & 15 deletions src/Data/Singletons/Util.hs
Original file line number Diff line number Diff line change
Expand Up @@ -318,25 +318,12 @@ substPred :: Map Name DType -> DPred -> DPred
substPred subst pred | Map.null subst = pred
substPred subst (DAppPr pred ty) =
DAppPr (substPred subst pred) (substType subst ty)
substPred subst (DSigPr pred ki) = DSigPr (substPred subst pred) ki
substPred subst (DSigPr pred ki) =
DSigPr (substPred subst pred) (substKind subst ki)
substPred _ pred@(DVarPr {}) = pred
substPred _ pred@(DConPr {}) = pred
substPred _ pred@DWildCardPr = pred

substKindInPred :: Map Name DKind -> DPred -> DPred
substKindInPred subst pred | Map.null subst = pred
substKindInPred subst (DAppPr pred ty) =
DAppPr (substKindInPred subst pred) (substType subst ty)
substKindInPred subst (DSigPr pred ki) = DSigPr (substKindInPred subst pred)
(substKind subst ki)
substKindInPred _ pred@(DVarPr {}) = pred
substKindInPred _ pred@(DConPr {}) = pred
substKindInPred _ pred@DWildCardPr = pred

substKindInTvb :: Map Name DKind -> DTyVarBndr -> DTyVarBndr
substKindInTvb _ tvb@(DPlainTV _) = tvb
substKindInTvb subst (DKindedTV n ki) = DKindedTV n (substKind subst ki)

cuskify :: DTyVarBndr -> DTyVarBndr
cuskify (DPlainTV tvname) = DKindedTV tvname $ DConT typeKindName
cuskify tvb = tvb
Expand Down

0 comments on commit 60dd52c

Please sign in to comment.