True Expecting foo = True foo :: Bool = True it :: () = () False Expecting foo = False foo :: Bool = False it :: () = () type T :: * data T = ... Expecting T and Ghci1.T type Ghci1.T :: * data Ghci1.T = ... type T :: * data T = ... it :: () = () Expecting T and T' type T :: * data T = ... type T' :: * data T' = ... it :: () = () Expecting only T, no Ghci1.T type T :: * data T = ... it :: () = () Expecting T and foo with function type type T :: * data T = ... foo :: T -> Bool = _ it :: () = () Expecting T and foo :: Bool type T :: * data T = ... foo :: Bool = True it :: () = () Expecting foo, T foo :: Bool = True type T :: * data T = ... it :: () = ()