moveFun :: Board -> PieceType -> Square -> BitBoard
moveFun b pt
  | pt == Knight = knightAttackBB
  | pt == King   = kingAttackBB
  | pt == Pawn   = error "moveFun is not implemented for Pawns"
  | otherwise      = \t -> magic pt t (occupancy b)
moveFun :: Board -> PieceType -> Square -> BitBoard
moveFun b pt
  | pt == Knight = knightAttackBB
  | pt == King   = kingAttackBB
  | pt == Pawn   = error "moveFun is not implemented for Pawns"
  | otherwise      = \t -> magic pt t (occupancy b)
moveFun b pt
  | pt == Knight = knightAttackBB
  | pt == King   = kingAttackBB
  | pt == Pawn   = error "moveFun is not implemented for Pawns"
  | otherwise      = \t -> magic pt t (occupancy b)