123456789101112131415161718192021 |
- By making dictionaries explicit we might be able to unify instantiate,
- instantiateFull, reduce and normalise.
- class HasKit a where
- applyKit :: Kit m -> a -> m a
- data Kit m = Kit { termKit :: TermKit m
- , typeKit :: TypeKit m
- , listKit :: ListKit m
- ...
- }
- type ListKit m = forall a. HasKit a => Kit -> [a] -> m [a]
- data TermKit m = TermKit
- { varKit :: Nat -> Args -> m Term
- , lamKit :: Hiding -> Abs Term -> m Term
- ...
- }
|