Why doesn't Djinn find <*> for State?

Viewed 71

I define

-- Djinn doesn't seem to understand newtype
data State s a = State (s -> (s, a))

and then ask it for

f :: State s (a -> b) -> State s a -> State s b

It gives me three answers, but all of them throw away one or both of the state changes. Why is this? Isn't Djinn supposed to prefer solutions that use as much of the available information as possible? There are two linear solutions here, and yet neither shows up.

0 Answers
Related