As I expected, if you want to use tags outside the module, you also need to export them . (I just don't know how).
To do this, add tags to the comma-separated list in parentheses.
From the source code for Maybe (the type that "worked" the way I wanted mine):
module Maybe exposing ( Maybe(Just,Nothing) , andThen , map, map2, map3, map4, map5 , withDefault , oneOf )
Or in my case:
module Game exposing (Letter, GuessedLetter(Guessed, Unguessed))
On the import side, you can choose to fully qualify tags (with a module, not with a type):
import Game exposing GuessedLetter {- ... -} guessToChar : GuessedLetter -> Char guessToChar guess = case guess of Game.Guessed l -> l Game.Unguessed -> '_'
or set tags :
import Game exposing GuessedLetter(Guessed, Unguessed) {- ... -} guessToChar : GuessedLetter -> Char guessToChar guess = case guess of Guessed l -> l Unguessed -> '_'
source share