L'intuizione di tipo opzionale come Maybe Intè che o non v'è alcuna Int (quindi, c'è Nothinglì) o che vi sia qualche Int; c'è qualcosa lì.
Per me ha senso che chiamiamo il costruttore di tipo per il caso "negativo" Nothing, dal momento che significa esattamente questo - che non Intc'è. Ma perché usare la parola Solo nel caso in cui l'enfasi è su qualcosa di davvero essere lì ?
Per me, la parola "Just" porta la connotazione secondo cui la cosa che sta descrivendo è inferiore all'alternativa; l'opposto di qualcosa che si trova effettivamente lì; per esempio,
A: Stasera farai qualcosa?
B: No; Starò solo a guardare la TV.
A: Hai indagato sui suoni inquietanti del fantasma intorno a casa tua?
B: sì, si scopre che in realtà era solo un gufo.
Chiaramente mi manca l'intuizione su cui si basava questa scelta di denominazione. Che cos'è? Perché per me la parola significa solo l'opposto di come viene usata nel Maybetipo.
Maybeuna monade, probabilmente userebbe returne probabilmente qualcosa di simile mzeroinvece di Nothing. Quando Justviene usato direttamente, di solito Maybenon viene utilizzato in stile monadico a quel punto.
Optiontipo. I progettisti di Haskell probabilmente hanno ritenuto che foo x = Just x"leggere" meglio di foo x = Some x. Allo stesso modo, la definizione data Maybe a = Just a | Nothinglegge abbastanza bene come " Maybe aè uno Just ao è Nothing". Somelegge ragionevolmente bene lì, ma Nonenon per data Option a = Some a | None.