
#13186: Change EvNum to EvNum :: Natural -> EvLit -------------------------------------+------------------------------------- Reporter: phadej | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #8306 #8412 | Differential Rev(s): #13181 | Wiki Page: | -------------------------------------+------------------------------------- Comment (by phadej): On the other hand:
This smells funny. Why is there so much Integer here? Why is a conversion from Integer to Natural being put in such deep code? I'm clearly missing something!
https://phabricator.haskell.org/D3024 AFAICS, it's totally possible to thread Natural thru the pipeline, we do very little calculations with type level nats (in a single module), everywhere else the value is just passed forward. Like in https://github.com/ghc/ghc/blob/ff9355e48d0cb04b3adf26e27e12e128f79618f4/com... And then we could use `minusNaturalMaybe` https://github.com/ghc/ghc/blob/ff9355e48d0cb04b3adf26e27e12e128f79618f4/com... here, i.e. unify `Natural` and `KnownNat` handling by ''using same functions''. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13186#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler