Date due funzioni:inadempiente Generico in Haskell
f :: (A a, B b) => a -> b
g :: (B b, C c) => b -> c
Esiste un modo (in GHC) posso permettere di scrivere:
h x = g (f x)
senza dover aggiungere una firma tipo per f x
, per esempio
h x = g ((f x) :: T)
Avendo un certo "tipo di default", che prende f x
se non viene specificato?
Sospetto di aver bisogno di qualcosa come Defaulting in Haskell Prime ma è stato implementato in GHC (o in testa GHC)?
Per quanto ne so, la proposta collegata non è né implementata né pianificata per GHC; e non riesco a pensare a nessun altro trucco che ti permetterebbe di evitare completamente l'aggiunta di un'annotazione di tipo. [Applicazione di tipo esplicito] (https://ghc.haskell.org/trac/ghc/wiki/ExplicitTypeApplication), che capisco sia pianificata (ma non ancora pianificata) potrebbe darti una sintassi più leggera. Ma non sono sicuro che "Non potrei pensare a niente" si qualifica veramente come una risposta ... –