module Goo (poop) where

class Zog a where
  zoom :: a -> Int

-- Assume the relevant behavior for the method.
{-@ zoom :: (Zog a) => a -> Int @-}

-- Uses the behavior of `zoom`
{-@ poop :: (Zog a) => a -> Nat @-}
poop x = zoom x
