Esaminando la libreria standard di Haskell possiamo vedere:
newtype StateT s m a = StateT { runStateT :: s -> m (a, s) }
newtype WrappedMonad m a = WrapMonad { unwrapMonad :: m a }
newtype Sum a = Sum { getSum :: a }
Apparentemente, ci sono (almeno) 3 diversi prefissi usati per scartare un valore all'interno di una newtype
: un - , run - e get- . (Inoltre run - e get - capitalizza la lettera successiva mentre un - non lo fa.) Questo sembra confondere.
- Ci sono dei motivi o è solo una cosa storica?
- Se progetto il mio
newtype
, quale prefisso dovrei usare e perché?