Czy istnieje sposób, aby zobaczyć definicję Typeclass w ghci dla określonego typu?Widząc definicję Typeclass w ghci dla konkretnego typu
Na przykład Maybe
jest zdefiniowany następująco:
instance Functor Maybe where
fmap f (Just x) = Just (f x)
fmap f Nothing = Nothing
Mogę zobaczyć w ghci?
Kiedy używam :info
w ghci, otrzymuję to:
Prelude> :i Maybe
data Maybe a = Nothing | Just a -- Defined in `Data.Maybe'
instance Eq a => Eq (Maybe a) -- Defined in `Data.Maybe'
instance Monad Maybe -- Defined in `Data.Maybe'
instance Functor Maybe -- Defined in `Data.Maybe'
instance Ord a => Ord (Maybe a) -- Defined in `Data.Maybe'
instance Read a => Read (Maybe a) -- Defined in `GHC.Read'
instance Show a => Show (Maybe a) -- Defined in `GHC.Show'
W powyższym przykładzie, chcę zobaczyć jak to jest zdefiniowane w Data.Maybe jako przykład dla Functor
. W każdym razie, aby zobaczyć to w GHC?
Prowadzenie hoogle na własnej maszynie jest dość proste ('cabal install; hoogle data'). – aavogt
@aavogt: w prawo, ale wyszukiwanie w wierszu poleceń nie da ci dobrych linków do plamiaka, jak wersja online. Używanie go jako lokalnego serwera nie jest tak proste. – leftaroundabout
Aby wyszukać coś takiego jak "dane Double" i jego implementacja, powiedzmy, '+', aby dostosować się do 'Num', ta metoda nadal nie zapewnia sposobu na zobaczenie kodu źródłowego. Przykład 'Maybe' w hoogle oferuje link ze źródłem, ale ogólnie dla typów nie. – ely