Uwzględniając dwie funkcje:Generic zalegających w Haskell
f :: (A a, B b) => a -> b
g :: (B b, C c) => b -> c
Czy istnieje jakikolwiek sposób (w GHC) Mogę zrobić to można napisać:
h x = g (f x)
bez konieczności dodać podpis typu dla f x
np
h x = g ((f x) :: T)
Poprzez pewne „domyślny typ”, który f x
potrzebny, jeśli żadna określona?
Podejrzewam, że potrzebuję czegoś takiego jak Defaulting in Haskell Prime, ale czy zostało to zaimplementowane w GHC (lub w GHC)?
Z tego, co wiem, powiązana propozycja nie jest ani wdrażana, ani planowana dla GHC; i nie mogę wymyślić żadnych innych sztuczek, które pozwoliłyby ci całkowicie uniknąć dodawania adnotacji typu. Aplikacja [Explicit type application] (https://ghc.haskell.org/trac/ghc/wiki/ExplicitTypeApplication), którą rozumiem, jest planowana (ale niezaawansowana) może dostarczyć ci nieco lżejszej składni. Ale nie jestem pewien "Nie mogłem nic wymyślić" naprawdę kwalifikuje się jako odpowiedź ... –