Obtendo um valor 'a' do tipo de retorno 'Talvez um' em Haskell

Isso será difícil de explicar, porque há uma quantidade decente de detalhes de plano de fundo sobre o código como um todo que precisa ser conhecido para realmente saber funcionalmente do que estou falando. Mas vou tentar o meu melhor para entender meu ponto principal e espero que seja suficiente. Deixe-me saber se não, e eu adicionarei mais informações. Assim:

Eu tenho uma função Haskelleval :: WExp -> Memory -> WValue com várias instâncias diferentes para casos diferentes. Por enquanto, o conhecimento sobreWExp, MemoryeWValue não é relevante. Meu problema é que, para uma instância específica deevalEstou usando umlookup função, que aceita o parâmetroeval (uma sequência neste caso) pesquisa uma lista de pares de valores-chave para essa sequência. Note que estelookup função não é a incluída no prelúdio; é auto-definido no arquivo .hs. Se a sequência for encontrada, o valor associado a ela será retornado, mas se não for encontrado,Nothing é retornado. Por causa doNothing caso, o tipo delookup é na verdadeMaybe a, Ondea seria umWValue nesse caso. Porqueeval retornaria umMaybe WValue, o compilador obviamente reclama que o tipo não éWValue.

Novamente, se você precisar de mais informações sobre o que esses outros tipos são, eu posso fornecer. É apenas o meu pensamento que pode haver algum tipo de método geral para extrair oa valor de qualquer função que retorneMaybe a. Se não, acho que vou procurar outro lugar para soluções :)

questionAnswers(4)

yourAnswerToTheQuestion